{"info":{"title":"Control Plane Core API","description":"Copyright © 2023 Control Plane Corporation. All rights reserved.","version":"1.0.0"},"externalDocs":{"url":"https://docs.controlplane.com/","description":"End-user documentation"},"openapi":"3.0.3","servers":[{"url":"https://api.cpln.io","description":""}],"security":[{},{"serviceAccountKey":[]},{"jwt":[]}],"components":{"securitySchemes":{"serviceAccountKey":{"type":"apiKey","in":"header","name":"Authorization","description":"Service account key can be used as API keys"},"jwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"IDP-provided token"}},"schemas":{"accessreport":{"type":"object","properties":{"kind":{"type":"string"},"permissions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"bindings":{"type":"array","items":{"type":"object","properties":{"principalLink":{"type":"string"},"grantingPolicyLink":{"type":"string"},"grantedPermissions":{"type":"array","items":{"type":"string"}},"match":{"type":"string","enum":["link","query","all"]}},"additionalProperties":false}}},"additionalProperties":false}},"created":{"type":"string","format":"date-time"},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"}}},"additionalProperties":false},"agent":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"status":{"$ref":"#/components/schemas/agent_status","readOnly":true}},"additionalProperties":false},"agent_bootstrap_config":{"type":"object","properties":{"registrationToken":{"type":"string"},"agentId":{"type":"string"},"agentLink":{"type":"string"},"hubEndpoint":{"type":"string"},"protocolVersion":{"type":"string","enum":["v1","v2"]}},"additionalProperties":false},"agent_info":{"type":"object","properties":{"protocolVersion":{"type":"string","enum":["v1","v2"]},"instanceId":{"type":"string"},"lastActive":{"type":"string","format":"date-time"},"env":{"type":"object"},"peerCount":{"type":"integer"},"serviceCount":{"type":"integer"}},"additionalProperties":false},"agent_status":{"type":"object","properties":{"bootstrapConfig":{"type":"object","properties":{"registrationToken":{"type":"string"},"agentId":{"type":"string"},"agentLink":{"type":"string"},"hubEndpoint":{"type":"string"},"protocolVersion":{"type":"string","enum":["v1","v2"]}},"additionalProperties":false},"protocolVersion":{"type":"string","enum":["v1","v2"]}},"additionalProperties":false},"auditctx":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"status":{"type":"object","properties":{},"additionalProperties":false,"readOnly":true},"origin":{"type":"string","enum":["default","builtin"],"default":"default"}},"additionalProperties":false},"cloudaccount":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"provider":{"type":"string","enum":["aws","gcp","azure","ngs"]},"data":{"oneOf":[{"$ref":"#/components/schemas/cloudaccount_gcp_config"},{"$ref":"#/components/schemas/cloudaccount_aws_config"},{"$ref":"#/components/schemas/cloudaccount_azure_config"},{"type":"object","properties":{"secretLink":{"type":"string"}},"additionalProperties":false}]},"status":{"type":"object","properties":{"usable":{"type":"boolean"},"lastChecked":{"type":"string","format":"date-time"},"lastError":{"type":"string"}},"additionalProperties":false,"readOnly":true}},"additionalProperties":false},"cloudaccount_aws_config":{"type":"object","properties":{"roleArn":{"type":"string"}},"additionalProperties":false},"cloudaccount_azure_config":{"type":"object","properties":{"secretLink":{"type":"string"}},"additionalProperties":false},"cloudaccount_gcp_config":{"type":"object","properties":{"projectId":{"type":"string","maxLength":30}},"additionalProperties":false},"deployment":{"type":"object","properties":{"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"lastModified":{"type":"string","format":"date-time"},"status":{"$ref":"#/components/schemas/deployment_status","readOnly":true}},"additionalProperties":false},"deployment_status":{"type":"object","properties":{"endpoint":{"type":"string"},"remote":{"type":"string"},"lastProcessedVersion":{"type":"integer"},"expectedDeploymentVersion":{"type":"integer"},"internal":{"type":"object"},"ready":{"type":"boolean"},"deploying":{"type":"boolean"},"versions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"created":{"type":"string","format":"date-time"},"workload":{"type":"number"},"gvc":{"type":"number"},"containers":{"type":"object"},"ready":{"type":"boolean"},"message":{"type":"string"},"zone":{"type":"string"}},"additionalProperties":false}},"jobExecutions":{"type":"array","items":{"type":"object","properties":{"workloadVersion":{"type":"number","description":"The version of the workload used during this job execution"},"status":{"type":"string","enum":["successful","failed","active","pending","invalid","removed",""],"default":"pending","description":"The result of the job execution."},"startTime":{"type":"string","format":"date-time","description":"The time the job execution was first moved from pending to active. If the job execution was never pending, this is equivalent to the creation time of the job execution."},"completionTime":{"type":"string","format":"date-time","description":"The time the job execution finished. This should not be interpreted as an indication of success. Please refer to the status field instead."},"conditions":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string","default":"Unknown"},"type":{"type":"string"},"lastDetectionTime":{"type":"string","format":"date-time","description":"The last time this condition was detected by Control Plane."},"lastTransitionTime":{"type":"string","format":"date-time","description":"The last time this condition transitioned between states."},"message":{"type":"string"},"reason":{"type":"string","description":"A concise explanation of the most recent state transition."}},"additionalProperties":false}},"name":{"type":"string","description":"The name of the Job objects in kubernetes"},"replica":{"type":"string"},"containers":{"type":"object"},"message":{"type":"string","description":"Free-form diagnostic text aggregated from k8s pod events for this execution; semicolon-separated."}},"additionalProperties":false}},"message":{"type":"string"}},"additionalProperties":false},"domain":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"name":{"type":"string","maxLength":253},"spec":{"type":"object","properties":{"dnsMode":{"type":"string","enum":["cname","ns"],"description":"In 'cname' dnsMode, Control Plane will configure workloads to accept traffic for the domain but will not manage DNS records for the domain.\n      End users configure CNAME records in their own DNS pointed to the canonical workload endpoint.\n      Currently 'cname' dnsMode requires that a tls.serverCertificate is configured when subdomain based routing is used.\n      In 'ns' dnsMode, Control Plane will manage the subdomains and create all necessary DNS records.\n      End users configure an NS record to forward DNS requests to the Control Plane managed DNS servers."},"gvcLink":{"type":"string","description":"One of gvcLink and routes may be provided. When gvcLink is configured each workload in the GVC will receive a subdomain in the form ${workload.name}.${domain.name}"},"certChallengeType":{"type":"string","enum":["http01","dns01"]},"workloadLink":{"type":"string"},"acceptAllHosts":{"type":"boolean"},"acceptAllSubdomains":{"type":"boolean"},"ports":{"type":"array","items":{"type":"object","properties":{"number":{"type":"number"},"protocol":{"type":"string","enum":["http","http2","tcp"],"default":"http2"},"routes":{"type":"array","items":{"type":"object","properties":{"replacePrefix":{"type":"string","description":"When provided, the URI prefix will be replaced with this string before the request is sent to the workload."},"regex":{"type":"string","description":"Used to match URI paths.\nOne of prefix OR regex may be provided.\nUses the google re2 regex syntax"},"prefix":{"type":"string"},"workloadLink":{"type":"string"},"port":{"type":"integer"},"hostPrefix":{"type":"string","description":"This option allows forwarding traffic for different host headers to different workloads.\nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support.\nContact your account manager for details."},"hostRegex":{"type":"string","description":"A regex to match the host header. \nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support. \nContact your account manager for details."},"headers":{"type":"object","properties":{"request":{"type":"object","properties":{"set":{"type":"object","description":"Sets or overrides headers to all http requests for this route."}},"additionalProperties":false,"description":"Manipulates HTTP headers"}},"additionalProperties":false,"description":"Modify the headers for all http requests for this route."},"replica":{"type":"integer","description":"The replica number of a stateful workload to route to. If not provided, traffic will be routed to all replicas."},"mirror":{"type":"array","items":{"type":"object","properties":{"workloadLink":{"type":"string","description":"The workload to mirror traffic to."},"port":{"type":"integer","description":"The port to send mirrored traffic to. If not provided, traffic will be mirrored to the first discovered port on the mirrored workload"},"percent":{"type":"number","description":"The percentage of traffic to mirror to the specified workload."}},"additionalProperties":false,"description":"Mirror a percentage of traffic to another workload for testing or canary purposes."}}},"additionalProperties":false},"description":"A list of mappings to workloads."},"cors":{"type":"object","properties":{"allowOrigins":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false}},"allowMethods":{"type":"array","items":{"type":"string"}},"allowHeaders":{"type":"array","items":{"type":"string"}},"exposeHeaders":{"type":"array","items":{"type":"string"}},"maxAge":{"type":"string"},"allowCredentials":{"type":"boolean"}},"additionalProperties":false},"tls":{"type":"object","properties":{"minProtocolVersion":{"type":"string","enum":["TLSV1_3","TLSV1_2","TLSV1_1","TLSV1_0"],"default":"TLSV1_2"},"cipherSuites":{"type":"array","items":{"type":"string","enum":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","DES-CBC3-SHA","ECDHE-RSA-AES128-SHA","ECDHE-RSA-AES256-SHA","AES128-SHA","AES256-SHA"],"default":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256"]}},"clientCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"The secret will include a client certificate authority cert in PEM format used to verify requests which include client certificates. The key subject must match the domain and the key usage properties must be configured for client certificate authorization. The secret type must be keypair."}},"additionalProperties":false,"description":"When clientCertificate is defined, requests may optionally supply a client certificate. The certificate details are included in the x-forwarded-client-cert header."},"serverCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"When provided, this is used as the server certificate authority. The secret type must be keypair and the content must be PEM encoded."}},"additionalProperties":false,"description":"Configure an optional custom server certificate for the domain. When the port number is 443 and this is not supplied, a certificate is provisioned automatically."}},"additionalProperties":false,"description":"Used for TLS connections for this Domain. End users are responsible for certificate updates."}},"additionalProperties":false}}},"additionalProperties":false},"status":{"type":"object","properties":{"endpoints":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"workloadLink":{"type":"string"}},"additionalProperties":false}},"status":{"type":"string","enum":["initializing","ready","pendingDnsConfig","pendingCertificate","usedByGvc","warning","created","updated","deleted","errored","ignored"]},"warning":{"type":"string"},"locations":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"certificateStatus":{"type":"string","enum":["initializing","ready","pendingDnsConfig","pendingCertificate","ignored"]}},"additionalProperties":false}},"fingerprint":{"type":"string"},"dnsConfig":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"ttl":{"type":"integer"},"host":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"readOnly":true}},"additionalProperties":false},"error":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"object"},"id":{"type":"string"}},"additionalProperties":false},"group":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"memberLinks":{"type":"array","items":{"type":"string"}},"memberQuery":{"$ref":"#/components/schemas/query"},"identityMatcher":{"type":"object","properties":{"expression":{"type":"string"},"language":{"type":"string","enum":["jmespath","javascript"],"default":"jmespath"}},"additionalProperties":false},"origin":{"type":"string","enum":["synthetic","default","builtin"],"default":"default","readOnly":true}},"additionalProperties":false},"gvc":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"alias":{"type":"string","readOnly":true},"spec":{"type":"object","properties":{"staticPlacement":{"type":"object","properties":{"locationLinks":{"type":"array","items":{"type":"string"}},"locationQuery":{"type":"object","properties":{"kind":{"type":"string"},"context":{"type":"object","readOnly":true},"spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"locationOptions":{"type":"array","items":{"type":"object","properties":{"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}},"additionalProperties":false},"description":"Per-location routing options for DNS geo routing. Allows configuring priority-based failover and latency adjustments per location."}},"additionalProperties":false},"pullSecretLinks":{"type":"array","items":{"type":"string"}},"domain":{"type":"string"},"endpointNamingFormat":{"type":"string","enum":["default","legacy","org"],"description":"Customizes the subdomain format for the canonical workload endpoint.\n`default` leaves it as ${workloadName}-${gvcName}.cpln.app\n`org` follows the scheme ${workloadName}-${gvcName}.${org}.cpln.app"},"tracing":{"type":"object","properties":{"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object"},"provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"These environment variables will be available to any workload in the GVC. Note: a workload must opt-in to receive these variables."},"loadBalancer":{"type":"object","properties":{"dedicated":{"type":"boolean","description":"Creates a dedicated load balancer in each location and enables additional Domain features: custom ports, protocols and wildcard hostnames. Charges apply for each location."},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"trustedProxies":{"type":"integer","description":"Controls the address used for request logging and for setting the X-Envoy-External-Address header.\nIf set to 1, then the last address in an existing X-Forwarded-For header will be used in place of the source client IP address.\nIf set to 2, then the second to last address in an existing X-Forwarded-For header will be used in place of the source client IP address. If the XFF header does not have at least two addresses or does not exist then the source client IP address will be used instead."},"redirect":{"type":"object","properties":{"class":{"type":"object","properties":{"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}},"additionalProperties":false,"description":"Specify the redirect url for all status codes in a class"}},"additionalProperties":false,"description":"Specify the url to be redirected to for different http status codes."},"ipSet":{"type":"string","description":"A link to an IPSet resource that will be used for this load balancer"}},"additionalProperties":false},"keda":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable KEDA for this GVC.\nKEDA is a Kubernetes-based event-driven autoscaler that allows you to scale workloads based on external events.\nWhen enabled,a keda operator will be deployed in the GVC and workloads in the GVC can use KEDA to scale based on external metrics."},"identityLink":{"type":"string","description":"A link to an Identity resource that will be used for KEDA.\nThis will allow the keda operator to access cloud and network resources."},"secrets":{"type":"array","items":{"type":"string"},"description":"A list of secrets to be used as TriggerAuthentication objects.\nThe TriggerAuthentication object will be named after the secret and can be used by triggers on workloads in this GVC."}},"additionalProperties":false}},"additionalProperties":false},"status":{"type":"object","properties":{},"additionalProperties":false,"readOnly":true}},"additionalProperties":false},"gvc_spec":{"type":"object","properties":{"staticPlacement":{"type":"object","properties":{"locationLinks":{"type":"array","items":{"type":"string"}},"locationQuery":{"type":"object","properties":{"kind":{"type":"string"},"context":{"type":"object","readOnly":true},"spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"locationOptions":{"type":"array","items":{"type":"object","properties":{"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}},"additionalProperties":false},"description":"Per-location routing options for DNS geo routing. Allows configuring priority-based failover and latency adjustments per location."}},"additionalProperties":false},"pullSecretLinks":{"type":"array","items":{"type":"string"}},"domain":{"type":"string"},"endpointNamingFormat":{"type":"string","enum":["default","legacy","org"],"description":"Customizes the subdomain format for the canonical workload endpoint.\n`default` leaves it as ${workloadName}-${gvcName}.cpln.app\n`org` follows the scheme ${workloadName}-${gvcName}.${org}.cpln.app"},"tracing":{"type":"object","properties":{"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object"},"provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"These environment variables will be available to any workload in the GVC. Note: a workload must opt-in to receive these variables."},"loadBalancer":{"type":"object","properties":{"dedicated":{"type":"boolean","description":"Creates a dedicated load balancer in each location and enables additional Domain features: custom ports, protocols and wildcard hostnames. Charges apply for each location."},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"trustedProxies":{"type":"integer","description":"Controls the address used for request logging and for setting the X-Envoy-External-Address header.\nIf set to 1, then the last address in an existing X-Forwarded-For header will be used in place of the source client IP address.\nIf set to 2, then the second to last address in an existing X-Forwarded-For header will be used in place of the source client IP address. If the XFF header does not have at least two addresses or does not exist then the source client IP address will be used instead."},"redirect":{"type":"object","properties":{"class":{"type":"object","properties":{"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}},"additionalProperties":false,"description":"Specify the redirect url for all status codes in a class"}},"additionalProperties":false,"description":"Specify the url to be redirected to for different http status codes."},"ipSet":{"type":"string","description":"A link to an IPSet resource that will be used for this load balancer"}},"additionalProperties":false},"keda":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable KEDA for this GVC.\nKEDA is a Kubernetes-based event-driven autoscaler that allows you to scale workloads based on external events.\nWhen enabled,a keda operator will be deployed in the GVC and workloads in the GVC can use KEDA to scale based on external metrics."},"identityLink":{"type":"string","description":"A link to an Identity resource that will be used for KEDA.\nThis will allow the keda operator to access cloud and network resources."},"secrets":{"type":"array","items":{"type":"string"},"description":"A list of secrets to be used as TriggerAuthentication objects.\nThe TriggerAuthentication object will be named after the secret and can be used by triggers on workloads in this GVC."}},"additionalProperties":false}},"additionalProperties":false},"identity":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"aws":{"type":"object","properties":{"cloudAccountLink":{"type":"string"},"policyRefs":{"type":"array","items":{"type":"string"}},"trustPolicy":{"type":"object","properties":{"Version":{"type":"string","default":"2012-10-17"},"Statement":{"type":"array","items":{"type":"object"}}},"additionalProperties":false},"roleName":{"type":"string","maxLength":64}},"additionalProperties":false},"gcp":{"type":"object","properties":{"cloudAccountLink":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"serviceAccount":{"type":"string"},"bindings":{"type":"array","items":{"type":"object","properties":{"resource":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"azure":{"type":"object","properties":{"cloudAccountLink":{"type":"string"},"roleAssignments":{"type":"array","items":{"type":"object","properties":{"scope":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"ngs":{"type":"object","properties":{"cloudAccountLink":{"type":"string"},"pub":{"type":"object","properties":{"allow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"sub":{"type":"object","properties":{"allow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"resp":{"type":"object","properties":{"max":{"type":"integer","description":"Number of responses allowed on the replyTo subject, -1 means no limit"},"ttl":{"type":"string","description":"Deadline to send replies on the replyTo subject [#ms(millis) | #s(econds) | m(inutes) | h(ours)]. -1 means no restriction"}},"additionalProperties":false},"subs":{"type":"integer","description":"Max number of subscriptions per connection"},"data":{"type":"integer","description":"Max number of bytes a connection can send"},"payload":{"type":"integer","description":"Max message payload"}},"additionalProperties":false},"networkResources":{"type":"array","items":{"$ref":"#/components/schemas/network_resource"}},"nativeNetworkResources":{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","maxLength":64},{"type":"string"}]},"FQDN":{"type":"string"},"ports":{"type":"array","items":{"type":"integer"}},"awsPrivateLink":{"type":"object","properties":{"endpointServiceName":{"type":"string"}},"additionalProperties":false},"gcpServiceConnect":{"type":"object","properties":{"targetService":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"memcacheAccess":{"type":"array","items":{"type":"object","properties":{"clusterLink":{"type":"string"},"role":{"type":"string","enum":["readWrite"]}},"additionalProperties":false}},"spicedbAccess":{"type":"array","items":{"type":"object","properties":{"clusterLink":{"type":"string"},"role":{"type":"string","enum":["checkPermission","read","write"]}},"additionalProperties":false}},"status":{"type":"object","properties":{"objectName":{"type":"string"},"aws":{"type":"object","properties":{"lastError":{"type":"string"},"usable":{"type":"boolean"}},"additionalProperties":false},"gcp":{"type":"object","properties":{"lastError":{"type":"string"},"usable":{"type":"boolean"}},"additionalProperties":false},"azure":{"type":"object","properties":{"lastError":{"type":"string"},"usable":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false,"readOnly":true},"gvc":{"type":"string"}},"additionalProperties":false},"image":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","readOnly":true},"version":{"type":"number"},"created":{"type":"string","format":"date-time"},"lastModified":{"type":"string","format":"date-time"},"tags":{"type":"object"},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"repository":{"type":"string","readOnly":true},"tag":{"type":"string","readOnly":true},"manifest":{"type":"object","readOnly":true},"digest":{"type":"string","readOnly":true}},"additionalProperties":false},"invite_request":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"invite_response":{"type":"object","properties":{"errors":{"type":"object"},"invitations":{"type":"object"}},"additionalProperties":false},"ip_address":{"type":"object","properties":{"name":{"type":"string"},"ip":{"type":"string"},"id":{"type":"string"},"state":{"type":"string","enum":["bound","unbound"]},"created":{"type":"string","format":"date-time"}},"additionalProperties":false},"ipset":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"spec":{"type":"object","properties":{"link":{"type":"string"},"locations":{"type":"array","items":{"$ref":"#/components/schemas/ipset_location"}}},"additionalProperties":false},"status":{"$ref":"#/components/schemas/ipset_status","readOnly":true}},"additionalProperties":false},"ipset_location":{"type":"object","properties":{"name":{"type":"string"},"retentionPolicy":{"type":"string","enum":["keep","free"]}},"additionalProperties":false},"ipset_spec":{"type":"object","properties":{"link":{"type":"string"},"locations":{"type":"array","items":{"$ref":"#/components/schemas/ipset_location"}}},"additionalProperties":false},"ipset_status":{"type":"object","properties":{"ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/ip_address"}},"error":{"type":"string"},"warning":{"type":"string"}},"additionalProperties":false},"link":{"type":"object","properties":{"rel":{"type":"string"},"href":{"type":"string"}},"additionalProperties":false},"list":{"type":"object","properties":{"kind":{"type":"string"},"itemKind":{"type":"string","enum":["org","cloudaccount","policy","user","group","resource","task","permissions","serviceaccount","secret","location","gvc","workload","quota","identity","deployment","event","account","domain","image","ipset","resourcepolicy","accessreport","agent","auditctx","dbcluster","memcachecluster","spicedbcluster","tenant","mk8s","command","policymembership","primitive","foreign","link","imagesummary","volumeset"]},"items":{"type":"array","items":{"type":"object"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"}}},"additionalProperties":false},"location":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"origin":{"type":"string","enum":["builtin","default","custom"],"default":"default","readOnly":true},"provider":{"type":"string","enum":["aws","gcp","azure","byok","linode","vultr","equinix","oci"]},"region":{"type":"string"},"spec":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"status":{"$ref":"#/components/schemas/location_status","readOnly":true}},"additionalProperties":false},"location_status":{"type":"object","properties":{"geo":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"country":{"type":"string"},"state":{"type":"string"},"city":{"type":"string"},"continent":{"type":"string"}},"additionalProperties":false},"ipRanges":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"mk8s_cacerts":{"type":"object","properties":{"cacerts":{"type":"string"}},"additionalProperties":false},"mk8s_cloudinit":{"type":"object"},"mk8s_cloudinit_res":{"type":"object","properties":{"script":{"type":"string"}},"additionalProperties":false},"mk8s_cluster":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"spec":{"type":"object","properties":{"version":{"type":"string","enum":["1.26.0","1.26.4","1.27.3","1.28.2","1.28.4","1.29.7","1.30.3","1.31.5","1.31.13","1.32.1","1.32.9","1.33.5","1.34.2","1.35.3"]},"firewall":{"type":"array","items":{"type":"object","properties":{"sourceCIDR":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false},"description":"Allow-list"},"provider":{"type":"object","properties":{"generic":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}}},"additionalProperties":false},"hetzner":{"type":"object","properties":{"region":{"type":"string","enum":["fsn1","nbg1","hel1","ash","hil"],"description":"Hetzner region to deploy nodes to"},"hetznerLabels":{"type":"object","description":"Extra labels to attach to servers"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding Hetzner access key"},"networkId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"firewallId":{"type":"string","description":"Optional firewall rule to attach to all nodes"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false},"description":"Node pools that can configure dedicated Hetzner servers"},"image":{"type":"string","default":"ubuntu-20.04","description":"Default image for all nodes"},"sshKey":{"type":"string","description":"SSH key name for accessing deployed nodes"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"floatingIPSelector":{"type":"object","description":"If supplied, nodes will get assigned a random floating ip matching the selector"}},"additionalProperties":false},"aws":{"type":"object","properties":{"region":{"type":"string","enum":["af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ca-central-1","eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","me-central-1","me-south-1","sa-east-1","us-east-1","us-east-2","us-west-1","us-west-2"],"description":"Region where the cluster nodes will live"},"awsTags":{"type":"object","description":"Extra tags to attach to all created objects"},"skipCreateRoles":{"type":"boolean","description":"If true, Control Plane will not create any roles"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false,"description":"Default image for all nodes."},"deployRoleArn":{"type":"string","description":"Control Plane will set up the cluster by assuming this role"},"deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"vpcId":{"type":"string","description":"The vpc where nodes will be deployed. Supports SSM."},"keyPair":{"type":"string","description":"Name of keyPair. Supports SSM"},"diskEncryptionKeyArn":{"type":"string","description":"KMS key used to encrypt volumes. Supports SSM."},"securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."},"description":"Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon"},"extraNodePolicies":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"linode":{"type":"object","properties":{"region":{"type":"string"},"tokenSecretLink":{"type":"string"},"firewallId":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"image":{"type":"string"},"authorizedUsers":{"type":"array","items":{"type":"string"}},"authorizedKeys":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string"},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"oblivus":{"type":"object","properties":{"datacenter":{"type":"string","enum":["MON1","OSL1"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"sshKeys":{"type":"array","items":{"type":"string"}},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"lambdalabs":{"type":"object","properties":{"region":{"type":"string","enum":["asia-northeast-1","asia-northeast-2","asia-south-1","australia-southeast-1","europe-central-1","europe-south-1","me-west-1","us-east-1","us-midwest-1","us-south-1","us-west-1","us-west-2","us-west-3"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"sshKey":{"type":"string"},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"fileSystems":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"paperspace":{"type":"object","properties":{"region":{"type":"string","enum":["AMS1","NY2","CA1"]},"tokenSecretLink":{"type":"string"},"sharedDrives":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"userIds":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string"}},"additionalProperties":false},"ephemeral":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}}},"additionalProperties":false},"triton":{"type":"object","properties":{"connection":{"type":"object","properties":{"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}},"additionalProperties":false},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to the Triton datacenter"},"loadBalancer":{"type":"object","properties":{"manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object"},"gateway":{"type":"object"}},"additionalProperties":false},"privateNetworkId":{"type":"string","description":"ID of the private Fabric/Network"},"firewallEnabled":{"type":"boolean","description":"Enable firewall for the instances deployed"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"imageId":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"azure":{"type":"object","properties":{"location":{"type":"string","description":"Region where the cluster nodes will live"},"subscriptionId":{"type":"string"},"sdkSecretLink":{"type":"string","description":"Link to an opaque secret"},"resourceGroup":{"type":"string"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"Default image for all nodes."},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH keys to install for \"azureuser\" linux user"},"networkId":{"type":"string","description":"The vpc where nodes will be deployed."},"tags":{"type":"object","description":"Extra tags to attach to all created objects"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"digitalocean":{"type":"object","properties":{"region":{"type":"string","enum":["ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo2","sfo3","sgp1","syd1","tor1"],"description":"Region to deploy nodes to"},"digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254},"description":"Extra tags to attach to droplets"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding personal access token"},"vpcId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"image":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH key name for accessing deployed nodes"},"extraSshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root that are not registered in the DigitalOcean"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"reservedIPs":{"type":"array","items":{"type":"string"},"description":"Optional set of IPs to assign as extra IPs for nodes of the cluster"}},"additionalProperties":false},"gcp":{"type":"object","properties":{"projectId":{"type":"string"},"region":{"type":"string","description":"Region where the cluster nodes will live"},"labels":{"type":"object","description":"Extra tags to attach to all created objects"},"tags":{"type":"array","items":{"type":"string","maxLength":63}},"metadata":{"type":"object"},"network":{"type":"string"},"saKeyLink":{"type":"string","description":"Link to a GCP secret containing the SA json key"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false,"description":"Default image for all nodes."},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"addOns":{"type":"object","properties":{"dashboard":{"type":"object","properties":{},"additionalProperties":false},"headlamp":{"type":"object","properties":{},"additionalProperties":false},"azureWorkloadIdentity":{"type":"object","properties":{"tenantId":{"type":"string","description":"Tenant ID to use for workload identity"}},"additionalProperties":false},"awsWorkloadIdentity":{"type":"object","properties":{},"additionalProperties":false},"localPathStorage":{"type":"object","properties":{},"additionalProperties":false},"metrics":{"type":"object","properties":{"kubeState":{"type":"boolean","description":"Enable kube-state metrics"},"coreDns":{"type":"boolean","description":"Enable scraping of core-dns service"},"kubelet":{"type":"boolean","description":"Enable scraping kubelet stats"},"apiserver":{"type":"boolean","description":"Enable scraping apiserver stats"},"nodeExporter":{"type":"boolean","description":"Enable collecting node-level stats (disk, network, filesystem, etc)"},"cadvisor":{"type":"boolean","description":"Enable CNI-level container stats"},"scrapeAnnotated":{"type":"object","properties":{"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}},"additionalProperties":false,"description":"Scrape pods annotated with prometheus.io/scrape=true"}},"additionalProperties":false},"logs":{"type":"object","properties":{"auditEnabled":{"type":"boolean","description":"Collect k8s audit log as log events "},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"docker":{"type":"boolean","description":"Collect docker logs if docker is also running"},"kubelet":{"type":"boolean","description":"Collect kubelet logs from journald"},"kernel":{"type":"boolean","description":"Collect kernel logs"},"events":{"type":"boolean","description":"Collect K8S events from all namespaces"}},"additionalProperties":false},"registryMirror":{"type":"object","properties":{"mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"nvidia":{"type":"object","properties":{"taintGPUNodes":{"type":"boolean"}},"additionalProperties":false},"awsEFS":{"type":"object","properties":{"roleArn":{"type":"string","description":"Use this role for EFS interaction"}},"additionalProperties":false},"awsECR":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, in which case it will use the instance role to pull"}},"additionalProperties":false},"awsELB":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, when not provided it will create the recommended role"}},"additionalProperties":false},"azureACR":{"type":"object","properties":{"clientId":{"type":"string"}},"additionalProperties":false},"sysbox":{"type":"object","properties":{},"additionalProperties":false},"byok":{"type":"object","properties":{"ignoreUpdates":{"type":"boolean"},"location":{"type":"string"},"config":{"type":"object","properties":{"actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"alias":{"type":"string","readOnly":true},"status":{"$ref":"#/components/schemas/mk8s_status","readOnly":true}},"additionalProperties":false},"mk8s_join":{"type":"object"},"mk8s_join_res":{"type":"object","properties":{"script":{"type":"string"}},"additionalProperties":false},"mk8s_kubeconfig":{"type":"object"},"mk8s_kubeconfig_res":{"type":"object","properties":{"kubeconfig":{"type":"string"},"fileName":{"type":"string"}},"additionalProperties":false},"mk8s_ready":{"type":"object","properties":{"ready":{"type":"boolean"},"message":{"type":"string"}},"additionalProperties":false},"mk8s_spec":{"type":"object","properties":{"version":{"type":"string","enum":["1.26.0","1.26.4","1.27.3","1.28.2","1.28.4","1.29.7","1.30.3","1.31.5","1.31.13","1.32.1","1.32.9","1.33.5","1.34.2","1.35.3"]},"firewall":{"type":"array","items":{"type":"object","properties":{"sourceCIDR":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false},"description":"Allow-list"},"provider":{"type":"object","properties":{"generic":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}}},"additionalProperties":false},"hetzner":{"type":"object","properties":{"region":{"type":"string","enum":["fsn1","nbg1","hel1","ash","hil"],"description":"Hetzner region to deploy nodes to"},"hetznerLabels":{"type":"object","description":"Extra labels to attach to servers"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding Hetzner access key"},"networkId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"firewallId":{"type":"string","description":"Optional firewall rule to attach to all nodes"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false},"description":"Node pools that can configure dedicated Hetzner servers"},"image":{"type":"string","default":"ubuntu-20.04","description":"Default image for all nodes"},"sshKey":{"type":"string","description":"SSH key name for accessing deployed nodes"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"floatingIPSelector":{"type":"object","description":"If supplied, nodes will get assigned a random floating ip matching the selector"}},"additionalProperties":false},"aws":{"type":"object","properties":{"region":{"type":"string","enum":["af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ca-central-1","eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","me-central-1","me-south-1","sa-east-1","us-east-1","us-east-2","us-west-1","us-west-2"],"description":"Region where the cluster nodes will live"},"awsTags":{"type":"object","description":"Extra tags to attach to all created objects"},"skipCreateRoles":{"type":"boolean","description":"If true, Control Plane will not create any roles"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false,"description":"Default image for all nodes."},"deployRoleArn":{"type":"string","description":"Control Plane will set up the cluster by assuming this role"},"deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"vpcId":{"type":"string","description":"The vpc where nodes will be deployed. Supports SSM."},"keyPair":{"type":"string","description":"Name of keyPair. Supports SSM"},"diskEncryptionKeyArn":{"type":"string","description":"KMS key used to encrypt volumes. Supports SSM."},"securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."},"description":"Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon"},"extraNodePolicies":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"linode":{"type":"object","properties":{"region":{"type":"string"},"tokenSecretLink":{"type":"string"},"firewallId":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"image":{"type":"string"},"authorizedUsers":{"type":"array","items":{"type":"string"}},"authorizedKeys":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string"},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"oblivus":{"type":"object","properties":{"datacenter":{"type":"string","enum":["MON1","OSL1"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"sshKeys":{"type":"array","items":{"type":"string"}},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"lambdalabs":{"type":"object","properties":{"region":{"type":"string","enum":["asia-northeast-1","asia-northeast-2","asia-south-1","australia-southeast-1","europe-central-1","europe-south-1","me-west-1","us-east-1","us-midwest-1","us-south-1","us-west-1","us-west-2","us-west-3"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"sshKey":{"type":"string"},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"fileSystems":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"paperspace":{"type":"object","properties":{"region":{"type":"string","enum":["AMS1","NY2","CA1"]},"tokenSecretLink":{"type":"string"},"sharedDrives":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"userIds":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string"}},"additionalProperties":false},"ephemeral":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}}},"additionalProperties":false},"triton":{"type":"object","properties":{"connection":{"type":"object","properties":{"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}},"additionalProperties":false},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to the Triton datacenter"},"loadBalancer":{"type":"object","properties":{"manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object"},"gateway":{"type":"object"}},"additionalProperties":false},"privateNetworkId":{"type":"string","description":"ID of the private Fabric/Network"},"firewallEnabled":{"type":"boolean","description":"Enable firewall for the instances deployed"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"imageId":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"azure":{"type":"object","properties":{"location":{"type":"string","description":"Region where the cluster nodes will live"},"subscriptionId":{"type":"string"},"sdkSecretLink":{"type":"string","description":"Link to an opaque secret"},"resourceGroup":{"type":"string"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"Default image for all nodes."},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH keys to install for \"azureuser\" linux user"},"networkId":{"type":"string","description":"The vpc where nodes will be deployed."},"tags":{"type":"object","description":"Extra tags to attach to all created objects"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"digitalocean":{"type":"object","properties":{"region":{"type":"string","enum":["ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo2","sfo3","sgp1","syd1","tor1"],"description":"Region to deploy nodes to"},"digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254},"description":"Extra tags to attach to droplets"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding personal access token"},"vpcId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"image":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH key name for accessing deployed nodes"},"extraSshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root that are not registered in the DigitalOcean"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"reservedIPs":{"type":"array","items":{"type":"string"},"description":"Optional set of IPs to assign as extra IPs for nodes of the cluster"}},"additionalProperties":false},"gcp":{"type":"object","properties":{"projectId":{"type":"string"},"region":{"type":"string","description":"Region where the cluster nodes will live"},"labels":{"type":"object","description":"Extra tags to attach to all created objects"},"tags":{"type":"array","items":{"type":"string","maxLength":63}},"metadata":{"type":"object"},"network":{"type":"string"},"saKeyLink":{"type":"string","description":"Link to a GCP secret containing the SA json key"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false,"description":"Default image for all nodes."},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"addOns":{"type":"object","properties":{"dashboard":{"type":"object","properties":{},"additionalProperties":false},"headlamp":{"type":"object","properties":{},"additionalProperties":false},"azureWorkloadIdentity":{"type":"object","properties":{"tenantId":{"type":"string","description":"Tenant ID to use for workload identity"}},"additionalProperties":false},"awsWorkloadIdentity":{"type":"object","properties":{},"additionalProperties":false},"localPathStorage":{"type":"object","properties":{},"additionalProperties":false},"metrics":{"type":"object","properties":{"kubeState":{"type":"boolean","description":"Enable kube-state metrics"},"coreDns":{"type":"boolean","description":"Enable scraping of core-dns service"},"kubelet":{"type":"boolean","description":"Enable scraping kubelet stats"},"apiserver":{"type":"boolean","description":"Enable scraping apiserver stats"},"nodeExporter":{"type":"boolean","description":"Enable collecting node-level stats (disk, network, filesystem, etc)"},"cadvisor":{"type":"boolean","description":"Enable CNI-level container stats"},"scrapeAnnotated":{"type":"object","properties":{"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}},"additionalProperties":false,"description":"Scrape pods annotated with prometheus.io/scrape=true"}},"additionalProperties":false},"logs":{"type":"object","properties":{"auditEnabled":{"type":"boolean","description":"Collect k8s audit log as log events "},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"docker":{"type":"boolean","description":"Collect docker logs if docker is also running"},"kubelet":{"type":"boolean","description":"Collect kubelet logs from journald"},"kernel":{"type":"boolean","description":"Collect kernel logs"},"events":{"type":"boolean","description":"Collect K8S events from all namespaces"}},"additionalProperties":false},"registryMirror":{"type":"object","properties":{"mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"nvidia":{"type":"object","properties":{"taintGPUNodes":{"type":"boolean"}},"additionalProperties":false},"awsEFS":{"type":"object","properties":{"roleArn":{"type":"string","description":"Use this role for EFS interaction"}},"additionalProperties":false},"awsECR":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, in which case it will use the instance role to pull"}},"additionalProperties":false},"awsELB":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, when not provided it will create the recommended role"}},"additionalProperties":false},"azureACR":{"type":"object","properties":{"clientId":{"type":"string"}},"additionalProperties":false},"sysbox":{"type":"object","properties":{},"additionalProperties":false},"byok":{"type":"object","properties":{"ignoreUpdates":{"type":"boolean"},"location":{"type":"string"},"config":{"type":"object","properties":{"actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"mk8s_status":{"type":"object","properties":{"oidcProviderUrl":{"type":"string"},"serverUrl":{"type":"string"},"homeLocation":{"type":"string"},"addOns":{"type":"object","properties":{"dashboard":{"type":"object","properties":{"url":{"type":"string","description":"Access to dashboard"}},"additionalProperties":false},"headlamp":{"type":"object","properties":{"url":{"type":"string","description":"Access to dashboard"}},"additionalProperties":false},"awsWorkloadIdentity":{"type":"object","properties":{"oidcProviderConfig":{"type":"object","properties":{"providerUrl":{"type":"string"},"audience":{"type":"string"}},"additionalProperties":false},"trustPolicy":{"type":"object"}},"additionalProperties":false},"metrics":{"type":"object","properties":{"prometheusEndpoint":{"type":"string"},"remoteWriteConfig":{"type":"object"}},"additionalProperties":false},"logs":{"type":"object","properties":{"lokiAddress":{"type":"string","description":"Loki endpoint to query logs from"}},"additionalProperties":false},"awsECR":{"type":"object","properties":{"trustPolicy":{"type":"object"}},"additionalProperties":false},"awsEFS":{"type":"object","properties":{"trustPolicy":{"type":"object"}},"additionalProperties":false},"awsELB":{"type":"object","properties":{"trustPolicy":{"type":"object"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"network_resource":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","maxLength":64},{"type":"string"}]},"agentLink":{"type":"string"},"IPs":{"type":"array","items":{"type":"string"}},"FQDN":{"type":"string"},"resolverIP":{"type":"string"},"ports":{"type":"array","items":{"type":"integer"}}},"additionalProperties":false},"org":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"name":{"type":"string","maxLength":64},"spec":{"type":"object","properties":{"logging":{"type":"object","properties":{"s3":{"type":"object","properties":{"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}},"additionalProperties":false},"coralogix":{"type":"object","properties":{"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}},"additionalProperties":false},"datadog":{"type":"object","properties":{"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}},"additionalProperties":false},"logzio":{"type":"object","properties":{"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}},"additionalProperties":false},"elastic":{"type":"object","properties":{"aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"cloudWatch":{"type":"object","properties":{"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object"}},"additionalProperties":false},"fluentd":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"}},"additionalProperties":false},"stackdriver":{"type":"object","properties":{"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}},"additionalProperties":false},"syslog":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}},"additionalProperties":false},"opentelemetry":{"type":"object","properties":{"endpoint":{"type":"string"},"headers":{"type":"object"},"credentials":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"extraLogging":{"type":"array","items":{"type":"object","properties":{"s3":{"type":"object","properties":{"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}},"additionalProperties":false},"coralogix":{"type":"object","properties":{"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}},"additionalProperties":false},"datadog":{"type":"object","properties":{"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}},"additionalProperties":false},"logzio":{"type":"object","properties":{"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}},"additionalProperties":false},"elastic":{"type":"object","properties":{"aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"cloudWatch":{"type":"object","properties":{"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object"}},"additionalProperties":false},"fluentd":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"}},"additionalProperties":false},"stackdriver":{"type":"object","properties":{"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}},"additionalProperties":false},"syslog":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}},"additionalProperties":false},"opentelemetry":{"type":"object","properties":{"endpoint":{"type":"string"},"headers":{"type":"object"},"credentials":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"tracing":{"type":"object","properties":{"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object"},"provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"sessionTimeoutSeconds":{"type":"number"},"authConfig":{"type":"object","properties":{"domainAutoMembers":{"type":"array","items":{"type":"string"}},"samlOnly":{"type":"boolean"}},"additionalProperties":false},"observability":{"type":"object","properties":{"logsRetentionDays":{"type":"integer"},"metricsRetentionDays":{"type":"integer"},"tracesRetentionDays":{"type":"integer"},"defaultAlertEmails":{"type":"array","items":{"type":"string"},"description":"these emails are configured as alert recipients in grafana when the grafana-default-email contact delivery type is Email"}},"additionalProperties":false},"security":{"type":"object","properties":{"threatDetection":{"type":"object","properties":{"enabled":{"type":"boolean","description":"whether or not detected threats should be forwarded"},"minimumSeverity":{"type":"string","enum":["warning","error","critical"],"description":"any threats with this severity and more severe will be sent. Others will be ignored"},"syslog":{"type":"object","properties":{"transport":{"type":"string","enum":["tcp","udp"],"default":"tcp","description":"the transport-layer protocol to send the syslog messages over. If TCP is chosen, messages will be sent with TLS."},"host":{"type":"string","description":"the hostname to send syslog messages to"},"port":{"type":"integer","description":"the port to send syslog messages to"}},"additionalProperties":false,"description":"configuration for syslog forwarding"}},"additionalProperties":false,"description":"configure detected threats to be forwarded using a specified protocol"}},"additionalProperties":false}},"additionalProperties":false},"status":{"$ref":"#/components/schemas/org_status","readOnly":true}},"additionalProperties":false},"org_status":{"type":"object","properties":{"accountLink":{"type":"string"},"active":{"type":"boolean"},"endpointPrefix":{"type":"string"}},"additionalProperties":false},"permissions":{"type":"object","properties":{"links":{"type":"array","items":{"$ref":"#/components/schemas/link"}},"kind":{"type":"string"},"targetKind":{"type":"string","enum":["org","cloudaccount","policy","user","group","resource","task","permissions","serviceaccount","secret","location","gvc","workload","quota","identity","deployment","event","domain","image","ipset","resourcepolicy","agent","accessreport","policymembership","dbcluster","auditctx","memcachecluster","spicedbcluster","tenant","mk8s","command","imagesummary","volumeset"]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false}},"implied":{"type":"object"}},"additionalProperties":false},"policy":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"targetKind":{"type":"string","enum":["org","cloudaccount","policy","user","group","resource","task","permissions","serviceaccount","secret","location","gvc","workload","quota","identity","deployment","event","domain","image","ipset","resourcepolicy","agent","accessreport","policymembership","dbcluster","auditctx","memcachecluster","spicedbcluster","tenant","mk8s","command","imagesummary","volumeset"]},"targetLinks":{"type":"array","items":{"type":"string"}},"targetQuery":{"$ref":"#/components/schemas/query"},"target":{"type":"string","enum":["all"]},"origin":{"type":"string","enum":["default","builtin"],"default":"default"},"bindings":{"type":"array","items":{"$ref":"#/components/schemas/policy_binding"}}},"additionalProperties":false},"policy_binding":{"type":"object","properties":{"permissions":{"type":"array","items":{"type":"string"}},"principalLinks":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"query":{"type":"object","properties":{"kind":{"type":"string"},"context":{"type":"object","readOnly":true},"spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"queryresult":{"type":"object","properties":{"kind":{"type":"string"},"itemKind":{"type":"string","enum":["org","cloudaccount","policy","user","group","resource","task","permissions","serviceaccount","secret","location","gvc","workload","quota","identity","deployment","event","domain","image","ipset","resourcepolicy","agent","accessreport","policymembership","dbcluster","auditctx","memcachecluster","spicedbcluster","tenant","mk8s","command","imagesummary","volumeset"]},"items":{"type":"array","items":{"type":"object"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"}},"query":{"$ref":"#/components/schemas/query"}},"additionalProperties":false},"quota":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","readOnly":true},"version":{"type":"number"},"description":{"type":"string"},"name":{"type":"string","maxLength":64},"unit":{"type":"string"},"dimensions":{"type":"object"},"max":{"type":"number"},"created":{"type":"string","format":"date-time"},"lastModified":{"type":"string","format":"date-time"},"current":{"type":"number"},"origin":{"type":"string","enum":["default","builtin"],"default":"default"},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true}},"additionalProperties":false},"secret":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"type":{"type":"string","enum":["opaque","tls","gcp","aws","ecr","userpass","keypair","azure-sdk","azure-connector","docker","dictionary","nats-account"]},"data":{"oneOf":[{"$ref":"#/components/schemas/secret_opaque"},{"$ref":"#/components/schemas/secret_tls"},{"type":"string"},{"$ref":"#/components/schemas/secret_awskey"},{"type":"object","properties":{"accessKey":{"type":"string"},"secretKey":{"type":"string"},"roleArn":{"type":"string"},"externalId":{"type":"string"},"repos":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},{"$ref":"#/components/schemas/secret_userpass"},{"$ref":"#/components/schemas/secret_keypair"},{"$ref":"#/components/schemas/secret_dictionary"},{"type":"object","properties":{"url":{"type":"string","description":"Url to the iam-broker Azure connection"},"code":{"type":"string","description":"Access code to call the function"}},"additionalProperties":false},{"type":"object","properties":{"accountId":{"type":"string"},"privateKey":{"type":"string"}},"additionalProperties":false}]}},"additionalProperties":false},"secret_awskey":{"type":"object","properties":{"accessKey":{"type":"string"},"secretKey":{"type":"string"},"roleArn":{"type":"string"},"externalId":{"type":"string"}},"additionalProperties":false},"secret_dictionary":{"type":"object"},"secret_keypair":{"type":"object","properties":{"secretKey":{"type":"string"},"publicKey":{"type":"string"},"passphrase":{"type":"string"}},"additionalProperties":false},"secret_opaque":{"type":"object","properties":{"payload":{"type":"string"},"encoding":{"type":"string","enum":["plain","base64"],"default":"plain"}},"additionalProperties":false},"secret_tls":{"type":"object","properties":{"key":{"type":"string"},"cert":{"type":"string"},"chain":{"type":"string"}},"additionalProperties":false},"secret_userpass":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"encoding":{"type":"string","enum":["plain","base64"],"default":"plain"}},"additionalProperties":false},"serviceaccount":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"keys":{"type":"array","items":{"$ref":"#/components/schemas/serviceaccount_key"},"readOnly":true},"origin":{"type":"string","enum":["default","builtin"],"default":"default","readOnly":true}},"additionalProperties":false},"serviceaccount_key":{"type":"object","properties":{"name":{"type":"string","readOnly":true},"created":{"type":"string","format":"date-time","readOnly":true},"key":{"type":"string","readOnly":true},"description":{"type":"string","maxLength":250}},"additionalProperties":false},"task":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","readOnly":true},"description":{"type":"string"},"created":{"type":"string","format":"date-time"},"lastModified":{"type":"string","format":"date-time"},"targetEmail":{"type":"string"},"creatorLink":{"type":"string"},"type":{"type":"string"},"context":{"type":"object"},"status":{"type":"string","enum":["pending","complete","canceled"],"readOnly":true},"response":{"type":"object"},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true}},"additionalProperties":false},"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","readOnly":true},"version":{"type":"number"},"tags":{"type":"object"},"created":{"type":"string","format":"date-time"},"lastModified":{"type":"string","format":"date-time"},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"idp":{"type":"string"},"email":{"type":"string"}},"additionalProperties":false},"volumeset":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":64},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"spec":{"$ref":"#/components/schemas/volumeset_spec"},"status":{"$ref":"#/components/schemas/volumeset_status","readOnly":true},"gvc":{"type":"object"}},"additionalProperties":false},"volumeset_spec":{"type":"object","properties":{"initialCapacity":{"type":"integer","description":"The initial size in GB of volumes in this set."},"performanceClass":{"type":"string","enum":["general-purpose-ssd","high-throughput-ssd","shared"]},"storageClassSuffix":{"type":"string","description":"For self-hosted locations only. The storage class used for volumes in this set will be {performanceClass}-{fileSystemType}-{storageClassSuffix} if it exists, otherwise it will be {performanceClass}-{fileSystemType}"},"fileSystemType":{"type":"string","enum":["ext4","xfs","shared"],"default":"ext4"},"customEncryption":{"type":"object","properties":{"regions":{"type":"object"}},"additionalProperties":false,"description":"Configure customer-managed encryption keys for volumes in this set on a per-region basis. Region names must follow the format: {cloud-provider}-{region} (e.g., aws-us-east-1)."},"snapshots":{"type":"object","properties":{"createFinalSnapshot":{"type":"boolean","description":"If true, a volume snapshot will be created immediately before deletion of any volume in this set"},"retentionDuration":{"type":"string","description":"The default retention period for volume snapshots. This string should contain a floating point number followed by either d, h, or m. For example, \"10d\" would retain snapshots for 10 days."},"schedule":{"type":"string","description":"A standard cron schedule expression used to determine when your job should execute."}},"additionalProperties":false},"autoscaling":{"type":"object","properties":{"maxCapacity":{"type":"integer","description":"The maximum size in GB for a volume in this set. A volume cannot grow to be bigger than this."},"minFreePercentage":{"type":"number","description":"The guaranteed free space on the volume as a percentage of the volume's total size. ControlPlane will try to maintain at least that many percent free by scaling up the total size"},"scalingFactor":{"type":"number","description":"When scaling is necessary, then new_capacity = current_capacity * storageScalingFactor."},"predictive":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable predictive scaling based on historical growth rates. Default: false."},"lookbackHours":{"type":"number","description":"Hours of historical data to analyze. Default: 24. Max: 168 (1 week)."},"projectionHours":{"type":"number","description":"Hours into the future to project storage needs. Default: 6."},"minDataPoints":{"type":"integer","description":"Minimum data points required for reliable growth rate calculation. Default: 10."},"minGrowthRateGBPerHour":{"type":"number","description":"Minimum growth rate (GB/hour) to trigger predictive expansion. Default: 0.01."},"scalingFactor":{"type":"number","description":"Scaling factor for predictive expansion. If not set, uses the parent autoscaling.scalingFactor. Use a lower value (e.g., 1.2) for gentler proactive scaling."}},"additionalProperties":false,"description":"Predictive scaling configuration. When enabled, proactively expands volumes based on historical growth rate projections."}},"additionalProperties":false},"mountOptions":{"type":"object","properties":{"resources":{"type":"object","properties":{"maxCpu":{"type":"string","maxLength":20,"default":"2000m","description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minCpu":{"type":"string","maxLength":20,"default":"500m","description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"default":"1Gi","description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"default":"2Gi","description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false,"description":"For volume sets using the shared file system, this object specifies the CPU and memory resources allotted to each mount point"}},"additionalProperties":false,"description":"A list of mount options to use when mounting volumes in this set."}},"additionalProperties":false},"volumeset_status":{"type":"object","properties":{"parentId":{"type":"string"},"usedByWorkload":{"type":"string"},"workloadLinks":{"type":"array","items":{"type":"string"}},"bindingId":{"type":"string"},"locations":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the location in which this volume was provisioned"},"volumes":{"type":"array","items":{"type":"object","properties":{"lifecycle":{"type":"string","enum":["creating","unused","unbound","bound","deleted","repairing"],"default":"creating"},"storageDeviceId":{"type":"string","description":"The id of the volume as provided by the underlying storage implementation. If this is blank, an actual storage device has not yet been created."},"oldStorageDeviceIds":{"type":"array","items":{"type":"string"},"description":"The most recently used storageDeviceId. This is meant for use by Control Plane only"},"resourceName":{"type":"string"},"index":{"type":"integer","description":"This number is used to order volumes within the volume set. It is used by Control Plane to link volumes with the workload replicas that use them."},"currentSize":{"type":"number","description":"The current capacity of the volume in GB"},"currentBytesUsed":{"type":"number","description":"The total bytes used in the volume."},"iops":{"type":"number"},"throughput":{"type":"number"},"driver":{"type":"string","description":"The name of the CSI driver used to provision and manage this volume"},"volumeSnapshots":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"A human-readable name for this snapshot."},"id":{"type":"string","description":"The id of the snapshot as provided by the underlying storage implementation."},"created":{"type":"string","format":"date-time","description":"The date and time that the snapshot was created in the Control Plane API"},"expires":{"type":"string","format":"date-time","description":"The date and time on which this snapshot will be automatically deleted."},"size":{"type":"number","description":"The size of the snapshot in GB."},"tags":{"type":"array","items":{"type":"object"}}},"additionalProperties":false}},"attributes":{"type":"object"},"zone":{"type":"string"}},"additionalProperties":false}},"desiredVolumeCount":{"type":"integer"},"clusterId":{"type":"string","description":"The id of the cluster assigned to the gvc in this location."}},"additionalProperties":false}}},"additionalProperties":false},"workload":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"kind":{"type":"string","readOnly":true},"version":{"type":"integer","readOnly":true},"description":{"type":"string","maxLength":250},"tags":{"type":"object"},"created":{"type":"string","format":"date-time","readOnly":true},"lastModified":{"type":"string","format":"date-time","readOnly":true},"links":{"type":"array","items":{"$ref":"#/components/schemas/link"},"readOnly":true},"name":{"type":"string","maxLength":49,"description":"Name of the workload (max 49 characters)"},"health":{"type":"object","properties":{"readiness":{"type":"string"},"syncFailed":{"type":"boolean"},"readyLocations":{"type":"integer"},"totalLocations":{"type":"integer"},"readyReplicas":{"type":"integer"},"totalReplicas":{"type":"integer"}},"additionalProperties":false},"spec":{"type":"object","properties":{"type":{"type":"string","enum":["serverless","standard","cron","stateful"],"default":"serverless","description":"Type of workload: standard (always running), cron (scheduled jobs), stateful (persistent state), or serverless (rapid autoscaling)"},"identityLink":{"type":"string","description":"The identityLink is used as the access scope for 3rd party cloud resources. A single identity can provide access to multiple cloud providers."},"containers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":64,"description":"The name of the container."},"image":{"type":"string","description":"The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud)."},"workingDir":{"type":"string","maxLength":128,"description":"The working directory for the container process"},"metrics":{"type":"object","properties":{"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"}},"additionalProperties":false,"description":"Prometheus metrics configuration for the container"},"port":{"type":"integer","description":"The port in the container which receives external traffic or traffic from other workloads. Only one container is allowed to specify a port."},"ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false},"description":"The ports in the container which can receive internal and external traffic.  For serverless workloads only the first port will be used."},"memory":{"type":"string","maxLength":20,"default":"128Mi","description":"reserved memory of the workload when capacityAI is disabled. maximum memory when CapacityAI is enabled."},"readinessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is ready to receive additional traffic."},"livenessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is healthy or should be restarted."},"cpu":{"type":"string","maxLength":20,"default":"50m","description":"reserved CPU of the workload when capacityAI is disabled. maximum CPU when CapacityAI is enabled."},"minCpu":{"type":"string","maxLength":20,"description":"Minimum CPU when capacityAI is enabled."},"minMemory":{"type":"string","maxLength":20,"description":"Minimum memory when capacityAI is enabled"},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD"},"gpu":{"type":"object","properties":{"nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}},"additionalProperties":false,"description":"Reserved GPU resources for the workload."},"inheritEnv":{"type":"boolean","description":"Enables inheritance of GVC environment variables. A variable in spec.env will override a GVC variable with the same name."},"command":{"type":"string","maxLength":256,"description":"Optionally override the entrypoint"},"args":{"type":"array","items":{"type":"string"},"description":"Command line arguments passed to the container at runtime. Replaces the CMD arguments of the running container. It is an ordered list."},"lifecycle":{"type":"object","properties":{"postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}},"additionalProperties":false,"description":"Lifecycle hooks for the container"},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false},"description":"Mount Object Store (S3, GCS, AzureBlob) buckets as file system"}},"additionalProperties":false},"description":"List of containers that make up the workload"},"firewallConfig":{"type":"object","properties":{"external":{"type":"object","properties":{"inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"},"description":"The list of public hostnames that this workload is allowed to reach. No outbound access is allowed by default. A wildcard '*' is allowed on the prefix of the hostname only, ex: '*.amazonaws.com'. Use 'outboundAllowCIDR' to allow access to all external websites (not recommended). The ports 80, 443 & 445 are allowed by default. This can be modified using the outboundAllowPort setting."},"outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false},"description":"Allow outbound access to specific ports and protocols. When not specified, communication to address ranges in outboundAllowCIDR is allowed on all ports and communication to names in outboundAllowHostname is allowed on ports 80/443."},"outboundAllowCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is allowed reach. No outbound access is allowed by default. Specify '0.0.0.0/0' to allow outbound access to the public internet (not recommended)."},"outboundBlockedCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is NOT allowed reach. Addresses in the allow list will only be allowed if they do not exist in this list."},"http":{"type":"object","properties":{"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."}},"additionalProperties":false,"description":"firewall options for HTTP workloads"}},"additionalProperties":false,"description":"The external firewall is used to control access to and from the public internet."},"internal":{"type":"object","properties":{"inboundAllowType":{"type":"string","enum":["none","same-gvc","same-org","workload-list"],"default":"none","description":"Used to control the internal firewall configuration and mutual tls. 'none': no access is allowed between this workload and other workloads on Control Plane. 'same-gvc': workloads running on the same Global Virtual Cloud are allowed to access this workload internally. 'same-org': workloads running on the same Control Plane Organization are allowed to access this workload internally. 'workload-list': specific workloads provided in the 'inboundAllowWorkload' array are allowed to access this workload internally."},"inboundAllowWorkload":{"type":"array","items":{"type":"string"},"description":"A list of specific workloads which are allowed to access this workload internally."}},"additionalProperties":false,"description":"The internal firewall is used to control access between workloads."}},"additionalProperties":false,"description":"Optional control of inbound and outbound access to the workload for external (public) and internal (service to service) traffic. Access is restricted by default."},"defaultOptions":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."},"localOptions":{"type":"array","items":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"location":{"type":"string"}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."},"description":"Override defaultOptions for the workload in specific Control Plane Locations."},"job":{"type":"object","properties":{"schedule":{"type":"string","description":"A standard cron schedule expression (5 fields)."},"concurrencyPolicy":{"type":"string","enum":["Forbid","Replace","Allow"],"default":"Forbid","description":"Either 'Forbid', 'Replace', or 'Allow'. This determines what Control Plane will do when the schedule requires a job to start, while a prior instance of the job is still running."},"historyLimit":{"type":"integer","description":"The maximum number of completed job instances to display. This should be an integer between 1 and 10."},"restartPolicy":{"type":"string","enum":["OnFailure","Never"],"description":"Either 'OnFailure' or 'Never'. This determines what Control Plane will do when a job instance fails."},"activeDeadlineSeconds":{"type":"number","description":"The maximum number of seconds Control Plane will wait for the job to complete. If a job does not succeed or fail in the allotted time, Control Plane will stop the job, moving it into the Removed status."}},"additionalProperties":false,"description":"Job configuration for cron workloads"},"sidecar":{"type":"object","properties":{"envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"description":"Envoy proxy filters"}},"additionalProperties":false,"description":"Sidecar container configuration"},"supportDynamicTags":{"type":"boolean","description":"If this is enabled, Control Plane will automatically redeploy your workload when one of the container images is updated in the container registry."},"rolloutOptions":{"type":"object","properties":{"minReadySeconds":{"type":"integer","description":"The minimum number of seconds a container must run without crashing to be considered available"},"maxUnavailableReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be unavailable during a rollout"},"maxSurgeReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be created above the desired count during a rollout"},"scalingPolicy":{"type":"string","enum":["OrderedReady","Parallel"],"default":"OrderedReady","description":"Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel)"},"terminationGracePeriodSeconds":{"type":"number","description":"The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.\nThis includes the time it takes for the preStop hook to run."}},"additionalProperties":false,"description":"Configuration for how workload updates are rolled out"},"securityOptions":{"type":"object","properties":{"filesystemGroupId":{"type":"integer","description":"The group id assigned to any mounted volume"},"runAsUser":{"type":"integer","description":"The user id assigned to all container processes"}},"additionalProperties":false,"description":"Security context for the workload"},"loadBalancer":{"type":"object","properties":{"direct":{"type":"object","properties":{"enabled":{"type":"boolean","description":"when disabled, this load balancer will be stopped"},"ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false},"description":"list of ports that will be exposed by this load balancer"},"ipSet":{"type":"string","description":"IP set to use for dedicated IPs"}},"additionalProperties":false,"description":"direct load balancers are created in each location that a workload is running in and are configured for the standard endpoints of the workload. Customers are responsible for configuring the workload with certificates if TLS is required"},"geoLocation":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, geo location headers will be included on inbound http requests. Existing headers will be replaced."},"headers":{"type":"object","properties":{"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}},"additionalProperties":false,"description":"Custom header names for geo location data"}},"additionalProperties":false,"description":"Geo location header configuration"},"replicaDirect":{"type":"boolean","description":"When enabled, individual replicas of the workload can be reached directly using the subdomain prefix replica-<index>.\nFor example, replica-0.my-workload.my-gvc.cpln.local or replica-0.my-workload-<gvc-alias>.cpln.app\nCan only be used with stateful workloads."}},"additionalProperties":false,"description":"Load balancer configuration"},"extras":{"type":"object","properties":{"affinity":{"type":"object","description":"Kubernetes pod affinity and anti-affinity rules"},"tolerations":{"type":"array","items":{"type":"object"},"description":"Kubernetes pod tolerations for node taints"},"topologySpreadConstraints":{"type":"array","items":{"type":"object"},"description":"Kubernetes topology spread constraints for pod distribution"}},"additionalProperties":false,"description":"Additional Kubernetes customizations for BYOK"},"requestRetryPolicy":{"type":"object","properties":{"attempts":{"type":"integer","description":"Maximum number of retry attempts for failed requests"},"retryOn":{"type":"array","items":{"type":"string","maxLength":32},"description":"List of conditions that trigger request retries (e.g., 5xx, gateway-error, connect-failure, unavailable)"}},"additionalProperties":false,"description":"Policy for retrying failed requests"}},"additionalProperties":false,"description":"Workload specification"},"status":{"type":"object","properties":{"parentId":{"type":"string","description":"UUID of the parent GVC"},"canonicalEndpoint":{"type":"string","description":"Canonical endpoint URL for the workload"},"endpoint":{"type":"string","description":"Primary endpoint URL for the workload"},"internalName":{"type":"string","description":"Internal DNS name for the workload"},"replicaInternalNames":{"type":"array","items":{"type":"string"},"description":"Internal DNS names for individual replicas"},"healthCheck":{"type":"object","properties":{"active":{"type":"boolean","description":"Whether the health check is currently active"},"success":{"type":"boolean","description":"Whether the most recent health check succeeded"},"code":{"type":"integer","description":"HTTP status code from the most recent health check"},"message":{"type":"string","description":"Status message from the most recent health check"},"failures":{"type":"integer","description":"Number of consecutive failed health checks"},"successes":{"type":"integer","description":"Number of consecutive successful health checks"},"lastChecked":{"type":"string","format":"date-time","description":"Timestamp of the most recent health check"}},"additionalProperties":false,"description":"Current health check status"},"currentReplicaCount":{"type":"number","description":"Current number of running replicas"},"resolvedImages":{"type":"object","properties":{"resolvedForVersion":{"type":"integer","description":"Workload version for which images were resolved"},"resolvedAt":{"type":"string","format":"date-time","description":"Timestamp when images were last resolved"},"errorMessages":{"type":"array","items":{"type":"string"},"description":"Error messages from image resolution failures"},"nextRetryAt":{"type":"string","format":"date-time","description":"Timestamp when image resolution will be retried"},"images":{"type":"array","items":{"type":"object","properties":{"digest":{"type":"string","description":"Image digest SHA"},"manifests":{"type":"array","items":{"type":"object","properties":{"image":{"type":"string","description":"Full image name with tag"},"mediaType":{"type":"string","description":"Media type of the image manifest"},"digest":{"type":"string","description":"Digest SHA of the image manifest"},"platform":{"type":"object","description":"Platform information (os, architecture, etc.)"}},"additionalProperties":false},"description":"List of image manifests for multi-architecture images"}},"additionalProperties":false},"description":"List of resolved container images"}},"additionalProperties":false,"description":"Information about resolved container images"},"loadBalancer":{"type":"array","items":{"type":"object","properties":{"origin":{"type":"string","description":"Origin location of the load balancer"},"url":{"type":"string","description":"URL of the load balancer endpoint"}},"additionalProperties":false},"description":"Load balancer status information"},"suspendedStatus":{"type":"string"}},"additionalProperties":false,"description":"Runtime status of the workload (read-only)","readOnly":true}},"additionalProperties":false},"workload_spec":{"type":"object","properties":{"type":{"type":"string","enum":["serverless","standard","cron","stateful"],"default":"serverless","description":"Type of workload: standard (always running), cron (scheduled jobs), stateful (persistent state), or serverless (rapid autoscaling)"},"identityLink":{"type":"string","description":"The identityLink is used as the access scope for 3rd party cloud resources. A single identity can provide access to multiple cloud providers."},"containers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":64,"description":"The name of the container."},"image":{"type":"string","description":"The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud)."},"workingDir":{"type":"string","maxLength":128,"description":"The working directory for the container process"},"metrics":{"type":"object","properties":{"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"}},"additionalProperties":false,"description":"Prometheus metrics configuration for the container"},"port":{"type":"integer","description":"The port in the container which receives external traffic or traffic from other workloads. Only one container is allowed to specify a port."},"ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false},"description":"The ports in the container which can receive internal and external traffic.  For serverless workloads only the first port will be used."},"memory":{"type":"string","maxLength":20,"default":"128Mi","description":"reserved memory of the workload when capacityAI is disabled. maximum memory when CapacityAI is enabled."},"readinessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is ready to receive additional traffic."},"livenessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is healthy or should be restarted."},"cpu":{"type":"string","maxLength":20,"default":"50m","description":"reserved CPU of the workload when capacityAI is disabled. maximum CPU when CapacityAI is enabled."},"minCpu":{"type":"string","maxLength":20,"description":"Minimum CPU when capacityAI is enabled."},"minMemory":{"type":"string","maxLength":20,"description":"Minimum memory when capacityAI is enabled"},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD"},"gpu":{"type":"object","properties":{"nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}},"additionalProperties":false,"description":"Reserved GPU resources for the workload."},"inheritEnv":{"type":"boolean","description":"Enables inheritance of GVC environment variables. A variable in spec.env will override a GVC variable with the same name."},"command":{"type":"string","maxLength":256,"description":"Optionally override the entrypoint"},"args":{"type":"array","items":{"type":"string"},"description":"Command line arguments passed to the container at runtime. Replaces the CMD arguments of the running container. It is an ordered list."},"lifecycle":{"type":"object","properties":{"postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}},"additionalProperties":false,"description":"Lifecycle hooks for the container"},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false},"description":"Mount Object Store (S3, GCS, AzureBlob) buckets as file system"}},"additionalProperties":false},"description":"List of containers that make up the workload"},"firewallConfig":{"type":"object","properties":{"external":{"type":"object","properties":{"inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"},"description":"The list of public hostnames that this workload is allowed to reach. No outbound access is allowed by default. A wildcard '*' is allowed on the prefix of the hostname only, ex: '*.amazonaws.com'. Use 'outboundAllowCIDR' to allow access to all external websites (not recommended). The ports 80, 443 & 445 are allowed by default. This can be modified using the outboundAllowPort setting."},"outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false},"description":"Allow outbound access to specific ports and protocols. When not specified, communication to address ranges in outboundAllowCIDR is allowed on all ports and communication to names in outboundAllowHostname is allowed on ports 80/443."},"outboundAllowCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is allowed reach. No outbound access is allowed by default. Specify '0.0.0.0/0' to allow outbound access to the public internet (not recommended)."},"outboundBlockedCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is NOT allowed reach. Addresses in the allow list will only be allowed if they do not exist in this list."},"http":{"type":"object","properties":{"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."}},"additionalProperties":false,"description":"firewall options for HTTP workloads"}},"additionalProperties":false,"description":"The external firewall is used to control access to and from the public internet."},"internal":{"type":"object","properties":{"inboundAllowType":{"type":"string","enum":["none","same-gvc","same-org","workload-list"],"default":"none","description":"Used to control the internal firewall configuration and mutual tls. 'none': no access is allowed between this workload and other workloads on Control Plane. 'same-gvc': workloads running on the same Global Virtual Cloud are allowed to access this workload internally. 'same-org': workloads running on the same Control Plane Organization are allowed to access this workload internally. 'workload-list': specific workloads provided in the 'inboundAllowWorkload' array are allowed to access this workload internally."},"inboundAllowWorkload":{"type":"array","items":{"type":"string"},"description":"A list of specific workloads which are allowed to access this workload internally."}},"additionalProperties":false,"description":"The internal firewall is used to control access between workloads."}},"additionalProperties":false,"description":"Optional control of inbound and outbound access to the workload for external (public) and internal (service to service) traffic. Access is restricted by default."},"defaultOptions":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."},"localOptions":{"type":"array","items":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"location":{"type":"string"}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."},"description":"Override defaultOptions for the workload in specific Control Plane Locations."},"job":{"type":"object","properties":{"schedule":{"type":"string","description":"A standard cron schedule expression (5 fields)."},"concurrencyPolicy":{"type":"string","enum":["Forbid","Replace","Allow"],"default":"Forbid","description":"Either 'Forbid', 'Replace', or 'Allow'. This determines what Control Plane will do when the schedule requires a job to start, while a prior instance of the job is still running."},"historyLimit":{"type":"integer","description":"The maximum number of completed job instances to display. This should be an integer between 1 and 10."},"restartPolicy":{"type":"string","enum":["OnFailure","Never"],"description":"Either 'OnFailure' or 'Never'. This determines what Control Plane will do when a job instance fails."},"activeDeadlineSeconds":{"type":"number","description":"The maximum number of seconds Control Plane will wait for the job to complete. If a job does not succeed or fail in the allotted time, Control Plane will stop the job, moving it into the Removed status."}},"additionalProperties":false,"description":"Job configuration for cron workloads"},"sidecar":{"type":"object","properties":{"envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"description":"Envoy proxy filters"}},"additionalProperties":false,"description":"Sidecar container configuration"},"supportDynamicTags":{"type":"boolean","description":"If this is enabled, Control Plane will automatically redeploy your workload when one of the container images is updated in the container registry."},"rolloutOptions":{"type":"object","properties":{"minReadySeconds":{"type":"integer","description":"The minimum number of seconds a container must run without crashing to be considered available"},"maxUnavailableReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be unavailable during a rollout"},"maxSurgeReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be created above the desired count during a rollout"},"scalingPolicy":{"type":"string","enum":["OrderedReady","Parallel"],"default":"OrderedReady","description":"Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel)"},"terminationGracePeriodSeconds":{"type":"number","description":"The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.\nThis includes the time it takes for the preStop hook to run."}},"additionalProperties":false,"description":"Configuration for how workload updates are rolled out"},"securityOptions":{"type":"object","properties":{"filesystemGroupId":{"type":"integer","description":"The group id assigned to any mounted volume"},"runAsUser":{"type":"integer","description":"The user id assigned to all container processes"}},"additionalProperties":false,"description":"Security context for the workload"},"loadBalancer":{"type":"object","properties":{"direct":{"type":"object","properties":{"enabled":{"type":"boolean","description":"when disabled, this load balancer will be stopped"},"ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false},"description":"list of ports that will be exposed by this load balancer"},"ipSet":{"type":"string","description":"IP set to use for dedicated IPs"}},"additionalProperties":false,"description":"direct load balancers are created in each location that a workload is running in and are configured for the standard endpoints of the workload. Customers are responsible for configuring the workload with certificates if TLS is required"},"geoLocation":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, geo location headers will be included on inbound http requests. Existing headers will be replaced."},"headers":{"type":"object","properties":{"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}},"additionalProperties":false,"description":"Custom header names for geo location data"}},"additionalProperties":false,"description":"Geo location header configuration"},"replicaDirect":{"type":"boolean","description":"When enabled, individual replicas of the workload can be reached directly using the subdomain prefix replica-<index>.\nFor example, replica-0.my-workload.my-gvc.cpln.local or replica-0.my-workload-<gvc-alias>.cpln.app\nCan only be used with stateful workloads."}},"additionalProperties":false,"description":"Load balancer configuration"},"extras":{"type":"object","properties":{"affinity":{"type":"object","description":"Kubernetes pod affinity and anti-affinity rules"},"tolerations":{"type":"array","items":{"type":"object"},"description":"Kubernetes pod tolerations for node taints"},"topologySpreadConstraints":{"type":"array","items":{"type":"object"},"description":"Kubernetes topology spread constraints for pod distribution"}},"additionalProperties":false,"description":"Additional Kubernetes customizations for BYOK"},"requestRetryPolicy":{"type":"object","properties":{"attempts":{"type":"integer","description":"Maximum number of retry attempts for failed requests"},"retryOn":{"type":"array","items":{"type":"string","maxLength":32},"description":"List of conditions that trigger request retries (e.g., 5xx, gateway-error, connect-failure, unavailable)"}},"additionalProperties":false,"description":"Policy for retrying failed requests"}},"additionalProperties":false},"workload_status":{"type":"object","properties":{"parentId":{"type":"string","description":"UUID of the parent GVC"},"canonicalEndpoint":{"type":"string","description":"Canonical endpoint URL for the workload"},"endpoint":{"type":"string","description":"Primary endpoint URL for the workload"},"internalName":{"type":"string","description":"Internal DNS name for the workload"},"replicaInternalNames":{"type":"array","items":{"type":"string"},"description":"Internal DNS names for individual replicas"},"healthCheck":{"type":"object","properties":{"active":{"type":"boolean","description":"Whether the health check is currently active"},"success":{"type":"boolean","description":"Whether the most recent health check succeeded"},"code":{"type":"integer","description":"HTTP status code from the most recent health check"},"message":{"type":"string","description":"Status message from the most recent health check"},"failures":{"type":"integer","description":"Number of consecutive failed health checks"},"successes":{"type":"integer","description":"Number of consecutive successful health checks"},"lastChecked":{"type":"string","format":"date-time","description":"Timestamp of the most recent health check"}},"additionalProperties":false,"description":"Current health check status"},"currentReplicaCount":{"type":"number","description":"Current number of running replicas"},"resolvedImages":{"type":"object","properties":{"resolvedForVersion":{"type":"integer","description":"Workload version for which images were resolved"},"resolvedAt":{"type":"string","format":"date-time","description":"Timestamp when images were last resolved"},"errorMessages":{"type":"array","items":{"type":"string"},"description":"Error messages from image resolution failures"},"nextRetryAt":{"type":"string","format":"date-time","description":"Timestamp when image resolution will be retried"},"images":{"type":"array","items":{"type":"object","properties":{"digest":{"type":"string","description":"Image digest SHA"},"manifests":{"type":"array","items":{"type":"object","properties":{"image":{"type":"string","description":"Full image name with tag"},"mediaType":{"type":"string","description":"Media type of the image manifest"},"digest":{"type":"string","description":"Digest SHA of the image manifest"},"platform":{"type":"object","description":"Platform information (os, architecture, etc.)"}},"additionalProperties":false},"description":"List of image manifests for multi-architecture images"}},"additionalProperties":false},"description":"List of resolved container images"}},"additionalProperties":false,"description":"Information about resolved container images"},"loadBalancer":{"type":"array","items":{"type":"object","properties":{"origin":{"type":"string","description":"Origin location of the load balancer"},"url":{"type":"string","description":"URL of the load balancer endpoint"}},"additionalProperties":false},"description":"Load balancer status information"},"suspendedStatus":{"type":"string"}},"additionalProperties":false},"patch_agent":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"}}},"patch_auditctx":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","origin"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"origin":{"type":"string","enum":["default","builtin"],"default":"default"}}},"patch_cloudaccount":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","provider","data"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"provider":{"type":"string","enum":["aws","gcp","azure","ngs"]},"$replace/data":{"oneOf":[{"$ref":"#/components/schemas/cloudaccount_gcp_config"},{"$ref":"#/components/schemas/cloudaccount_aws_config"},{"$ref":"#/components/schemas/cloudaccount_azure_config"},{"type":"object","properties":{"secretLink":{"type":"string"}},"additionalProperties":false}]},"data":{"oneOf":[{"$ref":"#/components/schemas/patch_cloudaccount_gcp_config"},{"$ref":"#/components/schemas/patch_cloudaccount_aws_config"},{"$ref":"#/components/schemas/patch_cloudaccount_azure_config"}]}}},"patch_cloudaccount_aws_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["roleArn"]}},"roleArn":{"type":"string"}}},"patch_cloudaccount_azure_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["secretLink"]}},"secretLink":{"type":"string"}}},"patch_cloudaccount_gcp_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["projectId"]}},"projectId":{"type":"string","maxLength":30}}},"patch_domain":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","spec"]}},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"name":{"type":"string","maxLength":253},"spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dnsMode","gvcLink","certChallengeType","workloadLink","acceptAllHosts","acceptAllSubdomains","ports"]}},"dnsMode":{"type":"string","enum":["cname","ns"],"description":"In 'cname' dnsMode, Control Plane will configure workloads to accept traffic for the domain but will not manage DNS records for the domain.\n      End users configure CNAME records in their own DNS pointed to the canonical workload endpoint.\n      Currently 'cname' dnsMode requires that a tls.serverCertificate is configured when subdomain based routing is used.\n      In 'ns' dnsMode, Control Plane will manage the subdomains and create all necessary DNS records.\n      End users configure an NS record to forward DNS requests to the Control Plane managed DNS servers."},"gvcLink":{"type":"string","description":"One of gvcLink and routes may be provided. When gvcLink is configured each workload in the GVC will receive a subdomain in the form ${workload.name}.${domain.name}"},"certChallengeType":{"type":"string","enum":["http01","dns01"]},"workloadLink":{"type":"string"},"acceptAllHosts":{"type":"boolean"},"acceptAllSubdomains":{"type":"boolean"},"ports":{"type":"array","items":{"type":"object","properties":{"number":{"type":"number"},"protocol":{"type":"string","enum":["http","http2","tcp"],"default":"http2"},"routes":{"type":"array","items":{"type":"object","properties":{"replacePrefix":{"type":"string","description":"When provided, the URI prefix will be replaced with this string before the request is sent to the workload."},"regex":{"type":"string","description":"Used to match URI paths.\nOne of prefix OR regex may be provided.\nUses the google re2 regex syntax"},"prefix":{"type":"string"},"workloadLink":{"type":"string"},"port":{"type":"integer"},"hostPrefix":{"type":"string","description":"This option allows forwarding traffic for different host headers to different workloads.\nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support.\nContact your account manager for details."},"hostRegex":{"type":"string","description":"A regex to match the host header. \nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support. \nContact your account manager for details."},"headers":{"type":"object","properties":{"request":{"type":"object","properties":{"set":{"type":"object","description":"Sets or overrides headers to all http requests for this route."}},"additionalProperties":false,"description":"Manipulates HTTP headers"}},"additionalProperties":false,"description":"Modify the headers for all http requests for this route."},"replica":{"type":"integer","description":"The replica number of a stateful workload to route to. If not provided, traffic will be routed to all replicas."},"mirror":{"type":"array","items":{"type":"object","properties":{"workloadLink":{"type":"string","description":"The workload to mirror traffic to."},"port":{"type":"integer","description":"The port to send mirrored traffic to. If not provided, traffic will be mirrored to the first discovered port on the mirrored workload"},"percent":{"type":"number","description":"The percentage of traffic to mirror to the specified workload."}},"additionalProperties":false,"description":"Mirror a percentage of traffic to another workload for testing or canary purposes."}}},"additionalProperties":false},"description":"A list of mappings to workloads."},"cors":{"type":"object","properties":{"allowOrigins":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false}},"allowMethods":{"type":"array","items":{"type":"string"}},"allowHeaders":{"type":"array","items":{"type":"string"}},"exposeHeaders":{"type":"array","items":{"type":"string"}},"maxAge":{"type":"string"},"allowCredentials":{"type":"boolean"}},"additionalProperties":false},"tls":{"type":"object","properties":{"minProtocolVersion":{"type":"string","enum":["TLSV1_3","TLSV1_2","TLSV1_1","TLSV1_0"],"default":"TLSV1_2"},"cipherSuites":{"type":"array","items":{"type":"string","enum":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","DES-CBC3-SHA","ECDHE-RSA-AES128-SHA","ECDHE-RSA-AES256-SHA","AES128-SHA","AES256-SHA"],"default":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256"]}},"clientCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"The secret will include a client certificate authority cert in PEM format used to verify requests which include client certificates. The key subject must match the domain and the key usage properties must be configured for client certificate authorization. The secret type must be keypair."}},"additionalProperties":false,"description":"When clientCertificate is defined, requests may optionally supply a client certificate. The certificate details are included in the x-forwarded-client-cert header."},"serverCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"When provided, this is used as the server certificate authority. The secret type must be keypair and the content must be PEM encoded."}},"additionalProperties":false,"description":"Configure an optional custom server certificate for the domain. When the port number is 443 and this is not supplied, a certificate is provisioned automatically."}},"additionalProperties":false,"description":"Used for TLS connections for this Domain. End users are responsible for certificate updates."}},"additionalProperties":false}},"$drop/ports":{"type":"array","items":{"type":"string"}},"$append/ports":{"type":"array","items":{"type":"object","properties":{"number":{"type":"number"},"protocol":{"type":"string","enum":["http","http2","tcp"],"default":"http2"},"routes":{"type":"array","items":{"type":"object","properties":{"replacePrefix":{"type":"string","description":"When provided, the URI prefix will be replaced with this string before the request is sent to the workload."},"regex":{"type":"string","description":"Used to match URI paths.\nOne of prefix OR regex may be provided.\nUses the google re2 regex syntax"},"prefix":{"type":"string"},"workloadLink":{"type":"string"},"port":{"type":"integer"},"hostPrefix":{"type":"string","description":"This option allows forwarding traffic for different host headers to different workloads.\nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support.\nContact your account manager for details."},"hostRegex":{"type":"string","description":"A regex to match the host header. \nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support. \nContact your account manager for details."},"headers":{"type":"object","properties":{"request":{"type":"object","properties":{"set":{"type":"object","description":"Sets or overrides headers to all http requests for this route."}},"additionalProperties":false,"description":"Manipulates HTTP headers"}},"additionalProperties":false,"description":"Modify the headers for all http requests for this route."},"replica":{"type":"integer","description":"The replica number of a stateful workload to route to. If not provided, traffic will be routed to all replicas."},"mirror":{"type":"array","items":{"type":"object","properties":{"workloadLink":{"type":"string","description":"The workload to mirror traffic to."},"port":{"type":"integer","description":"The port to send mirrored traffic to. If not provided, traffic will be mirrored to the first discovered port on the mirrored workload"},"percent":{"type":"number","description":"The percentage of traffic to mirror to the specified workload."}},"additionalProperties":false,"description":"Mirror a percentage of traffic to another workload for testing or canary purposes."}}},"additionalProperties":false},"description":"A list of mappings to workloads."},"cors":{"type":"object","properties":{"allowOrigins":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false}},"allowMethods":{"type":"array","items":{"type":"string"}},"allowHeaders":{"type":"array","items":{"type":"string"}},"exposeHeaders":{"type":"array","items":{"type":"string"}},"maxAge":{"type":"string"},"allowCredentials":{"type":"boolean"}},"additionalProperties":false},"tls":{"type":"object","properties":{"minProtocolVersion":{"type":"string","enum":["TLSV1_3","TLSV1_2","TLSV1_1","TLSV1_0"],"default":"TLSV1_2"},"cipherSuites":{"type":"array","items":{"type":"string","enum":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","DES-CBC3-SHA","ECDHE-RSA-AES128-SHA","ECDHE-RSA-AES256-SHA","AES128-SHA","AES256-SHA"],"default":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256"]}},"clientCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"The secret will include a client certificate authority cert in PEM format used to verify requests which include client certificates. The key subject must match the domain and the key usage properties must be configured for client certificate authorization. The secret type must be keypair."}},"additionalProperties":false,"description":"When clientCertificate is defined, requests may optionally supply a client certificate. The certificate details are included in the x-forwarded-client-cert header."},"serverCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"When provided, this is used as the server certificate authority. The secret type must be keypair and the content must be PEM encoded."}},"additionalProperties":false,"description":"Configure an optional custom server certificate for the domain. When the port number is 443 and this is not supplied, a certificate is provisioned automatically."}},"additionalProperties":false,"description":"Used for TLS connections for this Domain. End users are responsible for certificate updates."}},"additionalProperties":false}},"$patch/ports":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["number","protocol","routes","cors","tls"]}},"number":{"type":"number"},"protocol":{"type":"string","enum":["http","http2","tcp"],"default":"http2"},"routes":{"type":"array","items":{"type":"object","properties":{"replacePrefix":{"type":"string","description":"When provided, the URI prefix will be replaced with this string before the request is sent to the workload."},"regex":{"type":"string","description":"Used to match URI paths.\nOne of prefix OR regex may be provided.\nUses the google re2 regex syntax"},"prefix":{"type":"string"},"workloadLink":{"type":"string"},"port":{"type":"integer"},"hostPrefix":{"type":"string","description":"This option allows forwarding traffic for different host headers to different workloads.\nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support.\nContact your account manager for details."},"hostRegex":{"type":"string","description":"A regex to match the host header. \nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support. \nContact your account manager for details."},"headers":{"type":"object","properties":{"request":{"type":"object","properties":{"set":{"type":"object","description":"Sets or overrides headers to all http requests for this route."}},"additionalProperties":false,"description":"Manipulates HTTP headers"}},"additionalProperties":false,"description":"Modify the headers for all http requests for this route."},"replica":{"type":"integer","description":"The replica number of a stateful workload to route to. If not provided, traffic will be routed to all replicas."},"mirror":{"type":"array","items":{"type":"object","properties":{"workloadLink":{"type":"string","description":"The workload to mirror traffic to."},"port":{"type":"integer","description":"The port to send mirrored traffic to. If not provided, traffic will be mirrored to the first discovered port on the mirrored workload"},"percent":{"type":"number","description":"The percentage of traffic to mirror to the specified workload."}},"additionalProperties":false,"description":"Mirror a percentage of traffic to another workload for testing or canary purposes."}}},"additionalProperties":false},"description":"A list of mappings to workloads."},"$drop/routes":{"type":"array","items":{"type":"string"}},"$append/routes":{"type":"array","items":{"type":"object","properties":{"replacePrefix":{"type":"string","description":"When provided, the URI prefix will be replaced with this string before the request is sent to the workload."},"regex":{"type":"string","description":"Used to match URI paths.\nOne of prefix OR regex may be provided.\nUses the google re2 regex syntax"},"prefix":{"type":"string"},"workloadLink":{"type":"string"},"port":{"type":"integer"},"hostPrefix":{"type":"string","description":"This option allows forwarding traffic for different host headers to different workloads.\nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support.\nContact your account manager for details."},"hostRegex":{"type":"string","description":"A regex to match the host header. \nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support. \nContact your account manager for details."},"headers":{"type":"object","properties":{"request":{"type":"object","properties":{"set":{"type":"object","description":"Sets or overrides headers to all http requests for this route."}},"additionalProperties":false,"description":"Manipulates HTTP headers"}},"additionalProperties":false,"description":"Modify the headers for all http requests for this route."},"replica":{"type":"integer","description":"The replica number of a stateful workload to route to. If not provided, traffic will be routed to all replicas."},"mirror":{"type":"array","items":{"type":"object","properties":{"workloadLink":{"type":"string","description":"The workload to mirror traffic to."},"port":{"type":"integer","description":"The port to send mirrored traffic to. If not provided, traffic will be mirrored to the first discovered port on the mirrored workload"},"percent":{"type":"number","description":"The percentage of traffic to mirror to the specified workload."}},"additionalProperties":false,"description":"Mirror a percentage of traffic to another workload for testing or canary purposes."}}},"additionalProperties":false}},"$patch/routes":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["replacePrefix","regex","prefix","workloadLink","port","hostPrefix","hostRegex","headers","replica","mirror"]}},"replacePrefix":{"type":"string","description":"When provided, the URI prefix will be replaced with this string before the request is sent to the workload."},"regex":{"type":"string","description":"Used to match URI paths.\nOne of prefix OR regex may be provided.\nUses the google re2 regex syntax"},"prefix":{"type":"string"},"workloadLink":{"type":"string"},"port":{"type":"integer"},"hostPrefix":{"type":"string","description":"This option allows forwarding traffic for different host headers to different workloads.\nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support.\nContact your account manager for details."},"hostRegex":{"type":"string","description":"A regex to match the host header. \nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support. \nContact your account manager for details."},"headers":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["request"]}},"request":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["set"]}},"set":{"type":"object","properties":{}},"$replace/set":{"type":"object","description":"Sets or overrides headers to all http requests for this route."}}},"$replace/request":{"type":"object","properties":{"set":{"type":"object","description":"Sets or overrides headers to all http requests for this route."}},"additionalProperties":false,"description":"Manipulates HTTP headers"}}},"$replace/headers":{"type":"object","properties":{"request":{"type":"object","properties":{"set":{"type":"object","description":"Sets or overrides headers to all http requests for this route."}},"additionalProperties":false,"description":"Manipulates HTTP headers"}},"additionalProperties":false,"description":"Modify the headers for all http requests for this route."},"replica":{"type":"integer","description":"The replica number of a stateful workload to route to. If not provided, traffic will be routed to all replicas."},"mirror":{"type":"array","items":{"type":"object","properties":{"workloadLink":{"type":"string","description":"The workload to mirror traffic to."},"port":{"type":"integer","description":"The port to send mirrored traffic to. If not provided, traffic will be mirrored to the first discovered port on the mirrored workload"},"percent":{"type":"number","description":"The percentage of traffic to mirror to the specified workload."}},"additionalProperties":false,"description":"Mirror a percentage of traffic to another workload for testing or canary purposes."}},"$drop/mirror":{"type":"array","items":{"type":"string"}},"$append/mirror":{"type":"array","items":{"type":"object","properties":{"workloadLink":{"type":"string","description":"The workload to mirror traffic to."},"port":{"type":"integer","description":"The port to send mirrored traffic to. If not provided, traffic will be mirrored to the first discovered port on the mirrored workload"},"percent":{"type":"number","description":"The percentage of traffic to mirror to the specified workload."}},"additionalProperties":false,"description":"Mirror a percentage of traffic to another workload for testing or canary purposes."}},"$patch/mirror":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["workloadLink","port","percent"]}},"workloadLink":{"type":"string","description":"The workload to mirror traffic to."},"port":{"type":"integer","description":"The port to send mirrored traffic to. If not provided, traffic will be mirrored to the first discovered port on the mirrored workload"},"percent":{"type":"number","description":"The percentage of traffic to mirror to the specified workload."}}}},"$retain/mirror":{"type":"array","items":{"type":"string"}}}}},"$retain/routes":{"type":"array","items":{"type":"string"}},"cors":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["allowOrigins","allowMethods","allowHeaders","exposeHeaders","maxAge","allowCredentials"]}},"allowOrigins":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false}},"$drop/allowOrigins":{"type":"array","items":{"type":"string"}},"$append/allowOrigins":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false}},"$patch/allowOrigins":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","regex"]}},"exact":{"type":"string"},"regex":{"type":"string"}}}},"$retain/allowOrigins":{"type":"array","items":{"type":"string"}},"allowMethods":{"type":"array","items":{"type":"string"}},"$drop/allowMethods":{"type":"array","items":{"type":"string"}},"$append/allowMethods":{"type":"array","items":{"type":"string"}},"$retain/allowMethods":{"type":"array","items":{"type":"string"}},"allowHeaders":{"type":"array","items":{"type":"string"}},"$drop/allowHeaders":{"type":"array","items":{"type":"string"}},"$append/allowHeaders":{"type":"array","items":{"type":"string"}},"$retain/allowHeaders":{"type":"array","items":{"type":"string"}},"exposeHeaders":{"type":"array","items":{"type":"string"}},"$drop/exposeHeaders":{"type":"array","items":{"type":"string"}},"$append/exposeHeaders":{"type":"array","items":{"type":"string"}},"$retain/exposeHeaders":{"type":"array","items":{"type":"string"}},"maxAge":{"type":"string"},"allowCredentials":{"type":"boolean"}}},"$replace/cors":{"type":"object","properties":{"allowOrigins":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false}},"allowMethods":{"type":"array","items":{"type":"string"}},"allowHeaders":{"type":"array","items":{"type":"string"}},"exposeHeaders":{"type":"array","items":{"type":"string"}},"maxAge":{"type":"string"},"allowCredentials":{"type":"boolean"}},"additionalProperties":false},"tls":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minProtocolVersion","cipherSuites","clientCertificate","serverCertificate"]}},"minProtocolVersion":{"type":"string","enum":["TLSV1_3","TLSV1_2","TLSV1_1","TLSV1_0"],"default":"TLSV1_2"},"cipherSuites":{"type":"array","items":{"type":"string","enum":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","DES-CBC3-SHA","ECDHE-RSA-AES128-SHA","ECDHE-RSA-AES256-SHA","AES128-SHA","AES256-SHA"],"default":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256"]}},"$drop/cipherSuites":{"type":"array","items":{"type":"string","enum":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","DES-CBC3-SHA","ECDHE-RSA-AES128-SHA","ECDHE-RSA-AES256-SHA","AES128-SHA","AES256-SHA"],"default":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256"]}},"$append/cipherSuites":{"type":"array","items":{"type":"string","enum":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","DES-CBC3-SHA","ECDHE-RSA-AES128-SHA","ECDHE-RSA-AES256-SHA","AES128-SHA","AES256-SHA"],"default":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256"]}},"$retain/cipherSuites":{"type":"array","items":{"type":"string","enum":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","DES-CBC3-SHA","ECDHE-RSA-AES128-SHA","ECDHE-RSA-AES256-SHA","AES128-SHA","AES256-SHA"],"default":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256"]}},"clientCertificate":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["secretLink"]}},"secretLink":{"type":"string","description":"The secret will include a client certificate authority cert in PEM format used to verify requests which include client certificates. The key subject must match the domain and the key usage properties must be configured for client certificate authorization. The secret type must be keypair."}}},"$replace/clientCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"The secret will include a client certificate authority cert in PEM format used to verify requests which include client certificates. The key subject must match the domain and the key usage properties must be configured for client certificate authorization. The secret type must be keypair."}},"additionalProperties":false,"description":"When clientCertificate is defined, requests may optionally supply a client certificate. The certificate details are included in the x-forwarded-client-cert header."},"serverCertificate":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["secretLink"]}},"secretLink":{"type":"string","description":"When provided, this is used as the server certificate authority. The secret type must be keypair and the content must be PEM encoded."}}},"$replace/serverCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"When provided, this is used as the server certificate authority. The secret type must be keypair and the content must be PEM encoded."}},"additionalProperties":false,"description":"Configure an optional custom server certificate for the domain. When the port number is 443 and this is not supplied, a certificate is provisioned automatically."}}},"$replace/tls":{"type":"object","properties":{"minProtocolVersion":{"type":"string","enum":["TLSV1_3","TLSV1_2","TLSV1_1","TLSV1_0"],"default":"TLSV1_2"},"cipherSuites":{"type":"array","items":{"type":"string","enum":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","DES-CBC3-SHA","ECDHE-RSA-AES128-SHA","ECDHE-RSA-AES256-SHA","AES128-SHA","AES256-SHA"],"default":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256"]}},"clientCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"The secret will include a client certificate authority cert in PEM format used to verify requests which include client certificates. The key subject must match the domain and the key usage properties must be configured for client certificate authorization. The secret type must be keypair."}},"additionalProperties":false,"description":"When clientCertificate is defined, requests may optionally supply a client certificate. The certificate details are included in the x-forwarded-client-cert header."},"serverCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"When provided, this is used as the server certificate authority. The secret type must be keypair and the content must be PEM encoded."}},"additionalProperties":false,"description":"Configure an optional custom server certificate for the domain. When the port number is 443 and this is not supplied, a certificate is provisioned automatically."}},"additionalProperties":false,"description":"Used for TLS connections for this Domain. End users are responsible for certificate updates."}}}},"$retain/ports":{"type":"array","items":{"type":"string"}}}},"$replace/spec":{"type":"object","properties":{"dnsMode":{"type":"string","enum":["cname","ns"],"description":"In 'cname' dnsMode, Control Plane will configure workloads to accept traffic for the domain but will not manage DNS records for the domain.\n      End users configure CNAME records in their own DNS pointed to the canonical workload endpoint.\n      Currently 'cname' dnsMode requires that a tls.serverCertificate is configured when subdomain based routing is used.\n      In 'ns' dnsMode, Control Plane will manage the subdomains and create all necessary DNS records.\n      End users configure an NS record to forward DNS requests to the Control Plane managed DNS servers."},"gvcLink":{"type":"string","description":"One of gvcLink and routes may be provided. When gvcLink is configured each workload in the GVC will receive a subdomain in the form ${workload.name}.${domain.name}"},"certChallengeType":{"type":"string","enum":["http01","dns01"]},"workloadLink":{"type":"string"},"acceptAllHosts":{"type":"boolean"},"acceptAllSubdomains":{"type":"boolean"},"ports":{"type":"array","items":{"type":"object","properties":{"number":{"type":"number"},"protocol":{"type":"string","enum":["http","http2","tcp"],"default":"http2"},"routes":{"type":"array","items":{"type":"object","properties":{"replacePrefix":{"type":"string","description":"When provided, the URI prefix will be replaced with this string before the request is sent to the workload."},"regex":{"type":"string","description":"Used to match URI paths.\nOne of prefix OR regex may be provided.\nUses the google re2 regex syntax"},"prefix":{"type":"string"},"workloadLink":{"type":"string"},"port":{"type":"integer"},"hostPrefix":{"type":"string","description":"This option allows forwarding traffic for different host headers to different workloads.\nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support.\nContact your account manager for details."},"hostRegex":{"type":"string","description":"A regex to match the host header. \nThis will only be used when the target GVC has dedicated load balancing enabled and the Domain is configure for wildcard support. \nContact your account manager for details."},"headers":{"type":"object","properties":{"request":{"type":"object","properties":{"set":{"type":"object","description":"Sets or overrides headers to all http requests for this route."}},"additionalProperties":false,"description":"Manipulates HTTP headers"}},"additionalProperties":false,"description":"Modify the headers for all http requests for this route."},"replica":{"type":"integer","description":"The replica number of a stateful workload to route to. If not provided, traffic will be routed to all replicas."},"mirror":{"type":"array","items":{"type":"object","properties":{"workloadLink":{"type":"string","description":"The workload to mirror traffic to."},"port":{"type":"integer","description":"The port to send mirrored traffic to. If not provided, traffic will be mirrored to the first discovered port on the mirrored workload"},"percent":{"type":"number","description":"The percentage of traffic to mirror to the specified workload."}},"additionalProperties":false,"description":"Mirror a percentage of traffic to another workload for testing or canary purposes."}}},"additionalProperties":false},"description":"A list of mappings to workloads."},"cors":{"type":"object","properties":{"allowOrigins":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false}},"allowMethods":{"type":"array","items":{"type":"string"}},"allowHeaders":{"type":"array","items":{"type":"string"}},"exposeHeaders":{"type":"array","items":{"type":"string"}},"maxAge":{"type":"string"},"allowCredentials":{"type":"boolean"}},"additionalProperties":false},"tls":{"type":"object","properties":{"minProtocolVersion":{"type":"string","enum":["TLSV1_3","TLSV1_2","TLSV1_1","TLSV1_0"],"default":"TLSV1_2"},"cipherSuites":{"type":"array","items":{"type":"string","enum":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","DES-CBC3-SHA","ECDHE-RSA-AES128-SHA","ECDHE-RSA-AES256-SHA","AES128-SHA","AES256-SHA"],"default":["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-ECDSA-CHACHA20-POLY1305","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-RSA-CHACHA20-POLY1305","ECDHE-RSA-AES128-GCM-SHA256","AES256-GCM-SHA384","AES128-GCM-SHA256"]}},"clientCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"The secret will include a client certificate authority cert in PEM format used to verify requests which include client certificates. The key subject must match the domain and the key usage properties must be configured for client certificate authorization. The secret type must be keypair."}},"additionalProperties":false,"description":"When clientCertificate is defined, requests may optionally supply a client certificate. The certificate details are included in the x-forwarded-client-cert header."},"serverCertificate":{"type":"object","properties":{"secretLink":{"type":"string","description":"When provided, this is used as the server certificate authority. The secret type must be keypair and the content must be PEM encoded."}},"additionalProperties":false,"description":"Configure an optional custom server certificate for the domain. When the port number is 443 and this is not supplied, a certificate is provisioned automatically."}},"additionalProperties":false,"description":"Used for TLS connections for this Domain. End users are responsible for certificate updates."}},"additionalProperties":false}}},"additionalProperties":false}}},"patch_group":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","memberLinks","memberQuery","identityMatcher"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"memberLinks":{"type":"array","items":{"type":"string"}},"$drop/memberLinks":{"type":"array","items":{"type":"string"}},"$append/memberLinks":{"type":"array","items":{"type":"string"}},"$retain/memberLinks":{"type":"array","items":{"type":"string"}},"memberQuery":{"$ref":"#/components/schemas/patch_query"},"$replace/memberQuery":{"$ref":"#/components/schemas/query"},"identityMatcher":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expression","language"]}},"expression":{"type":"string"},"language":{"type":"string","enum":["jmespath","javascript"],"default":"jmespath"}}},"$replace/identityMatcher":{"type":"object","properties":{"expression":{"type":"string"},"language":{"type":"string","enum":["jmespath","javascript"],"default":"jmespath"}},"additionalProperties":false}}},"patch_gvc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","spec"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["staticPlacement","pullSecretLinks","domain","endpointNamingFormat","tracing","sidecar","env","loadBalancer","keda"]}},"staticPlacement":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["locationLinks","locationQuery","locationOptions"]}},"locationLinks":{"type":"array","items":{"type":"string"}},"$drop/locationLinks":{"type":"array","items":{"type":"string"}},"$append/locationLinks":{"type":"array","items":{"type":"string"}},"$retain/locationLinks":{"type":"array","items":{"type":"string"}},"locationQuery":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["kind","spec"]}},"kind":{"type":"string"},"spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","terms","sort"]}},"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"$drop/terms":{"type":"array","items":{"type":"string"}},"$append/terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"$patch/terms":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["op","property","rel","tag","value"]}},"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"$replace/value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]},"value":{"oneOf":[]}}}},"$retain/terms":{"type":"array","items":{"type":"string"}},"sort":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["by","order"]}},"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}}},"$replace/sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}}},"$replace/spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}}},"$replace/locationQuery":{"type":"object","properties":{"kind":{"type":"string"},"context":{"type":"object","readOnly":true},"spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"locationOptions":{"type":"array","items":{"type":"object","properties":{"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}},"additionalProperties":false},"description":"Per-location routing options for DNS geo routing. Allows configuring priority-based failover and latency adjustments per location."},"$drop/locationOptions":{"type":"array","items":{"type":"string"}},"$append/locationOptions":{"type":"array","items":{"type":"object","properties":{"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}},"additionalProperties":false}},"$patch/locationOptions":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["locationLink","routingTier","latencyOffsetMs","latencyToleranceMs"]}},"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}}}},"$retain/locationOptions":{"type":"array","items":{"type":"string"}}}},"$replace/staticPlacement":{"type":"object","properties":{"locationLinks":{"type":"array","items":{"type":"string"}},"locationQuery":{"type":"object","properties":{"kind":{"type":"string"},"context":{"type":"object","readOnly":true},"spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"locationOptions":{"type":"array","items":{"type":"object","properties":{"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}},"additionalProperties":false},"description":"Per-location routing options for DNS geo routing. Allows configuring priority-based failover and latency adjustments per location."}},"additionalProperties":false},"pullSecretLinks":{"type":"array","items":{"type":"string"}},"$drop/pullSecretLinks":{"type":"array","items":{"type":"string"}},"$append/pullSecretLinks":{"type":"array","items":{"type":"string"}},"$retain/pullSecretLinks":{"type":"array","items":{"type":"string"}},"domain":{"type":"string"},"endpointNamingFormat":{"type":"string","enum":["default","legacy","org"],"description":"Customizes the subdomain format for the canonical workload endpoint.\n`default` leaves it as ${workloadName}-${gvcName}.cpln.app\n`org` follows the scheme ${workloadName}-${gvcName}.${org}.cpln.app"},"tracing":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["sampling","lightstep","customTags","provider"]}},"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint","credentials"]}},"endpoint":{"type":"string"},"credentials":{"type":"string"}}},"$replace/lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object","properties":{}},"$replace/customTags":{"type":"object"},"provider":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["otel","lightstep","controlplane"]}},"otel":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint"]}},"endpoint":{"type":"string"}}},"$replace/otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint","credentials"]}},"endpoint":{"type":"string"},"credentials":{"type":"string"}}},"$replace/lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{}},"$replace/controlplane":{"type":"object","properties":{},"additionalProperties":false}}},"$replace/provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}}},"$replace/tracing":{"type":"object","properties":{"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object"},"provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["envoy"]}},"envoy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["accessLog","clusters","excludedExternalAuth","excludedRateLimit","http","network","volumes"]}},"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"$drop/accessLog":{"type":"array","items":{"type":"string"}},"$append/accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"$patch/accessLog":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["priority","excludedWorkloads","typed_config"]}},"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"$drop/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$append/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$retain/excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["@type","common_config","additional_request_headers_to_log","additional_response_headers_to_log","additional_response_trailers_to_log"]}},"@type":{"type":"object","properties":{}},"$replace/@type":{"type":"object"},"common_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["log_name","grpc_service","transport_api_version","buffer_flush_interval","buffer_size_bytes","filter_state_objects_to_log","grpc_stream_retry_policy"]}},"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["envoy_grpc","google_grpc","timeout","initial_metadata"]}},"envoy_grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cluster_name","authority","retry_policy"]}},"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["retry_back_off","num_retries"]}},"retry_back_off":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["base_interval","max_interval"]}},"$replace/base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"base_interval":{"oneOf":[]},"$replace/max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[]}}},"$replace/retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}}},"$replace/retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}}},"$replace/envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["target_uri","channel_credentials","call_credentials","stat_prefix","credentials_factory_name","config"]}},"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["ssl_credentials","google_default"]}},"ssl_credentials":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["root_certs","private_key","cert_chain"]}},"root_certs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}}},"$replace/ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{}},"$replace/google_default":{"type":"object","properties":{},"additionalProperties":false}}},"$replace/channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$drop/call_credentials":{"type":"array","items":{"type":"string"}},"$append/call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$patch/call_credentials":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["access_token","google_compute_engine","google_refresh_token","service_account_jwt_access","google_iam","from_plugin","sts_service"]}},"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{}},"$replace/google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["json_key","token_lifetime_seconds"]}},"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}}},"$replace/service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["authorization_token","authority_selector"]}},"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}}},"$replace/google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["token_exchange_service_uri","resource","audience","scope","requested_token_type","subject_token_path","subject_token_type","actor_token_path","actor_token_type"]}},"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}}},"$replace/sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}}}},"$retain/call_credentials":{"type":"array","items":{"type":"string"}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object","properties":{}},"$replace/config":{"type":"object"}}},"$replace/google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"$replace/timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"timeout":{"oneOf":[]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}},"$drop/initial_metadata":{"type":"array","items":{"type":"string"}},"$append/initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}},"$patch/initial_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","raw_value"]}},"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}}}},"$retain/initial_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"$replace/buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_flush_interval":{"oneOf":[]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$drop/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$append/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$retain/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["retry_back_off","num_retries"]}},"retry_back_off":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["base_interval","max_interval"]}},"$replace/base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"base_interval":{"oneOf":[]},"$replace/max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[]}}},"$replace/retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}}},"$replace/grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}}},"$replace/common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}}},"$replace/typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"$retain/accessLog":{"type":"array","items":{"type":"string"}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"$drop/clusters":{"type":"array","items":{"type":"string"}},"$append/clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"$patch/clusters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["excludedWorkloads","transport_socket_matches","alt_stat_name","type","cluster_type","eds_cluster_config","connect_timeout","per_connection_buffer_limit_bytes","lb_policy","load_assignment","health_checks","max_requests_per_connection","circuit_breakers","upstream_http_protocol_options","common_http_protocol_options","http_protocol_options","http2_protocol_options","typed_extension_protocol_options","dns_refresh_rate","dns_failure_refresh_rate","respect_dns_ttl","dns_lookup_family","dns_resolvers","use_tcp_for_dns_lookups","dns_resolution_config","typed_dns_resolver_config","wait_for_warm_on_init","outlier_detection","cleanup_interval","upstream_bind_config","lb_subset_config","ring_hash_lb_config","maglev_lb_config","least_request_lb_config","common_lb_config","transport_socket","metadata","protocol_selection","upstream_connection_options","close_connections_on_host_health_failure","ignore_health_on_host_removal","filters","load_balancing_policy","track_timeout_budgets","upstream_config","track_cluster_stats","preconnect_policy","connection_pool_per_downstream_connection"]}},"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"$drop/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$append/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$retain/excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object","properties":{}},"$replace/transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object","properties":{}},"$replace/alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object","properties":{}},"$replace/cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object","properties":{}},"$replace/eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object","properties":{}},"$replace/connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object","properties":{}},"$replace/per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object","properties":{}},"$replace/lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cluster_name","endpoints","policy"]}},"cluster_name":{"type":"string"},"endpoints":{"type":"object","properties":{}},"$replace/endpoints":{"type":"object"},"policy":{"type":"object","properties":{}},"$replace/policy":{"type":"object"}}},"$replace/load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object","properties":{}},"$replace/health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object","properties":{}},"$replace/max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object","properties":{}},"$replace/circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object","properties":{}},"$replace/upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object","properties":{}},"$replace/common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object","properties":{}},"$replace/http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object","properties":{}},"$replace/http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object","properties":{}},"$replace/typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object","properties":{}},"$replace/dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object","properties":{}},"$replace/dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object","properties":{}},"$replace/respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object","properties":{}},"$replace/dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object","properties":{}},"$replace/dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object","properties":{}},"$replace/use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object","properties":{}},"$replace/dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object","properties":{}},"$replace/typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object","properties":{}},"$replace/wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object","properties":{}},"$replace/outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object","properties":{}},"$replace/cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object","properties":{}},"$replace/upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object","properties":{}},"$replace/lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object","properties":{}},"$replace/ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object","properties":{}},"$replace/maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object","properties":{}},"$replace/least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object","properties":{}},"$replace/common_lb_config":{"type":"object"},"transport_socket":{"type":"object","properties":{}},"$replace/transport_socket":{"type":"object"},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object"},"protocol_selection":{"type":"object","properties":{}},"$replace/protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object","properties":{}},"$replace/upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object","properties":{}},"$replace/close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object","properties":{}},"$replace/ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object","properties":{}},"$replace/filters":{"type":"object"},"load_balancing_policy":{"type":"object","properties":{}},"$replace/load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object","properties":{}},"$replace/track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object","properties":{}},"$replace/upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object","properties":{}},"$replace/track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object","properties":{}},"$replace/preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object","properties":{}},"$replace/connection_pool_per_downstream_connection":{"type":"object"}}}},"$retain/clusters":{"type":"array","items":{"type":"string"}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$drop/excludedExternalAuth":{"type":"array","items":{"type":"string"}},"$append/excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$patch/excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","port","svcPort"]}},"match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["prefix","path","safe_regex","path_separated_prefix","path_match_policy","case_sensitive","runtime_fraction","headers","query_parameters","grpc","tls_context","dynamic_metadata"]}},"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["default_value","runtime_key"]}},"default_value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["numerator","denominator"]}},"numerator":{"type":"integer"},"denominator":{"type":"integer"}}},"$replace/default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}}},"$replace/runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$drop/headers":{"type":"array","items":{"type":"string"}},"$append/headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$patch/headers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["safe_regex_match","range_match","present_match","string_match","invert_match","treat_missing_header_as_empty"]}},"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"integer"},"end":{"type":"integer"}}},"$replace/range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}}}},"$retain/headers":{"type":"array","items":{"type":"string"}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$drop/query_parameters":{"type":"array","items":{"type":"string"}},"$append/query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$patch/query_parameters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["string_match","present_match"]}},"name":{"type":"string"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}}}},"$retain/query_parameters":{"type":"array","items":{"type":"string"}},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$drop/dynamic_metadata":{"type":"array","items":{"type":"string"}},"$append/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$patch/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filter","path","value","invert"]}},"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$drop/path":{"type":"array","items":{"type":"string"}},"$append/path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$patch/path":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key"]}},"key":{"type":"string"}}}},"$retain/path":{"type":"array","items":{"type":"string"}},"value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["null_match","double_match","string_match","bool_match","present_match"]}},"null_match":{"type":"object","properties":{}},"$replace/null_match":{"type":"object"},"double_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["range","exact"]}},"range":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"number"},"end":{"type":"number"}}},"$replace/range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}}},"$replace/double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}}},"$replace/value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}}}},"$retain/dynamic_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}}}},"$retain/excludedExternalAuth":{"type":"array","items":{"type":"string"}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$drop/excludedRateLimit":{"type":"array","items":{"type":"string"}},"$append/excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$patch/excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","port","svcPort"]}},"match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["prefix","path","safe_regex","path_separated_prefix","path_match_policy","case_sensitive","runtime_fraction","headers","query_parameters","grpc","tls_context","dynamic_metadata"]}},"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["default_value","runtime_key"]}},"default_value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["numerator","denominator"]}},"numerator":{"type":"integer"},"denominator":{"type":"integer"}}},"$replace/default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}}},"$replace/runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$drop/headers":{"type":"array","items":{"type":"string"}},"$append/headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$patch/headers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["safe_regex_match","range_match","present_match","string_match","invert_match","treat_missing_header_as_empty"]}},"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"integer"},"end":{"type":"integer"}}},"$replace/range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}}}},"$retain/headers":{"type":"array","items":{"type":"string"}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$drop/query_parameters":{"type":"array","items":{"type":"string"}},"$append/query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$patch/query_parameters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["string_match","present_match"]}},"name":{"type":"string"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}}}},"$retain/query_parameters":{"type":"array","items":{"type":"string"}},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$drop/dynamic_metadata":{"type":"array","items":{"type":"string"}},"$append/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$patch/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filter","path","value","invert"]}},"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$drop/path":{"type":"array","items":{"type":"string"}},"$append/path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$patch/path":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key"]}},"key":{"type":"string"}}}},"$retain/path":{"type":"array","items":{"type":"string"}},"value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["null_match","double_match","string_match","bool_match","present_match"]}},"null_match":{"type":"object","properties":{}},"$replace/null_match":{"type":"object"},"double_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["range","exact"]}},"range":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"number"},"end":{"type":"number"}}},"$replace/range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}}},"$replace/double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}}},"$replace/value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}}}},"$retain/dynamic_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}}}},"$retain/excludedRateLimit":{"type":"array","items":{"type":"string"}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$drop/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$append/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$retain/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"$drop/network":{"type":"array","items":{"type":"string"}},"$append/network":{"type":"array","items":{"type":"object"}},"$patch/network":{"type":"array","items":{"type":"object","properties":{}}},"$retain/network":{"type":"array","items":{"type":"string"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}},"$drop/volumes":{"type":"array","items":{"type":"string"}},"$append/volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}},"$patch/volumes":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["uri","recoveryPolicy","path"]}},"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}}}},"$retain/volumes":{"type":"array","items":{"type":"string"}}}},"$replace/envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}},"$replace/sidecar":{"type":"object","properties":{"envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"These environment variables will be available to any workload in the GVC. Note: a workload must opt-in to receive these variables."},"$drop/env":{"type":"array","items":{"type":"string"}},"$append/env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false}},"$patch/env":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["value"]}},"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}}}},"$retain/env":{"type":"array","items":{"type":"string"}},"loadBalancer":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dedicated","multiZone","trustedProxies","redirect","ipSet"]}},"dedicated":{"type":"boolean","description":"Creates a dedicated load balancer in each location and enables additional Domain features: custom ports, protocols and wildcard hostnames. Charges apply for each location."},"multiZone":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled"]}},"enabled":{"type":"boolean"}}},"$replace/multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"trustedProxies":{"type":"integer","description":"Controls the address used for request logging and for setting the X-Envoy-External-Address header.\nIf set to 1, then the last address in an existing X-Forwarded-For header will be used in place of the source client IP address.\nIf set to 2, then the second to last address in an existing X-Forwarded-For header will be used in place of the source client IP address. If the XFF header does not have at least two addresses or does not exist then the source client IP address will be used instead."},"redirect":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["class"]}},"class":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["status5xx","status401"]}},"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}}},"$replace/class":{"type":"object","properties":{"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}},"additionalProperties":false,"description":"Specify the redirect url for all status codes in a class"}}},"$replace/redirect":{"type":"object","properties":{"class":{"type":"object","properties":{"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}},"additionalProperties":false,"description":"Specify the redirect url for all status codes in a class"}},"additionalProperties":false,"description":"Specify the url to be redirected to for different http status codes."},"ipSet":{"type":"string","description":"A link to an IPSet resource that will be used for this load balancer"}}},"$replace/loadBalancer":{"type":"object","properties":{"dedicated":{"type":"boolean","description":"Creates a dedicated load balancer in each location and enables additional Domain features: custom ports, protocols and wildcard hostnames. Charges apply for each location."},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"trustedProxies":{"type":"integer","description":"Controls the address used for request logging and for setting the X-Envoy-External-Address header.\nIf set to 1, then the last address in an existing X-Forwarded-For header will be used in place of the source client IP address.\nIf set to 2, then the second to last address in an existing X-Forwarded-For header will be used in place of the source client IP address. If the XFF header does not have at least two addresses or does not exist then the source client IP address will be used instead."},"redirect":{"type":"object","properties":{"class":{"type":"object","properties":{"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}},"additionalProperties":false,"description":"Specify the redirect url for all status codes in a class"}},"additionalProperties":false,"description":"Specify the url to be redirected to for different http status codes."},"ipSet":{"type":"string","description":"A link to an IPSet resource that will be used for this load balancer"}},"additionalProperties":false},"keda":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled","identityLink","secrets"]}},"enabled":{"type":"boolean","description":"Enable KEDA for this GVC.\nKEDA is a Kubernetes-based event-driven autoscaler that allows you to scale workloads based on external events.\nWhen enabled,a keda operator will be deployed in the GVC and workloads in the GVC can use KEDA to scale based on external metrics."},"identityLink":{"type":"string","description":"A link to an Identity resource that will be used for KEDA.\nThis will allow the keda operator to access cloud and network resources."},"secrets":{"type":"array","items":{"type":"string"},"description":"A list of secrets to be used as TriggerAuthentication objects.\nThe TriggerAuthentication object will be named after the secret and can be used by triggers on workloads in this GVC."},"$drop/secrets":{"type":"array","items":{"type":"string"}},"$append/secrets":{"type":"array","items":{"type":"string"}},"$retain/secrets":{"type":"array","items":{"type":"string"}}}},"$replace/keda":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable KEDA for this GVC.\nKEDA is a Kubernetes-based event-driven autoscaler that allows you to scale workloads based on external events.\nWhen enabled,a keda operator will be deployed in the GVC and workloads in the GVC can use KEDA to scale based on external metrics."},"identityLink":{"type":"string","description":"A link to an Identity resource that will be used for KEDA.\nThis will allow the keda operator to access cloud and network resources."},"secrets":{"type":"array","items":{"type":"string"},"description":"A list of secrets to be used as TriggerAuthentication objects.\nThe TriggerAuthentication object will be named after the secret and can be used by triggers on workloads in this GVC."}},"additionalProperties":false}}},"$replace/spec":{"type":"object","properties":{"staticPlacement":{"type":"object","properties":{"locationLinks":{"type":"array","items":{"type":"string"}},"locationQuery":{"type":"object","properties":{"kind":{"type":"string"},"context":{"type":"object","readOnly":true},"spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"locationOptions":{"type":"array","items":{"type":"object","properties":{"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}},"additionalProperties":false},"description":"Per-location routing options for DNS geo routing. Allows configuring priority-based failover and latency adjustments per location."}},"additionalProperties":false},"pullSecretLinks":{"type":"array","items":{"type":"string"}},"domain":{"type":"string"},"endpointNamingFormat":{"type":"string","enum":["default","legacy","org"],"description":"Customizes the subdomain format for the canonical workload endpoint.\n`default` leaves it as ${workloadName}-${gvcName}.cpln.app\n`org` follows the scheme ${workloadName}-${gvcName}.${org}.cpln.app"},"tracing":{"type":"object","properties":{"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object"},"provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"These environment variables will be available to any workload in the GVC. Note: a workload must opt-in to receive these variables."},"loadBalancer":{"type":"object","properties":{"dedicated":{"type":"boolean","description":"Creates a dedicated load balancer in each location and enables additional Domain features: custom ports, protocols and wildcard hostnames. Charges apply for each location."},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"trustedProxies":{"type":"integer","description":"Controls the address used for request logging and for setting the X-Envoy-External-Address header.\nIf set to 1, then the last address in an existing X-Forwarded-For header will be used in place of the source client IP address.\nIf set to 2, then the second to last address in an existing X-Forwarded-For header will be used in place of the source client IP address. If the XFF header does not have at least two addresses or does not exist then the source client IP address will be used instead."},"redirect":{"type":"object","properties":{"class":{"type":"object","properties":{"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}},"additionalProperties":false,"description":"Specify the redirect url for all status codes in a class"}},"additionalProperties":false,"description":"Specify the url to be redirected to for different http status codes."},"ipSet":{"type":"string","description":"A link to an IPSet resource that will be used for this load balancer"}},"additionalProperties":false},"keda":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable KEDA for this GVC.\nKEDA is a Kubernetes-based event-driven autoscaler that allows you to scale workloads based on external events.\nWhen enabled,a keda operator will be deployed in the GVC and workloads in the GVC can use KEDA to scale based on external metrics."},"identityLink":{"type":"string","description":"A link to an Identity resource that will be used for KEDA.\nThis will allow the keda operator to access cloud and network resources."},"secrets":{"type":"array","items":{"type":"string"},"description":"A list of secrets to be used as TriggerAuthentication objects.\nThe TriggerAuthentication object will be named after the secret and can be used by triggers on workloads in this GVC."}},"additionalProperties":false}},"additionalProperties":false}}},"patch_gvc_spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["staticPlacement","pullSecretLinks","domain","endpointNamingFormat","tracing","sidecar","env","loadBalancer","keda"]}},"staticPlacement":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["locationLinks","locationQuery","locationOptions"]}},"locationLinks":{"type":"array","items":{"type":"string"}},"$drop/locationLinks":{"type":"array","items":{"type":"string"}},"$append/locationLinks":{"type":"array","items":{"type":"string"}},"$retain/locationLinks":{"type":"array","items":{"type":"string"}},"locationQuery":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["kind","spec"]}},"kind":{"type":"string"},"spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","terms","sort"]}},"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"$drop/terms":{"type":"array","items":{"type":"string"}},"$append/terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"$patch/terms":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["op","property","rel","tag","value"]}},"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"$replace/value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]},"value":{"oneOf":[]}}}},"$retain/terms":{"type":"array","items":{"type":"string"}},"sort":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["by","order"]}},"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}}},"$replace/sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}}},"$replace/spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}}},"$replace/locationQuery":{"type":"object","properties":{"kind":{"type":"string"},"context":{"type":"object","readOnly":true},"spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"locationOptions":{"type":"array","items":{"type":"object","properties":{"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}},"additionalProperties":false},"description":"Per-location routing options for DNS geo routing. Allows configuring priority-based failover and latency adjustments per location."},"$drop/locationOptions":{"type":"array","items":{"type":"string"}},"$append/locationOptions":{"type":"array","items":{"type":"object","properties":{"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}},"additionalProperties":false}},"$patch/locationOptions":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["locationLink","routingTier","latencyOffsetMs","latencyToleranceMs"]}},"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}}}},"$retain/locationOptions":{"type":"array","items":{"type":"string"}}}},"$replace/staticPlacement":{"type":"object","properties":{"locationLinks":{"type":"array","items":{"type":"string"}},"locationQuery":{"type":"object","properties":{"kind":{"type":"string"},"context":{"type":"object","readOnly":true},"spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"locationOptions":{"type":"array","items":{"type":"object","properties":{"locationLink":{"type":"string"},"routingTier":{"type":"integer","description":"Routing tier for DNS geo routing. Lower value = higher priority. Locations with the same routingTier form a group; within a group, lowest latency wins. If all locations in the highest-priority group are unavailable, the next group is used."},"latencyOffsetMs":{"type":"integer","description":"Artificial latency offset in milliseconds added to measured latency. Positive values push traffic away from this location, negative values attract traffic. Default: 0."},"latencyToleranceMs":{"type":"integer","description":"Maximum acceptable latency in milliseconds. If measured latency exceeds this latencyToleranceMs, the location is treated as unavailable for DNS geo routing."}},"additionalProperties":false},"description":"Per-location routing options for DNS geo routing. Allows configuring priority-based failover and latency adjustments per location."}},"additionalProperties":false},"pullSecretLinks":{"type":"array","items":{"type":"string"}},"$drop/pullSecretLinks":{"type":"array","items":{"type":"string"}},"$append/pullSecretLinks":{"type":"array","items":{"type":"string"}},"$retain/pullSecretLinks":{"type":"array","items":{"type":"string"}},"domain":{"type":"string"},"endpointNamingFormat":{"type":"string","enum":["default","legacy","org"],"description":"Customizes the subdomain format for the canonical workload endpoint.\n`default` leaves it as ${workloadName}-${gvcName}.cpln.app\n`org` follows the scheme ${workloadName}-${gvcName}.${org}.cpln.app"},"tracing":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["sampling","lightstep","customTags","provider"]}},"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint","credentials"]}},"endpoint":{"type":"string"},"credentials":{"type":"string"}}},"$replace/lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object","properties":{}},"$replace/customTags":{"type":"object"},"provider":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["otel","lightstep","controlplane"]}},"otel":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint"]}},"endpoint":{"type":"string"}}},"$replace/otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint","credentials"]}},"endpoint":{"type":"string"},"credentials":{"type":"string"}}},"$replace/lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{}},"$replace/controlplane":{"type":"object","properties":{},"additionalProperties":false}}},"$replace/provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}}},"$replace/tracing":{"type":"object","properties":{"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object"},"provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["envoy"]}},"envoy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["accessLog","clusters","excludedExternalAuth","excludedRateLimit","http","network","volumes"]}},"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"$drop/accessLog":{"type":"array","items":{"type":"string"}},"$append/accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"$patch/accessLog":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["priority","excludedWorkloads","typed_config"]}},"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"$drop/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$append/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$retain/excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["@type","common_config","additional_request_headers_to_log","additional_response_headers_to_log","additional_response_trailers_to_log"]}},"@type":{"type":"object","properties":{}},"$replace/@type":{"type":"object"},"common_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["log_name","grpc_service","transport_api_version","buffer_flush_interval","buffer_size_bytes","filter_state_objects_to_log","grpc_stream_retry_policy"]}},"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["envoy_grpc","google_grpc","timeout","initial_metadata"]}},"envoy_grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cluster_name","authority","retry_policy"]}},"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["retry_back_off","num_retries"]}},"retry_back_off":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["base_interval","max_interval"]}},"$replace/base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"base_interval":{"oneOf":[]},"$replace/max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[]}}},"$replace/retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}}},"$replace/retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}}},"$replace/envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["target_uri","channel_credentials","call_credentials","stat_prefix","credentials_factory_name","config"]}},"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["ssl_credentials","google_default"]}},"ssl_credentials":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["root_certs","private_key","cert_chain"]}},"root_certs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}}},"$replace/ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{}},"$replace/google_default":{"type":"object","properties":{},"additionalProperties":false}}},"$replace/channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$drop/call_credentials":{"type":"array","items":{"type":"string"}},"$append/call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$patch/call_credentials":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["access_token","google_compute_engine","google_refresh_token","service_account_jwt_access","google_iam","from_plugin","sts_service"]}},"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{}},"$replace/google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["json_key","token_lifetime_seconds"]}},"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}}},"$replace/service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["authorization_token","authority_selector"]}},"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}}},"$replace/google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["token_exchange_service_uri","resource","audience","scope","requested_token_type","subject_token_path","subject_token_type","actor_token_path","actor_token_type"]}},"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}}},"$replace/sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}}}},"$retain/call_credentials":{"type":"array","items":{"type":"string"}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object","properties":{}},"$replace/config":{"type":"object"}}},"$replace/google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"$replace/timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"timeout":{"oneOf":[]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}},"$drop/initial_metadata":{"type":"array","items":{"type":"string"}},"$append/initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}},"$patch/initial_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","raw_value"]}},"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}}}},"$retain/initial_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"$replace/buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_flush_interval":{"oneOf":[]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$drop/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$append/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$retain/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["retry_back_off","num_retries"]}},"retry_back_off":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["base_interval","max_interval"]}},"$replace/base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"base_interval":{"oneOf":[]},"$replace/max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[]}}},"$replace/retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}}},"$replace/grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}}},"$replace/common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}}},"$replace/typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"$retain/accessLog":{"type":"array","items":{"type":"string"}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"$drop/clusters":{"type":"array","items":{"type":"string"}},"$append/clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"$patch/clusters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["excludedWorkloads","transport_socket_matches","alt_stat_name","type","cluster_type","eds_cluster_config","connect_timeout","per_connection_buffer_limit_bytes","lb_policy","load_assignment","health_checks","max_requests_per_connection","circuit_breakers","upstream_http_protocol_options","common_http_protocol_options","http_protocol_options","http2_protocol_options","typed_extension_protocol_options","dns_refresh_rate","dns_failure_refresh_rate","respect_dns_ttl","dns_lookup_family","dns_resolvers","use_tcp_for_dns_lookups","dns_resolution_config","typed_dns_resolver_config","wait_for_warm_on_init","outlier_detection","cleanup_interval","upstream_bind_config","lb_subset_config","ring_hash_lb_config","maglev_lb_config","least_request_lb_config","common_lb_config","transport_socket","metadata","protocol_selection","upstream_connection_options","close_connections_on_host_health_failure","ignore_health_on_host_removal","filters","load_balancing_policy","track_timeout_budgets","upstream_config","track_cluster_stats","preconnect_policy","connection_pool_per_downstream_connection"]}},"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"$drop/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$append/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$retain/excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object","properties":{}},"$replace/transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object","properties":{}},"$replace/alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object","properties":{}},"$replace/cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object","properties":{}},"$replace/eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object","properties":{}},"$replace/connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object","properties":{}},"$replace/per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object","properties":{}},"$replace/lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cluster_name","endpoints","policy"]}},"cluster_name":{"type":"string"},"endpoints":{"type":"object","properties":{}},"$replace/endpoints":{"type":"object"},"policy":{"type":"object","properties":{}},"$replace/policy":{"type":"object"}}},"$replace/load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object","properties":{}},"$replace/health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object","properties":{}},"$replace/max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object","properties":{}},"$replace/circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object","properties":{}},"$replace/upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object","properties":{}},"$replace/common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object","properties":{}},"$replace/http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object","properties":{}},"$replace/http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object","properties":{}},"$replace/typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object","properties":{}},"$replace/dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object","properties":{}},"$replace/dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object","properties":{}},"$replace/respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object","properties":{}},"$replace/dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object","properties":{}},"$replace/dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object","properties":{}},"$replace/use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object","properties":{}},"$replace/dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object","properties":{}},"$replace/typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object","properties":{}},"$replace/wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object","properties":{}},"$replace/outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object","properties":{}},"$replace/cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object","properties":{}},"$replace/upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object","properties":{}},"$replace/lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object","properties":{}},"$replace/ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object","properties":{}},"$replace/maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object","properties":{}},"$replace/least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object","properties":{}},"$replace/common_lb_config":{"type":"object"},"transport_socket":{"type":"object","properties":{}},"$replace/transport_socket":{"type":"object"},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object"},"protocol_selection":{"type":"object","properties":{}},"$replace/protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object","properties":{}},"$replace/upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object","properties":{}},"$replace/close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object","properties":{}},"$replace/ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object","properties":{}},"$replace/filters":{"type":"object"},"load_balancing_policy":{"type":"object","properties":{}},"$replace/load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object","properties":{}},"$replace/track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object","properties":{}},"$replace/upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object","properties":{}},"$replace/track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object","properties":{}},"$replace/preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object","properties":{}},"$replace/connection_pool_per_downstream_connection":{"type":"object"}}}},"$retain/clusters":{"type":"array","items":{"type":"string"}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$drop/excludedExternalAuth":{"type":"array","items":{"type":"string"}},"$append/excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$patch/excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","port","svcPort"]}},"match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["prefix","path","safe_regex","path_separated_prefix","path_match_policy","case_sensitive","runtime_fraction","headers","query_parameters","grpc","tls_context","dynamic_metadata"]}},"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["default_value","runtime_key"]}},"default_value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["numerator","denominator"]}},"numerator":{"type":"integer"},"denominator":{"type":"integer"}}},"$replace/default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}}},"$replace/runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$drop/headers":{"type":"array","items":{"type":"string"}},"$append/headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$patch/headers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["safe_regex_match","range_match","present_match","string_match","invert_match","treat_missing_header_as_empty"]}},"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"integer"},"end":{"type":"integer"}}},"$replace/range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}}}},"$retain/headers":{"type":"array","items":{"type":"string"}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$drop/query_parameters":{"type":"array","items":{"type":"string"}},"$append/query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$patch/query_parameters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["string_match","present_match"]}},"name":{"type":"string"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}}}},"$retain/query_parameters":{"type":"array","items":{"type":"string"}},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$drop/dynamic_metadata":{"type":"array","items":{"type":"string"}},"$append/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$patch/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filter","path","value","invert"]}},"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$drop/path":{"type":"array","items":{"type":"string"}},"$append/path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$patch/path":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key"]}},"key":{"type":"string"}}}},"$retain/path":{"type":"array","items":{"type":"string"}},"value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["null_match","double_match","string_match","bool_match","present_match"]}},"null_match":{"type":"object","properties":{}},"$replace/null_match":{"type":"object"},"double_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["range","exact"]}},"range":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"number"},"end":{"type":"number"}}},"$replace/range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}}},"$replace/double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}}},"$replace/value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}}}},"$retain/dynamic_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}}}},"$retain/excludedExternalAuth":{"type":"array","items":{"type":"string"}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$drop/excludedRateLimit":{"type":"array","items":{"type":"string"}},"$append/excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$patch/excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","port","svcPort"]}},"match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["prefix","path","safe_regex","path_separated_prefix","path_match_policy","case_sensitive","runtime_fraction","headers","query_parameters","grpc","tls_context","dynamic_metadata"]}},"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["default_value","runtime_key"]}},"default_value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["numerator","denominator"]}},"numerator":{"type":"integer"},"denominator":{"type":"integer"}}},"$replace/default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}}},"$replace/runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$drop/headers":{"type":"array","items":{"type":"string"}},"$append/headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$patch/headers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["safe_regex_match","range_match","present_match","string_match","invert_match","treat_missing_header_as_empty"]}},"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"integer"},"end":{"type":"integer"}}},"$replace/range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}}}},"$retain/headers":{"type":"array","items":{"type":"string"}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$drop/query_parameters":{"type":"array","items":{"type":"string"}},"$append/query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$patch/query_parameters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["string_match","present_match"]}},"name":{"type":"string"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}}}},"$retain/query_parameters":{"type":"array","items":{"type":"string"}},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$drop/dynamic_metadata":{"type":"array","items":{"type":"string"}},"$append/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$patch/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filter","path","value","invert"]}},"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$drop/path":{"type":"array","items":{"type":"string"}},"$append/path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$patch/path":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key"]}},"key":{"type":"string"}}}},"$retain/path":{"type":"array","items":{"type":"string"}},"value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["null_match","double_match","string_match","bool_match","present_match"]}},"null_match":{"type":"object","properties":{}},"$replace/null_match":{"type":"object"},"double_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["range","exact"]}},"range":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"number"},"end":{"type":"number"}}},"$replace/range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}}},"$replace/double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}}},"$replace/value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}}}},"$retain/dynamic_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}}}},"$retain/excludedRateLimit":{"type":"array","items":{"type":"string"}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$drop/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$append/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$retain/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"$drop/network":{"type":"array","items":{"type":"string"}},"$append/network":{"type":"array","items":{"type":"object"}},"$patch/network":{"type":"array","items":{"type":"object","properties":{}}},"$retain/network":{"type":"array","items":{"type":"string"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}},"$drop/volumes":{"type":"array","items":{"type":"string"}},"$append/volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}},"$patch/volumes":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["uri","recoveryPolicy","path"]}},"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}}}},"$retain/volumes":{"type":"array","items":{"type":"string"}}}},"$replace/envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}},"$replace/sidecar":{"type":"object","properties":{"envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"These environment variables will be available to any workload in the GVC. Note: a workload must opt-in to receive these variables."},"$drop/env":{"type":"array","items":{"type":"string"}},"$append/env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false}},"$patch/env":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["value"]}},"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}}}},"$retain/env":{"type":"array","items":{"type":"string"}},"loadBalancer":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dedicated","multiZone","trustedProxies","redirect","ipSet"]}},"dedicated":{"type":"boolean","description":"Creates a dedicated load balancer in each location and enables additional Domain features: custom ports, protocols and wildcard hostnames. Charges apply for each location."},"multiZone":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled"]}},"enabled":{"type":"boolean"}}},"$replace/multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"trustedProxies":{"type":"integer","description":"Controls the address used for request logging and for setting the X-Envoy-External-Address header.\nIf set to 1, then the last address in an existing X-Forwarded-For header will be used in place of the source client IP address.\nIf set to 2, then the second to last address in an existing X-Forwarded-For header will be used in place of the source client IP address. If the XFF header does not have at least two addresses or does not exist then the source client IP address will be used instead."},"redirect":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["class"]}},"class":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["status5xx","status401"]}},"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}}},"$replace/class":{"type":"object","properties":{"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}},"additionalProperties":false,"description":"Specify the redirect url for all status codes in a class"}}},"$replace/redirect":{"type":"object","properties":{"class":{"type":"object","properties":{"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}},"additionalProperties":false,"description":"Specify the redirect url for all status codes in a class"}},"additionalProperties":false,"description":"Specify the url to be redirected to for different http status codes."},"ipSet":{"type":"string","description":"A link to an IPSet resource that will be used for this load balancer"}}},"$replace/loadBalancer":{"type":"object","properties":{"dedicated":{"type":"boolean","description":"Creates a dedicated load balancer in each location and enables additional Domain features: custom ports, protocols and wildcard hostnames. Charges apply for each location."},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"trustedProxies":{"type":"integer","description":"Controls the address used for request logging and for setting the X-Envoy-External-Address header.\nIf set to 1, then the last address in an existing X-Forwarded-For header will be used in place of the source client IP address.\nIf set to 2, then the second to last address in an existing X-Forwarded-For header will be used in place of the source client IP address. If the XFF header does not have at least two addresses or does not exist then the source client IP address will be used instead."},"redirect":{"type":"object","properties":{"class":{"type":"object","properties":{"status5xx":{"type":"string","description":"Specify the redirect url for any 500 level status code"},"status401":{"type":"string","description":"An optional url redirect for 401 responses.\nSupports envoy format strings to include request information.\nE.g. https://your-oauth-server/oauth2/authorize?return_to=%REQ(:path)%&client_id=your-client-id\n"}},"additionalProperties":false,"description":"Specify the redirect url for all status codes in a class"}},"additionalProperties":false,"description":"Specify the url to be redirected to for different http status codes."},"ipSet":{"type":"string","description":"A link to an IPSet resource that will be used for this load balancer"}},"additionalProperties":false},"keda":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled","identityLink","secrets"]}},"enabled":{"type":"boolean","description":"Enable KEDA for this GVC.\nKEDA is a Kubernetes-based event-driven autoscaler that allows you to scale workloads based on external events.\nWhen enabled,a keda operator will be deployed in the GVC and workloads in the GVC can use KEDA to scale based on external metrics."},"identityLink":{"type":"string","description":"A link to an Identity resource that will be used for KEDA.\nThis will allow the keda operator to access cloud and network resources."},"secrets":{"type":"array","items":{"type":"string"},"description":"A list of secrets to be used as TriggerAuthentication objects.\nThe TriggerAuthentication object will be named after the secret and can be used by triggers on workloads in this GVC."},"$drop/secrets":{"type":"array","items":{"type":"string"}},"$append/secrets":{"type":"array","items":{"type":"string"}},"$retain/secrets":{"type":"array","items":{"type":"string"}}}},"$replace/keda":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable KEDA for this GVC.\nKEDA is a Kubernetes-based event-driven autoscaler that allows you to scale workloads based on external events.\nWhen enabled,a keda operator will be deployed in the GVC and workloads in the GVC can use KEDA to scale based on external metrics."},"identityLink":{"type":"string","description":"A link to an Identity resource that will be used for KEDA.\nThis will allow the keda operator to access cloud and network resources."},"secrets":{"type":"array","items":{"type":"string"},"description":"A list of secrets to be used as TriggerAuthentication objects.\nThe TriggerAuthentication object will be named after the secret and can be used by triggers on workloads in this GVC."}},"additionalProperties":false}}},"patch_identity":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","aws","gcp","azure","ngs","networkResources","nativeNetworkResources","memcacheAccess","spicedbAccess","gvc"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"aws":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cloudAccountLink","policyRefs","trustPolicy","roleName"]}},"cloudAccountLink":{"type":"string"},"policyRefs":{"type":"array","items":{"type":"string"}},"$drop/policyRefs":{"type":"array","items":{"type":"string"}},"$append/policyRefs":{"type":"array","items":{"type":"string"}},"$retain/policyRefs":{"type":"array","items":{"type":"string"}},"trustPolicy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["Version","Statement"]}},"Version":{"type":"string","default":"2012-10-17"},"Statement":{"type":"array","items":{"type":"object"}},"$drop/Statement":{"type":"array","items":{"type":"string"}},"$append/Statement":{"type":"array","items":{"type":"object"}},"$patch/Statement":{"type":"array","items":{"type":"object","properties":{}}},"$retain/Statement":{"type":"array","items":{"type":"string"}}}},"$replace/trustPolicy":{"type":"object","properties":{"Version":{"type":"string","default":"2012-10-17"},"Statement":{"type":"array","items":{"type":"object"}}},"additionalProperties":false},"roleName":{"type":"string","maxLength":64}}},"$replace/aws":{"type":"object","properties":{"cloudAccountLink":{"type":"string"},"policyRefs":{"type":"array","items":{"type":"string"}},"trustPolicy":{"type":"object","properties":{"Version":{"type":"string","default":"2012-10-17"},"Statement":{"type":"array","items":{"type":"object"}}},"additionalProperties":false},"roleName":{"type":"string","maxLength":64}},"additionalProperties":false},"gcp":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cloudAccountLink","scopes","serviceAccount","bindings"]}},"cloudAccountLink":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"$drop/scopes":{"type":"array","items":{"type":"string"}},"$append/scopes":{"type":"array","items":{"type":"string"}},"$retain/scopes":{"type":"array","items":{"type":"string"}},"serviceAccount":{"type":"string"},"bindings":{"type":"array","items":{"type":"object","properties":{"resource":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"$drop/bindings":{"type":"array","items":{"type":"string"}},"$append/bindings":{"type":"array","items":{"type":"object","properties":{"resource":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"$patch/bindings":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["resource","roles"]}},"resource":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}},"$drop/roles":{"type":"array","items":{"type":"string"}},"$append/roles":{"type":"array","items":{"type":"string"}},"$retain/roles":{"type":"array","items":{"type":"string"}}}}},"$retain/bindings":{"type":"array","items":{"type":"string"}}}},"$replace/gcp":{"type":"object","properties":{"cloudAccountLink":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"serviceAccount":{"type":"string"},"bindings":{"type":"array","items":{"type":"object","properties":{"resource":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"azure":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cloudAccountLink","roleAssignments"]}},"cloudAccountLink":{"type":"string"},"roleAssignments":{"type":"array","items":{"type":"object","properties":{"scope":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"$drop/roleAssignments":{"type":"array","items":{"type":"string"}},"$append/roleAssignments":{"type":"array","items":{"type":"object","properties":{"scope":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"$patch/roleAssignments":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["scope","roles"]}},"scope":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}},"$drop/roles":{"type":"array","items":{"type":"string"}},"$append/roles":{"type":"array","items":{"type":"string"}},"$retain/roles":{"type":"array","items":{"type":"string"}}}}},"$retain/roleAssignments":{"type":"array","items":{"type":"string"}}}},"$replace/azure":{"type":"object","properties":{"cloudAccountLink":{"type":"string"},"roleAssignments":{"type":"array","items":{"type":"object","properties":{"scope":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"ngs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cloudAccountLink","pub","sub","resp","subs","data","payload"]}},"cloudAccountLink":{"type":"string"},"pub":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["allow","deny"]}},"allow":{"type":"array","items":{"type":"string"}},"$drop/allow":{"type":"array","items":{"type":"string"}},"$append/allow":{"type":"array","items":{"type":"string"}},"$retain/allow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}},"$drop/deny":{"type":"array","items":{"type":"string"}},"$append/deny":{"type":"array","items":{"type":"string"}},"$retain/deny":{"type":"array","items":{"type":"string"}}}},"$replace/pub":{"type":"object","properties":{"allow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"sub":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["allow","deny"]}},"allow":{"type":"array","items":{"type":"string"}},"$drop/allow":{"type":"array","items":{"type":"string"}},"$append/allow":{"type":"array","items":{"type":"string"}},"$retain/allow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}},"$drop/deny":{"type":"array","items":{"type":"string"}},"$append/deny":{"type":"array","items":{"type":"string"}},"$retain/deny":{"type":"array","items":{"type":"string"}}}},"$replace/sub":{"type":"object","properties":{"allow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"resp":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max","ttl"]}},"max":{"type":"integer","description":"Number of responses allowed on the replyTo subject, -1 means no limit"},"ttl":{"type":"string","description":"Deadline to send replies on the replyTo subject [#ms(millis) | #s(econds) | m(inutes) | h(ours)]. -1 means no restriction"}}},"$replace/resp":{"type":"object","properties":{"max":{"type":"integer","description":"Number of responses allowed on the replyTo subject, -1 means no limit"},"ttl":{"type":"string","description":"Deadline to send replies on the replyTo subject [#ms(millis) | #s(econds) | m(inutes) | h(ours)]. -1 means no restriction"}},"additionalProperties":false},"subs":{"type":"integer","description":"Max number of subscriptions per connection"},"data":{"type":"integer","description":"Max number of bytes a connection can send"},"payload":{"type":"integer","description":"Max message payload"}}},"$replace/ngs":{"type":"object","properties":{"cloudAccountLink":{"type":"string"},"pub":{"type":"object","properties":{"allow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"sub":{"type":"object","properties":{"allow":{"type":"array","items":{"type":"string"}},"deny":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"resp":{"type":"object","properties":{"max":{"type":"integer","description":"Number of responses allowed on the replyTo subject, -1 means no limit"},"ttl":{"type":"string","description":"Deadline to send replies on the replyTo subject [#ms(millis) | #s(econds) | m(inutes) | h(ours)]. -1 means no restriction"}},"additionalProperties":false},"subs":{"type":"integer","description":"Max number of subscriptions per connection"},"data":{"type":"integer","description":"Max number of bytes a connection can send"},"payload":{"type":"integer","description":"Max message payload"}},"additionalProperties":false},"networkResources":{"type":"array","items":{"$ref":"#/components/schemas/network_resource"}},"$drop/networkResources":{"type":"array","items":{"type":"string"}},"$append/networkResources":{"type":"array","items":{"$ref":"#/components/schemas/network_resource"}},"$retain/networkResources":{"type":"array","items":{"type":"string"}},"$patch/networkResources":{"type":"array","items":{"$ref":"#/components/schemas/patch_network_resource"}},"nativeNetworkResources":{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","maxLength":64},{"type":"string"}]},"FQDN":{"type":"string"},"ports":{"type":"array","items":{"type":"integer"}},"awsPrivateLink":{"type":"object","properties":{"endpointServiceName":{"type":"string"}},"additionalProperties":false},"gcpServiceConnect":{"type":"object","properties":{"targetService":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$drop/nativeNetworkResources":{"type":"array","items":{"type":"string"}},"$append/nativeNetworkResources":{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","maxLength":64},{"type":"string"}]},"FQDN":{"type":"string"},"ports":{"type":"array","items":{"type":"integer"}},"awsPrivateLink":{"type":"object","properties":{"endpointServiceName":{"type":"string"}},"additionalProperties":false},"gcpServiceConnect":{"type":"object","properties":{"targetService":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$patch/nativeNetworkResources":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["FQDN","ports","awsPrivateLink","gcpServiceConnect"]}},"$replace/name":{"oneOf":[{"type":"string","maxLength":64},{"type":"string"}]},"name":{"oneOf":[]},"FQDN":{"type":"string"},"ports":{"type":"array","items":{"type":"integer"}},"$drop/ports":{"type":"array","items":{"type":"integer"}},"$append/ports":{"type":"array","items":{"type":"integer"}},"$retain/ports":{"type":"array","items":{"type":"integer"}},"awsPrivateLink":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpointServiceName"]}},"endpointServiceName":{"type":"string"}}},"$replace/awsPrivateLink":{"type":"object","properties":{"endpointServiceName":{"type":"string"}},"additionalProperties":false},"gcpServiceConnect":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["targetService"]}},"targetService":{"type":"string"}}},"$replace/gcpServiceConnect":{"type":"object","properties":{"targetService":{"type":"string"}},"additionalProperties":false}}}},"$retain/nativeNetworkResources":{"type":"array","items":{"type":"string"}},"memcacheAccess":{"type":"array","items":{"type":"object","properties":{"clusterLink":{"type":"string"},"role":{"type":"string","enum":["readWrite"]}},"additionalProperties":false}},"$drop/memcacheAccess":{"type":"array","items":{"type":"string"}},"$append/memcacheAccess":{"type":"array","items":{"type":"object","properties":{"clusterLink":{"type":"string"},"role":{"type":"string","enum":["readWrite"]}},"additionalProperties":false}},"$patch/memcacheAccess":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["clusterLink","role"]}},"clusterLink":{"type":"string"},"role":{"type":"string","enum":["readWrite"]}}}},"$retain/memcacheAccess":{"type":"array","items":{"type":"string"}},"spicedbAccess":{"type":"array","items":{"type":"object","properties":{"clusterLink":{"type":"string"},"role":{"type":"string","enum":["checkPermission","read","write"]}},"additionalProperties":false}},"$drop/spicedbAccess":{"type":"array","items":{"type":"string"}},"$append/spicedbAccess":{"type":"array","items":{"type":"object","properties":{"clusterLink":{"type":"string"},"role":{"type":"string","enum":["checkPermission","read","write"]}},"additionalProperties":false}},"$patch/spicedbAccess":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["clusterLink","role"]}},"clusterLink":{"type":"string"},"role":{"type":"string","enum":["checkPermission","read","write"]}}}},"$retain/spicedbAccess":{"type":"array","items":{"type":"string"}},"gvc":{"type":"string"}}},"patch_image":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["id","version","created","lastModified","tags"]}},"id":{"type":"string"},"name":{"type":"string"},"version":{"type":"number"},"created":{"type":"string","format":"date-time"},"lastModified":{"type":"string","format":"date-time"},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"}}},"patch_ip_address":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["ip","id","state","created"]}},"name":{"type":"string"},"ip":{"type":"string"},"id":{"type":"string"},"state":{"type":"string","enum":["bound","unbound"]},"created":{"type":"string","format":"date-time"}}},"patch_ipset":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","spec"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["link","locations"]}},"link":{"type":"string"},"locations":{"type":"array","items":{"$ref":"#/components/schemas/ipset_location"}},"$drop/locations":{"type":"array","items":{"type":"string"}},"$append/locations":{"type":"array","items":{"$ref":"#/components/schemas/ipset_location"}},"$retain/locations":{"type":"array","items":{"type":"string"}},"$patch/locations":{"type":"array","items":{"$ref":"#/components/schemas/patch_ipset_location"}}}},"$replace/spec":{"type":"object","properties":{"link":{"type":"string"},"locations":{"type":"array","items":{"$ref":"#/components/schemas/ipset_location"}}},"additionalProperties":false}}},"patch_ipset_location":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["retentionPolicy"]}},"name":{"type":"string"},"retentionPolicy":{"type":"string","enum":["keep","free"]}}},"patch_ipset_spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["link","locations"]}},"link":{"type":"string"},"locations":{"type":"array","items":{"$ref":"#/components/schemas/ipset_location"}},"$drop/locations":{"type":"array","items":{"type":"string"}},"$append/locations":{"type":"array","items":{"$ref":"#/components/schemas/ipset_location"}},"$retain/locations":{"type":"array","items":{"type":"string"}},"$patch/locations":{"type":"array","items":{"$ref":"#/components/schemas/patch_ipset_location"}}}},"patch_ipset_status":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["ipAddresses","error","warning"]}},"ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/ip_address"}},"$drop/ipAddresses":{"type":"array","items":{"type":"string"}},"$append/ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/ip_address"}},"$retain/ipAddresses":{"type":"array","items":{"type":"string"}},"$patch/ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/patch_ip_address"}},"error":{"type":"string"},"warning":{"type":"string"}}},"patch_location":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","provider","region","spec"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"provider":{"type":"string","enum":["aws","gcp","azure","byok","linode","vultr","equinix","oci"]},"region":{"type":"string"},"spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled"]}},"enabled":{"type":"boolean"}}},"$replace/spec":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false}}},"patch_mk8s_cluster":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","spec"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["version","firewall","provider","addOns"]}},"version":{"type":"string","enum":["1.26.0","1.26.4","1.27.3","1.28.2","1.28.4","1.29.7","1.30.3","1.31.5","1.31.13","1.32.1","1.32.9","1.33.5","1.34.2","1.35.3"]},"firewall":{"type":"array","items":{"type":"object","properties":{"sourceCIDR":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false},"description":"Allow-list"},"$drop/firewall":{"type":"array","items":{"type":"string"}},"$append/firewall":{"type":"array","items":{"type":"object","properties":{"sourceCIDR":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false}},"$patch/firewall":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["sourceCIDR","description"]}},"sourceCIDR":{"type":"string"},"description":{"type":"string"}}}},"$retain/firewall":{"type":"array","items":{"type":"string"}},"provider":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["generic","hetzner","aws","linode","oblivus","lambdalabs","paperspace","ephemeral","triton","azure","digitalocean","gcp"]}},"generic":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["location","networking","nodePools"]}},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["serviceNetwork","podNetwork","dnsForwarder"]}},"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}}}},"$replace/generic":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}}},"additionalProperties":false},"hetzner":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","hetznerLabels","networking","preInstallScript","tokenSecretLink","networkId","firewallId","nodePools","dedicatedServerNodePools","image","sshKey","autoscaler","floatingIPSelector"]}},"region":{"type":"string","enum":["fsn1","nbg1","hel1","ash","hil"],"description":"Hetzner region to deploy nodes to"},"hetznerLabels":{"type":"object","properties":{}},"$replace/hetznerLabels":{"type":"object","description":"Extra labels to attach to servers"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dnsForwarder"]}},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding Hetzner access key"},"networkId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"firewallId":{"type":"string","description":"Optional firewall rule to attach to all nodes"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","serverType","overrideImage","minSize","maxSize"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false},"description":"Node pools that can configure dedicated Hetzner servers"},"$drop/dedicatedServerNodePools":{"type":"array","items":{"type":"string"}},"$append/dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$patch/dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}}}}},"$retain/dedicatedServerNodePools":{"type":"array","items":{"type":"string"}},"image":{"type":"string","default":"ubuntu-20.04","description":"Default image for all nodes"},"sshKey":{"type":"string","description":"SSH key name for accessing deployed nodes"},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"floatingIPSelector":{"type":"object","properties":{}},"$replace/floatingIPSelector":{"type":"object","description":"If supplied, nodes will get assigned a random floating ip matching the selector"}}},"$replace/hetzner":{"type":"object","properties":{"region":{"type":"string","enum":["fsn1","nbg1","hel1","ash","hil"],"description":"Hetzner region to deploy nodes to"},"hetznerLabels":{"type":"object","description":"Extra labels to attach to servers"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding Hetzner access key"},"networkId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"firewallId":{"type":"string","description":"Optional firewall rule to attach to all nodes"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false},"description":"Node pools that can configure dedicated Hetzner servers"},"image":{"type":"string","default":"ubuntu-20.04","description":"Default image for all nodes"},"sshKey":{"type":"string","description":"SSH key name for accessing deployed nodes"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"floatingIPSelector":{"type":"object","description":"If supplied, nodes will get assigned a random floating ip matching the selector"}},"additionalProperties":false},"aws":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","awsTags","skipCreateRoles","networking","preInstallScript","image","deployRoleArn","deployRoleChain","vpcId","keyPair","diskEncryptionKeyArn","securityGroupIds","extraNodePolicies","nodePools","autoscaler"]}},"region":{"type":"string","enum":["af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ca-central-1","eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","me-central-1","me-south-1","sa-east-1","us-east-1","us-east-2","us-west-1","us-west-2"],"description":"Region where the cluster nodes will live"},"awsTags":{"type":"object","properties":{}},"$replace/awsTags":{"type":"object","description":"Extra tags to attach to all created objects"},"skipCreateRoles":{"type":"boolean","description":"If true, Control Plane will not create any roles"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["serviceNetwork","podNetwork","dnsForwarder"]}},"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","exact"]}},"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}}},"$replace/image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false,"description":"Default image for all nodes."},"deployRoleArn":{"type":"string","description":"Control Plane will set up the cluster by assuming this role"},"deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"$drop/deployRoleChain":{"type":"array","items":{"type":"string"}},"$append/deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"$patch/deployRoleChain":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["roleArn","externalId","sessionNamePrefix"]}},"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}}}},"$retain/deployRoleChain":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string","description":"The vpc where nodes will be deployed. Supports SSM."},"keyPair":{"type":"string","description":"Name of keyPair. Supports SSM"},"diskEncryptionKeyArn":{"type":"string","description":"KMS key used to encrypt volumes. Supports SSM."},"securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."},"description":"Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon"},"$drop/securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$append/securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$retain/securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraNodePolicies":{"type":"array","items":{"type":"string"}},"$drop/extraNodePolicies":{"type":"array","items":{"type":"string"}},"$append/extraNodePolicies":{"type":"array","items":{"type":"string"}},"$retain/extraNodePolicies":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","instanceTypes","overrideImage","bootDiskSize","minSize","maxSize","onDemandBaseCapacity","onDemandPercentageAboveBaseCapacity","spotAllocationStrategy","subnetIds","extraSecurityGroupIds","cpuOptions"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"instanceTypes":{"type":"array","items":{"type":"string"}},"$drop/instanceTypes":{"type":"array","items":{"type":"string"}},"$append/instanceTypes":{"type":"array","items":{"type":"string"}},"$retain/instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","exact"]}},"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}}},"$replace/overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$drop/subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$append/subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$retain/subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$drop/extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$append/extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$retain/extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["nestedVirtualization"]}},"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}}},"$replace/cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}}},"$replace/aws":{"type":"object","properties":{"region":{"type":"string","enum":["af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ca-central-1","eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","me-central-1","me-south-1","sa-east-1","us-east-1","us-east-2","us-west-1","us-west-2"],"description":"Region where the cluster nodes will live"},"awsTags":{"type":"object","description":"Extra tags to attach to all created objects"},"skipCreateRoles":{"type":"boolean","description":"If true, Control Plane will not create any roles"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false,"description":"Default image for all nodes."},"deployRoleArn":{"type":"string","description":"Control Plane will set up the cluster by assuming this role"},"deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"vpcId":{"type":"string","description":"The vpc where nodes will be deployed. Supports SSM."},"keyPair":{"type":"string","description":"Name of keyPair. Supports SSM"},"diskEncryptionKeyArn":{"type":"string","description":"KMS key used to encrypt volumes. Supports SSM."},"securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."},"description":"Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon"},"extraNodePolicies":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"linode":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","tokenSecretLink","firewallId","nodePools","image","authorizedUsers","authorizedKeys","vpcId","preInstallScript","networking","autoscaler"]}},"region":{"type":"string"},"tokenSecretLink":{"type":"string"},"firewallId":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","serverType","overrideImage","subnetId","minSize","maxSize"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"image":{"type":"string"},"authorizedUsers":{"type":"array","items":{"type":"string"}},"$drop/authorizedUsers":{"type":"array","items":{"type":"string"}},"$append/authorizedUsers":{"type":"array","items":{"type":"string"}},"$retain/authorizedUsers":{"type":"array","items":{"type":"string"}},"authorizedKeys":{"type":"array","items":{"type":"string"}},"$drop/authorizedKeys":{"type":"array","items":{"type":"string"}},"$append/authorizedKeys":{"type":"array","items":{"type":"string"}},"$retain/authorizedKeys":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string"},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dnsForwarder"]}},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}}},"$replace/linode":{"type":"object","properties":{"region":{"type":"string"},"tokenSecretLink":{"type":"string"},"firewallId":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"image":{"type":"string"},"authorizedUsers":{"type":"array","items":{"type":"string"}},"authorizedKeys":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string"},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"oblivus":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["datacenter","tokenSecretLink","nodePools","sshKeys","unmanagedNodePools","autoscaler","preInstallScript"]}},"datacenter":{"type":"string","enum":["MON1","OSL1"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","minSize","maxSize","flavor"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"sshKeys":{"type":"array","items":{"type":"string"}},"$drop/sshKeys":{"type":"array","items":{"type":"string"}},"$append/sshKeys":{"type":"array","items":{"type":"string"}},"$retain/sshKeys":{"type":"array","items":{"type":"string"}},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$drop/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"$append/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$patch/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}}}}},"$retain/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}}},"$replace/oblivus":{"type":"object","properties":{"datacenter":{"type":"string","enum":["MON1","OSL1"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"sshKeys":{"type":"array","items":{"type":"string"}},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"lambdalabs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","tokenSecretLink","nodePools","sshKey","unmanagedNodePools","autoscaler","fileSystems","preInstallScript"]}},"region":{"type":"string","enum":["asia-northeast-1","asia-northeast-2","asia-south-1","australia-southeast-1","europe-central-1","europe-south-1","me-west-1","us-east-1","us-midwest-1","us-south-1","us-west-1","us-west-2","us-west-3"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","minSize","maxSize","instanceType"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"sshKey":{"type":"string"},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$drop/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"$append/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$patch/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}}}}},"$retain/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"fileSystems":{"type":"array","items":{"type":"string"}},"$drop/fileSystems":{"type":"array","items":{"type":"string"}},"$append/fileSystems":{"type":"array","items":{"type":"string"}},"$retain/fileSystems":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}}},"$replace/lambdalabs":{"type":"object","properties":{"region":{"type":"string","enum":["asia-northeast-1","asia-northeast-2","asia-south-1","australia-southeast-1","europe-central-1","europe-south-1","me-west-1","us-east-1","us-midwest-1","us-south-1","us-west-1","us-west-2","us-west-3"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"sshKey":{"type":"string"},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"fileSystems":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"paperspace":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","tokenSecretLink","sharedDrives","nodePools","autoscaler","unmanagedNodePools","preInstallScript","userIds","networkId"]}},"region":{"type":"string","enum":["AMS1","NY2","CA1"]},"tokenSecretLink":{"type":"string"},"sharedDrives":{"type":"array","items":{"type":"string"}},"$drop/sharedDrives":{"type":"array","items":{"type":"string"}},"$append/sharedDrives":{"type":"array","items":{"type":"string"}},"$retain/sharedDrives":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","minSize","maxSize","publicIpType","bootDiskSize","machineType"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$drop/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"$append/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$patch/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}}}}},"$retain/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"userIds":{"type":"array","items":{"type":"string"}},"$drop/userIds":{"type":"array","items":{"type":"string"}},"$append/userIds":{"type":"array","items":{"type":"string"}},"$retain/userIds":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string"}}},"$replace/paperspace":{"type":"object","properties":{"region":{"type":"string","enum":["AMS1","NY2","CA1"]},"tokenSecretLink":{"type":"string"},"sharedDrives":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"userIds":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string"}},"additionalProperties":false},"ephemeral":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["location","nodePools"]}},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","count","arch","flavor","cpu","memory"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}}}},"$replace/ephemeral":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}}},"additionalProperties":false},"triton":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["connection","networking","preInstallScript","location","loadBalancer","privateNetworkId","firewallEnabled","nodePools","imageId","sshKeys","autoscaler"]}},"connection":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["url","account","user","privateKeySecretLink"]}},"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}}},"$replace/connection":{"type":"object","properties":{"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}},"additionalProperties":false},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dnsForwarder"]}},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to the Triton datacenter"},"loadBalancer":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["manual","none","gateway"]}},"manual":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["packageId","imageId","publicNetworkId","privateNetworkIds","metadata","tags","logging","count","cnsInternalDomain","cnsPublicDomain"]}},"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"$drop/privateNetworkIds":{"type":"array","items":{"type":"string"}},"$append/privateNetworkIds":{"type":"array","items":{"type":"string"}},"$retain/privateNetworkIds":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["nodePort","externalSyslog"]}},"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}}},"$replace/logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}}},"$replace/manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object","properties":{}},"$replace/none":{"type":"object"},"gateway":{"type":"object","properties":{}},"$replace/gateway":{"type":"object"}}},"$replace/loadBalancer":{"type":"object","properties":{"manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object"},"gateway":{"type":"object"}},"additionalProperties":false},"privateNetworkId":{"type":"string","description":"ID of the private Fabric/Network"},"firewallEnabled":{"type":"boolean","description":"Enable firewall for the instances deployed"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","packageId","overrideImageId","publicNetworkId","privateNetworkIds","tritonTags","minSize","maxSize"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"$drop/privateNetworkIds":{"type":"array","items":{"type":"string"}},"$append/privateNetworkIds":{"type":"array","items":{"type":"string"}},"$retain/privateNetworkIds":{"type":"array","items":{"type":"string"}},"tritonTags":{"type":"object","properties":{}},"$replace/tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"imageId":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root"},"$drop/sshKeys":{"type":"array","items":{"type":"string"}},"$append/sshKeys":{"type":"array","items":{"type":"string"}},"$retain/sshKeys":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}}},"$replace/triton":{"type":"object","properties":{"connection":{"type":"object","properties":{"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}},"additionalProperties":false},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to the Triton datacenter"},"loadBalancer":{"type":"object","properties":{"manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object"},"gateway":{"type":"object"}},"additionalProperties":false},"privateNetworkId":{"type":"string","description":"ID of the private Fabric/Network"},"firewallEnabled":{"type":"boolean","description":"Enable firewall for the instances deployed"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"imageId":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"azure":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["location","subscriptionId","sdkSecretLink","resourceGroup","networking","preInstallScript","image","sshKeys","networkId","tags","nodePools","autoscaler"]}},"location":{"type":"string","description":"Region where the cluster nodes will live"},"subscriptionId":{"type":"string"},"sdkSecretLink":{"type":"string","description":"Link to an opaque secret"},"resourceGroup":{"type":"string"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["serviceNetwork","podNetwork","dnsForwarder"]}},"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","reference"]}},"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["publisher","offer","sku","version"]}},"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}}},"$replace/reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}}},"$replace/image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"Default image for all nodes."},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH keys to install for \"azureuser\" linux user"},"$drop/sshKeys":{"type":"array","items":{"type":"string"}},"$append/sshKeys":{"type":"array","items":{"type":"string"}},"$retain/sshKeys":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string","description":"The vpc where nodes will be deployed."},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object","description":"Extra tags to attach to all created objects"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","size","subnetId","zones","overrideImage","bootDiskSize","minSize","maxSize"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"$drop/zones":{"type":"array","items":{"type":"number"}},"$append/zones":{"type":"array","items":{"type":"number"}},"$retain/zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","reference"]}},"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["publisher","offer","sku","version"]}},"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}}},"$replace/reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}}},"$replace/overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}}},"$replace/azure":{"type":"object","properties":{"location":{"type":"string","description":"Region where the cluster nodes will live"},"subscriptionId":{"type":"string"},"sdkSecretLink":{"type":"string","description":"Link to an opaque secret"},"resourceGroup":{"type":"string"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"Default image for all nodes."},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH keys to install for \"azureuser\" linux user"},"networkId":{"type":"string","description":"The vpc where nodes will be deployed."},"tags":{"type":"object","description":"Extra tags to attach to all created objects"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"digitalocean":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","digitalOceanTags","networking","preInstallScript","tokenSecretLink","vpcId","nodePools","image","sshKeys","extraSshKeys","autoscaler","reservedIPs"]}},"region":{"type":"string","enum":["ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo2","sfo3","sgp1","syd1","tor1"],"description":"Region to deploy nodes to"},"digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254},"description":"Extra tags to attach to droplets"},"$drop/digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254}},"$append/digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254}},"$retain/digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254}},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dnsForwarder"]}},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding personal access token"},"vpcId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","dropletSize","overrideImage","minSize","maxSize"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"image":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH key name for accessing deployed nodes"},"$drop/sshKeys":{"type":"array","items":{"type":"string"}},"$append/sshKeys":{"type":"array","items":{"type":"string"}},"$retain/sshKeys":{"type":"array","items":{"type":"string"}},"extraSshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root that are not registered in the DigitalOcean"},"$drop/extraSshKeys":{"type":"array","items":{"type":"string"}},"$append/extraSshKeys":{"type":"array","items":{"type":"string"}},"$retain/extraSshKeys":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"reservedIPs":{"type":"array","items":{"type":"string"},"description":"Optional set of IPs to assign as extra IPs for nodes of the cluster"},"$drop/reservedIPs":{"type":"array","items":{"type":"string"}},"$append/reservedIPs":{"type":"array","items":{"type":"string"}},"$retain/reservedIPs":{"type":"array","items":{"type":"string"}}}},"$replace/digitalocean":{"type":"object","properties":{"region":{"type":"string","enum":["ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo2","sfo3","sgp1","syd1","tor1"],"description":"Region to deploy nodes to"},"digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254},"description":"Extra tags to attach to droplets"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding personal access token"},"vpcId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"image":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH key name for accessing deployed nodes"},"extraSshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root that are not registered in the DigitalOcean"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"reservedIPs":{"type":"array","items":{"type":"string"},"description":"Optional set of IPs to assign as extra IPs for nodes of the cluster"}},"additionalProperties":false},"gcp":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["projectId","region","labels","tags","metadata","network","saKeyLink","networking","preInstallScript","image","nodePools","autoscaler"]}},"projectId":{"type":"string"},"region":{"type":"string","description":"Region where the cluster nodes will live"},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Extra tags to attach to all created objects"},"tags":{"type":"array","items":{"type":"string","maxLength":63}},"$drop/tags":{"type":"array","items":{"type":"string","maxLength":63}},"$append/tags":{"type":"array","items":{"type":"string","maxLength":63}},"$retain/tags":{"type":"array","items":{"type":"string","maxLength":63}},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object"},"network":{"type":"string"},"saKeyLink":{"type":"string","description":"Link to a GCP secret containing the SA json key"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["serviceNetwork","podNetwork","dnsForwarder"]}},"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"image":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","family","exact"]}},"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["project","family"]}},"project":{"type":"string"},"family":{"type":"string"}}},"$replace/family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}}},"$replace/image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false,"description":"Default image for all nodes."},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","machineType","assignPublicIP","zone","overrideImage","bootDiskSize","minSize","maxSize","preemptible","subnet","localPersistentDisks"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","family","exact"]}},"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["project","family"]}},"project":{"type":"string"},"family":{"type":"string"}}},"$replace/family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}}},"$replace/overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}}},"$replace/gcp":{"type":"object","properties":{"projectId":{"type":"string"},"region":{"type":"string","description":"Region where the cluster nodes will live"},"labels":{"type":"object","description":"Extra tags to attach to all created objects"},"tags":{"type":"array","items":{"type":"string","maxLength":63}},"metadata":{"type":"object"},"network":{"type":"string"},"saKeyLink":{"type":"string","description":"Link to a GCP secret containing the SA json key"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false,"description":"Default image for all nodes."},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}}},"$replace/provider":{"type":"object","properties":{"generic":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}}},"additionalProperties":false},"hetzner":{"type":"object","properties":{"region":{"type":"string","enum":["fsn1","nbg1","hel1","ash","hil"],"description":"Hetzner region to deploy nodes to"},"hetznerLabels":{"type":"object","description":"Extra labels to attach to servers"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding Hetzner access key"},"networkId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"firewallId":{"type":"string","description":"Optional firewall rule to attach to all nodes"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false},"description":"Node pools that can configure dedicated Hetzner servers"},"image":{"type":"string","default":"ubuntu-20.04","description":"Default image for all nodes"},"sshKey":{"type":"string","description":"SSH key name for accessing deployed nodes"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"floatingIPSelector":{"type":"object","description":"If supplied, nodes will get assigned a random floating ip matching the selector"}},"additionalProperties":false},"aws":{"type":"object","properties":{"region":{"type":"string","enum":["af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ca-central-1","eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","me-central-1","me-south-1","sa-east-1","us-east-1","us-east-2","us-west-1","us-west-2"],"description":"Region where the cluster nodes will live"},"awsTags":{"type":"object","description":"Extra tags to attach to all created objects"},"skipCreateRoles":{"type":"boolean","description":"If true, Control Plane will not create any roles"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false,"description":"Default image for all nodes."},"deployRoleArn":{"type":"string","description":"Control Plane will set up the cluster by assuming this role"},"deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"vpcId":{"type":"string","description":"The vpc where nodes will be deployed. Supports SSM."},"keyPair":{"type":"string","description":"Name of keyPair. Supports SSM"},"diskEncryptionKeyArn":{"type":"string","description":"KMS key used to encrypt volumes. Supports SSM."},"securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."},"description":"Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon"},"extraNodePolicies":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"linode":{"type":"object","properties":{"region":{"type":"string"},"tokenSecretLink":{"type":"string"},"firewallId":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"image":{"type":"string"},"authorizedUsers":{"type":"array","items":{"type":"string"}},"authorizedKeys":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string"},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"oblivus":{"type":"object","properties":{"datacenter":{"type":"string","enum":["MON1","OSL1"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"sshKeys":{"type":"array","items":{"type":"string"}},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"lambdalabs":{"type":"object","properties":{"region":{"type":"string","enum":["asia-northeast-1","asia-northeast-2","asia-south-1","australia-southeast-1","europe-central-1","europe-south-1","me-west-1","us-east-1","us-midwest-1","us-south-1","us-west-1","us-west-2","us-west-3"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"sshKey":{"type":"string"},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"fileSystems":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"paperspace":{"type":"object","properties":{"region":{"type":"string","enum":["AMS1","NY2","CA1"]},"tokenSecretLink":{"type":"string"},"sharedDrives":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"userIds":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string"}},"additionalProperties":false},"ephemeral":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}}},"additionalProperties":false},"triton":{"type":"object","properties":{"connection":{"type":"object","properties":{"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}},"additionalProperties":false},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to the Triton datacenter"},"loadBalancer":{"type":"object","properties":{"manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object"},"gateway":{"type":"object"}},"additionalProperties":false},"privateNetworkId":{"type":"string","description":"ID of the private Fabric/Network"},"firewallEnabled":{"type":"boolean","description":"Enable firewall for the instances deployed"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"imageId":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"azure":{"type":"object","properties":{"location":{"type":"string","description":"Region where the cluster nodes will live"},"subscriptionId":{"type":"string"},"sdkSecretLink":{"type":"string","description":"Link to an opaque secret"},"resourceGroup":{"type":"string"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"Default image for all nodes."},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH keys to install for \"azureuser\" linux user"},"networkId":{"type":"string","description":"The vpc where nodes will be deployed."},"tags":{"type":"object","description":"Extra tags to attach to all created objects"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"digitalocean":{"type":"object","properties":{"region":{"type":"string","enum":["ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo2","sfo3","sgp1","syd1","tor1"],"description":"Region to deploy nodes to"},"digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254},"description":"Extra tags to attach to droplets"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding personal access token"},"vpcId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"image":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH key name for accessing deployed nodes"},"extraSshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root that are not registered in the DigitalOcean"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"reservedIPs":{"type":"array","items":{"type":"string"},"description":"Optional set of IPs to assign as extra IPs for nodes of the cluster"}},"additionalProperties":false},"gcp":{"type":"object","properties":{"projectId":{"type":"string"},"region":{"type":"string","description":"Region where the cluster nodes will live"},"labels":{"type":"object","description":"Extra tags to attach to all created objects"},"tags":{"type":"array","items":{"type":"string","maxLength":63}},"metadata":{"type":"object"},"network":{"type":"string"},"saKeyLink":{"type":"string","description":"Link to a GCP secret containing the SA json key"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false,"description":"Default image for all nodes."},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"addOns":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dashboard","headlamp","azureWorkloadIdentity","awsWorkloadIdentity","localPathStorage","metrics","logs","registryMirror","nvidia","awsEFS","awsECR","awsELB","azureACR","sysbox","byok"]}},"dashboard":{"type":"object","properties":{}},"$replace/dashboard":{"type":"object","properties":{},"additionalProperties":false},"headlamp":{"type":"object","properties":{}},"$replace/headlamp":{"type":"object","properties":{},"additionalProperties":false},"azureWorkloadIdentity":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["tenantId"]}},"tenantId":{"type":"string","description":"Tenant ID to use for workload identity"}}},"$replace/azureWorkloadIdentity":{"type":"object","properties":{"tenantId":{"type":"string","description":"Tenant ID to use for workload identity"}},"additionalProperties":false},"awsWorkloadIdentity":{"type":"object","properties":{}},"$replace/awsWorkloadIdentity":{"type":"object","properties":{},"additionalProperties":false},"localPathStorage":{"type":"object","properties":{}},"$replace/localPathStorage":{"type":"object","properties":{},"additionalProperties":false},"metrics":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["kubeState","coreDns","kubelet","apiserver","nodeExporter","cadvisor","scrapeAnnotated"]}},"kubeState":{"type":"boolean","description":"Enable kube-state metrics"},"coreDns":{"type":"boolean","description":"Enable scraping of core-dns service"},"kubelet":{"type":"boolean","description":"Enable scraping kubelet stats"},"apiserver":{"type":"boolean","description":"Enable scraping apiserver stats"},"nodeExporter":{"type":"boolean","description":"Enable collecting node-level stats (disk, network, filesystem, etc)"},"cadvisor":{"type":"boolean","description":"Enable CNI-level container stats"},"scrapeAnnotated":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["intervalSeconds","includeNamespaces","excludeNamespaces","retainLabels"]}},"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}}},"$replace/scrapeAnnotated":{"type":"object","properties":{"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}},"additionalProperties":false,"description":"Scrape pods annotated with prometheus.io/scrape=true"}}},"$replace/metrics":{"type":"object","properties":{"kubeState":{"type":"boolean","description":"Enable kube-state metrics"},"coreDns":{"type":"boolean","description":"Enable scraping of core-dns service"},"kubelet":{"type":"boolean","description":"Enable scraping kubelet stats"},"apiserver":{"type":"boolean","description":"Enable scraping apiserver stats"},"nodeExporter":{"type":"boolean","description":"Enable collecting node-level stats (disk, network, filesystem, etc)"},"cadvisor":{"type":"boolean","description":"Enable CNI-level container stats"},"scrapeAnnotated":{"type":"object","properties":{"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}},"additionalProperties":false,"description":"Scrape pods annotated with prometheus.io/scrape=true"}},"additionalProperties":false},"logs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["auditEnabled","includeNamespaces","excludeNamespaces","docker","kubelet","kernel","events"]}},"auditEnabled":{"type":"boolean","description":"Collect k8s audit log as log events "},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"docker":{"type":"boolean","description":"Collect docker logs if docker is also running"},"kubelet":{"type":"boolean","description":"Collect kubelet logs from journald"},"kernel":{"type":"boolean","description":"Collect kernel logs"},"events":{"type":"boolean","description":"Collect K8S events from all namespaces"}}},"$replace/logs":{"type":"object","properties":{"auditEnabled":{"type":"boolean","description":"Collect k8s audit log as log events "},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"docker":{"type":"boolean","description":"Collect docker logs if docker is also running"},"kubelet":{"type":"boolean","description":"Collect kubelet logs from journald"},"kernel":{"type":"boolean","description":"Collect kernel logs"},"events":{"type":"boolean","description":"Collect K8S events from all namespaces"}},"additionalProperties":false},"registryMirror":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["mirrors"]}},"mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"$drop/mirrors":{"type":"array","items":{"type":"string"}},"$append/mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"$patch/mirrors":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["registry","mirrors"]}},"$replace/registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"registry":{"oneOf":[]},"mirrors":{"type":"array","items":{"type":"string"}},"$drop/mirrors":{"type":"array","items":{"type":"string"}},"$append/mirrors":{"type":"array","items":{"type":"string"}},"$retain/mirrors":{"type":"array","items":{"type":"string"}}}}},"$retain/mirrors":{"type":"array","items":{"type":"string"}}}},"$replace/registryMirror":{"type":"object","properties":{"mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"nvidia":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["taintGPUNodes"]}},"taintGPUNodes":{"type":"boolean"}}},"$replace/nvidia":{"type":"object","properties":{"taintGPUNodes":{"type":"boolean"}},"additionalProperties":false},"awsEFS":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["roleArn"]}},"roleArn":{"type":"string","description":"Use this role for EFS interaction"}}},"$replace/awsEFS":{"type":"object","properties":{"roleArn":{"type":"string","description":"Use this role for EFS interaction"}},"additionalProperties":false},"awsECR":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["roleArn"]}},"roleArn":{"type":"string","description":"Optional on AWS, in which case it will use the instance role to pull"}}},"$replace/awsECR":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, in which case it will use the instance role to pull"}},"additionalProperties":false},"awsELB":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["roleArn"]}},"roleArn":{"type":"string","description":"Optional on AWS, when not provided it will create the recommended role"}}},"$replace/awsELB":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, when not provided it will create the recommended role"}},"additionalProperties":false},"azureACR":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["clientId"]}},"clientId":{"type":"string"}}},"$replace/azureACR":{"type":"object","properties":{"clientId":{"type":"string"}},"additionalProperties":false},"sysbox":{"type":"object","properties":{}},"$replace/sysbox":{"type":"object","properties":{},"additionalProperties":false},"byok":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["ignoreUpdates","location","config"]}},"ignoreUpdates":{"type":"boolean"},"location":{"type":"string"},"config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["actuator","juicefs","middlebox","common","longhorn","byok","ingress","istio","logSplitter","monitoring","redis","redisHa","redisSentinel","tempoAgent","internalDns"]}},"actuator":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory","logLevel","env"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object","properties":{}},"$replace/env":{"type":"object"}}},"$replace/actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled"]}},"enabled":{"type":"boolean"}}},"$replace/juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled","bandwidthAlertMbps","port","ip"]}},"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}}},"$replace/middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["deploymentReplicas","pdb"]}},"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["maxUnavailable"]}},"maxUnavailable":{"type":"integer"}}},"$replace/pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}}},"$replace/common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["numberOfReplicas","replicas","isDefault"]}},"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}}},"$replace/longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["noDefaultStorageClasses"]}},"noDefaultStorageClasses":{"type":"boolean"}}},"$replace/byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cpu","memory","targetPercent"]}},"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}}},"$replace/ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["istiod","ingressgateway","sidecar"]}},"istiod":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["replicas","minCpu","maxCpu","minMemory","maxMemory","pdb"]}},"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}}},"$replace/istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["replicas","maxCpu","maxMemory"]}},"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","minMemory"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}}},"$replace/istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory","memBufferSize","perPodRate"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}}},"$replace/logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minMemory","maxMemory","kubeStateMetrics","prometheus","remoteWrite","externalLabels"]}},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minMemory"]}},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["main"]}},"main":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["storage"]}},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}}},"$replace/prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"$drop/remoteWrite":{"type":"array","items":{"type":"string"}},"$append/remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"$patch/remoteWrite":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["basic_auth","authorization","oauth2","follow_redirects","enable_http2","tls_config","proxy_url","no_proxy","proxy_from_environment","proxy_connect_header","http_headers","url","remote_timeout","headers","write_relabel_configs","send_exemplars","send_native_histograms","sigv4","azuread","google_iam","queue_config"]}},"basic_auth":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["username","username_file","password","password_file"]}},"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}}},"$replace/basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["type","credentials","credentials_file"]}},"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}}},"$replace/authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object","properties":{}},"$replace/oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object","properties":{}},"$replace/tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object","properties":{}},"$replace/proxy_connect_header":{"type":"object"},"http_headers":{"type":"object","properties":{}},"$replace/http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object","properties":{}},"$replace/headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"$drop/write_relabel_configs":{"type":"array","items":{"type":"string"}},"$append/write_relabel_configs":{"type":"array","items":{"type":"object"}},"$patch/write_relabel_configs":{"type":"array","items":{"type":"object","properties":{}}},"$retain/write_relabel_configs":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object","properties":{}},"$replace/sigv4":{"type":"object"},"azuread":{"type":"object","properties":{}},"$replace/azuread":{"type":"object"},"google_iam":{"type":"object","properties":{}},"$replace/google_iam":{"type":"object"},"queue_config":{"type":"object","properties":{}},"$replace/queue_config":{"type":"object"}}}},"$retain/remoteWrite":{"type":"array","items":{"type":"string"}},"externalLabels":{"type":"object","properties":{}},"$replace/externalLabels":{"type":"object"}}},"$replace/monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory","storage"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory","storage"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}}},"$replace/redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory","storage"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}}},"$replace/redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","minMemory"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}}},"$replace/config":{"type":"object","properties":{"actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false}}},"$replace/byok":{"type":"object","properties":{"ignoreUpdates":{"type":"boolean"},"location":{"type":"string"},"config":{"type":"object","properties":{"actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}},"$replace/addOns":{"type":"object","properties":{"dashboard":{"type":"object","properties":{},"additionalProperties":false},"headlamp":{"type":"object","properties":{},"additionalProperties":false},"azureWorkloadIdentity":{"type":"object","properties":{"tenantId":{"type":"string","description":"Tenant ID to use for workload identity"}},"additionalProperties":false},"awsWorkloadIdentity":{"type":"object","properties":{},"additionalProperties":false},"localPathStorage":{"type":"object","properties":{},"additionalProperties":false},"metrics":{"type":"object","properties":{"kubeState":{"type":"boolean","description":"Enable kube-state metrics"},"coreDns":{"type":"boolean","description":"Enable scraping of core-dns service"},"kubelet":{"type":"boolean","description":"Enable scraping kubelet stats"},"apiserver":{"type":"boolean","description":"Enable scraping apiserver stats"},"nodeExporter":{"type":"boolean","description":"Enable collecting node-level stats (disk, network, filesystem, etc)"},"cadvisor":{"type":"boolean","description":"Enable CNI-level container stats"},"scrapeAnnotated":{"type":"object","properties":{"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}},"additionalProperties":false,"description":"Scrape pods annotated with prometheus.io/scrape=true"}},"additionalProperties":false},"logs":{"type":"object","properties":{"auditEnabled":{"type":"boolean","description":"Collect k8s audit log as log events "},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"docker":{"type":"boolean","description":"Collect docker logs if docker is also running"},"kubelet":{"type":"boolean","description":"Collect kubelet logs from journald"},"kernel":{"type":"boolean","description":"Collect kernel logs"},"events":{"type":"boolean","description":"Collect K8S events from all namespaces"}},"additionalProperties":false},"registryMirror":{"type":"object","properties":{"mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"nvidia":{"type":"object","properties":{"taintGPUNodes":{"type":"boolean"}},"additionalProperties":false},"awsEFS":{"type":"object","properties":{"roleArn":{"type":"string","description":"Use this role for EFS interaction"}},"additionalProperties":false},"awsECR":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, in which case it will use the instance role to pull"}},"additionalProperties":false},"awsELB":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, when not provided it will create the recommended role"}},"additionalProperties":false},"azureACR":{"type":"object","properties":{"clientId":{"type":"string"}},"additionalProperties":false},"sysbox":{"type":"object","properties":{},"additionalProperties":false},"byok":{"type":"object","properties":{"ignoreUpdates":{"type":"boolean"},"location":{"type":"string"},"config":{"type":"object","properties":{"actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}},"$replace/spec":{"type":"object","properties":{"version":{"type":"string","enum":["1.26.0","1.26.4","1.27.3","1.28.2","1.28.4","1.29.7","1.30.3","1.31.5","1.31.13","1.32.1","1.32.9","1.33.5","1.34.2","1.35.3"]},"firewall":{"type":"array","items":{"type":"object","properties":{"sourceCIDR":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false},"description":"Allow-list"},"provider":{"type":"object","properties":{"generic":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}}},"additionalProperties":false},"hetzner":{"type":"object","properties":{"region":{"type":"string","enum":["fsn1","nbg1","hel1","ash","hil"],"description":"Hetzner region to deploy nodes to"},"hetznerLabels":{"type":"object","description":"Extra labels to attach to servers"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding Hetzner access key"},"networkId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"firewallId":{"type":"string","description":"Optional firewall rule to attach to all nodes"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false},"description":"Node pools that can configure dedicated Hetzner servers"},"image":{"type":"string","default":"ubuntu-20.04","description":"Default image for all nodes"},"sshKey":{"type":"string","description":"SSH key name for accessing deployed nodes"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"floatingIPSelector":{"type":"object","description":"If supplied, nodes will get assigned a random floating ip matching the selector"}},"additionalProperties":false},"aws":{"type":"object","properties":{"region":{"type":"string","enum":["af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ca-central-1","eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","me-central-1","me-south-1","sa-east-1","us-east-1","us-east-2","us-west-1","us-west-2"],"description":"Region where the cluster nodes will live"},"awsTags":{"type":"object","description":"Extra tags to attach to all created objects"},"skipCreateRoles":{"type":"boolean","description":"If true, Control Plane will not create any roles"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false,"description":"Default image for all nodes."},"deployRoleArn":{"type":"string","description":"Control Plane will set up the cluster by assuming this role"},"deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"vpcId":{"type":"string","description":"The vpc where nodes will be deployed. Supports SSM."},"keyPair":{"type":"string","description":"Name of keyPair. Supports SSM"},"diskEncryptionKeyArn":{"type":"string","description":"KMS key used to encrypt volumes. Supports SSM."},"securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."},"description":"Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon"},"extraNodePolicies":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"linode":{"type":"object","properties":{"region":{"type":"string"},"tokenSecretLink":{"type":"string"},"firewallId":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"image":{"type":"string"},"authorizedUsers":{"type":"array","items":{"type":"string"}},"authorizedKeys":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string"},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"oblivus":{"type":"object","properties":{"datacenter":{"type":"string","enum":["MON1","OSL1"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"sshKeys":{"type":"array","items":{"type":"string"}},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"lambdalabs":{"type":"object","properties":{"region":{"type":"string","enum":["asia-northeast-1","asia-northeast-2","asia-south-1","australia-southeast-1","europe-central-1","europe-south-1","me-west-1","us-east-1","us-midwest-1","us-south-1","us-west-1","us-west-2","us-west-3"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"sshKey":{"type":"string"},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"fileSystems":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"paperspace":{"type":"object","properties":{"region":{"type":"string","enum":["AMS1","NY2","CA1"]},"tokenSecretLink":{"type":"string"},"sharedDrives":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"userIds":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string"}},"additionalProperties":false},"ephemeral":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}}},"additionalProperties":false},"triton":{"type":"object","properties":{"connection":{"type":"object","properties":{"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}},"additionalProperties":false},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to the Triton datacenter"},"loadBalancer":{"type":"object","properties":{"manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object"},"gateway":{"type":"object"}},"additionalProperties":false},"privateNetworkId":{"type":"string","description":"ID of the private Fabric/Network"},"firewallEnabled":{"type":"boolean","description":"Enable firewall for the instances deployed"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"imageId":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"azure":{"type":"object","properties":{"location":{"type":"string","description":"Region where the cluster nodes will live"},"subscriptionId":{"type":"string"},"sdkSecretLink":{"type":"string","description":"Link to an opaque secret"},"resourceGroup":{"type":"string"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"Default image for all nodes."},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH keys to install for \"azureuser\" linux user"},"networkId":{"type":"string","description":"The vpc where nodes will be deployed."},"tags":{"type":"object","description":"Extra tags to attach to all created objects"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"digitalocean":{"type":"object","properties":{"region":{"type":"string","enum":["ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo2","sfo3","sgp1","syd1","tor1"],"description":"Region to deploy nodes to"},"digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254},"description":"Extra tags to attach to droplets"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding personal access token"},"vpcId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"image":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH key name for accessing deployed nodes"},"extraSshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root that are not registered in the DigitalOcean"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"reservedIPs":{"type":"array","items":{"type":"string"},"description":"Optional set of IPs to assign as extra IPs for nodes of the cluster"}},"additionalProperties":false},"gcp":{"type":"object","properties":{"projectId":{"type":"string"},"region":{"type":"string","description":"Region where the cluster nodes will live"},"labels":{"type":"object","description":"Extra tags to attach to all created objects"},"tags":{"type":"array","items":{"type":"string","maxLength":63}},"metadata":{"type":"object"},"network":{"type":"string"},"saKeyLink":{"type":"string","description":"Link to a GCP secret containing the SA json key"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false,"description":"Default image for all nodes."},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"addOns":{"type":"object","properties":{"dashboard":{"type":"object","properties":{},"additionalProperties":false},"headlamp":{"type":"object","properties":{},"additionalProperties":false},"azureWorkloadIdentity":{"type":"object","properties":{"tenantId":{"type":"string","description":"Tenant ID to use for workload identity"}},"additionalProperties":false},"awsWorkloadIdentity":{"type":"object","properties":{},"additionalProperties":false},"localPathStorage":{"type":"object","properties":{},"additionalProperties":false},"metrics":{"type":"object","properties":{"kubeState":{"type":"boolean","description":"Enable kube-state metrics"},"coreDns":{"type":"boolean","description":"Enable scraping of core-dns service"},"kubelet":{"type":"boolean","description":"Enable scraping kubelet stats"},"apiserver":{"type":"boolean","description":"Enable scraping apiserver stats"},"nodeExporter":{"type":"boolean","description":"Enable collecting node-level stats (disk, network, filesystem, etc)"},"cadvisor":{"type":"boolean","description":"Enable CNI-level container stats"},"scrapeAnnotated":{"type":"object","properties":{"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}},"additionalProperties":false,"description":"Scrape pods annotated with prometheus.io/scrape=true"}},"additionalProperties":false},"logs":{"type":"object","properties":{"auditEnabled":{"type":"boolean","description":"Collect k8s audit log as log events "},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"docker":{"type":"boolean","description":"Collect docker logs if docker is also running"},"kubelet":{"type":"boolean","description":"Collect kubelet logs from journald"},"kernel":{"type":"boolean","description":"Collect kernel logs"},"events":{"type":"boolean","description":"Collect K8S events from all namespaces"}},"additionalProperties":false},"registryMirror":{"type":"object","properties":{"mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"nvidia":{"type":"object","properties":{"taintGPUNodes":{"type":"boolean"}},"additionalProperties":false},"awsEFS":{"type":"object","properties":{"roleArn":{"type":"string","description":"Use this role for EFS interaction"}},"additionalProperties":false},"awsECR":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, in which case it will use the instance role to pull"}},"additionalProperties":false},"awsELB":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, when not provided it will create the recommended role"}},"additionalProperties":false},"azureACR":{"type":"object","properties":{"clientId":{"type":"string"}},"additionalProperties":false},"sysbox":{"type":"object","properties":{},"additionalProperties":false},"byok":{"type":"object","properties":{"ignoreUpdates":{"type":"boolean"},"location":{"type":"string"},"config":{"type":"object","properties":{"actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}},"patch_mk8s_spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["version","firewall","provider","addOns"]}},"version":{"type":"string","enum":["1.26.0","1.26.4","1.27.3","1.28.2","1.28.4","1.29.7","1.30.3","1.31.5","1.31.13","1.32.1","1.32.9","1.33.5","1.34.2","1.35.3"]},"firewall":{"type":"array","items":{"type":"object","properties":{"sourceCIDR":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false},"description":"Allow-list"},"$drop/firewall":{"type":"array","items":{"type":"string"}},"$append/firewall":{"type":"array","items":{"type":"object","properties":{"sourceCIDR":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false}},"$patch/firewall":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["sourceCIDR","description"]}},"sourceCIDR":{"type":"string"},"description":{"type":"string"}}}},"$retain/firewall":{"type":"array","items":{"type":"string"}},"provider":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["generic","hetzner","aws","linode","oblivus","lambdalabs","paperspace","ephemeral","triton","azure","digitalocean","gcp"]}},"generic":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["location","networking","nodePools"]}},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["serviceNetwork","podNetwork","dnsForwarder"]}},"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}}}},"$replace/generic":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}}},"additionalProperties":false},"hetzner":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","hetznerLabels","networking","preInstallScript","tokenSecretLink","networkId","firewallId","nodePools","dedicatedServerNodePools","image","sshKey","autoscaler","floatingIPSelector"]}},"region":{"type":"string","enum":["fsn1","nbg1","hel1","ash","hil"],"description":"Hetzner region to deploy nodes to"},"hetznerLabels":{"type":"object","properties":{}},"$replace/hetznerLabels":{"type":"object","description":"Extra labels to attach to servers"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dnsForwarder"]}},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding Hetzner access key"},"networkId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"firewallId":{"type":"string","description":"Optional firewall rule to attach to all nodes"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","serverType","overrideImage","minSize","maxSize"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false},"description":"Node pools that can configure dedicated Hetzner servers"},"$drop/dedicatedServerNodePools":{"type":"array","items":{"type":"string"}},"$append/dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$patch/dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}}}}},"$retain/dedicatedServerNodePools":{"type":"array","items":{"type":"string"}},"image":{"type":"string","default":"ubuntu-20.04","description":"Default image for all nodes"},"sshKey":{"type":"string","description":"SSH key name for accessing deployed nodes"},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"floatingIPSelector":{"type":"object","properties":{}},"$replace/floatingIPSelector":{"type":"object","description":"If supplied, nodes will get assigned a random floating ip matching the selector"}}},"$replace/hetzner":{"type":"object","properties":{"region":{"type":"string","enum":["fsn1","nbg1","hel1","ash","hil"],"description":"Hetzner region to deploy nodes to"},"hetznerLabels":{"type":"object","description":"Extra labels to attach to servers"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding Hetzner access key"},"networkId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"firewallId":{"type":"string","description":"Optional firewall rule to attach to all nodes"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false},"description":"Node pools that can configure dedicated Hetzner servers"},"image":{"type":"string","default":"ubuntu-20.04","description":"Default image for all nodes"},"sshKey":{"type":"string","description":"SSH key name for accessing deployed nodes"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"floatingIPSelector":{"type":"object","description":"If supplied, nodes will get assigned a random floating ip matching the selector"}},"additionalProperties":false},"aws":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","awsTags","skipCreateRoles","networking","preInstallScript","image","deployRoleArn","deployRoleChain","vpcId","keyPair","diskEncryptionKeyArn","securityGroupIds","extraNodePolicies","nodePools","autoscaler"]}},"region":{"type":"string","enum":["af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ca-central-1","eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","me-central-1","me-south-1","sa-east-1","us-east-1","us-east-2","us-west-1","us-west-2"],"description":"Region where the cluster nodes will live"},"awsTags":{"type":"object","properties":{}},"$replace/awsTags":{"type":"object","description":"Extra tags to attach to all created objects"},"skipCreateRoles":{"type":"boolean","description":"If true, Control Plane will not create any roles"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["serviceNetwork","podNetwork","dnsForwarder"]}},"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","exact"]}},"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}}},"$replace/image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false,"description":"Default image for all nodes."},"deployRoleArn":{"type":"string","description":"Control Plane will set up the cluster by assuming this role"},"deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"$drop/deployRoleChain":{"type":"array","items":{"type":"string"}},"$append/deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"$patch/deployRoleChain":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["roleArn","externalId","sessionNamePrefix"]}},"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}}}},"$retain/deployRoleChain":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string","description":"The vpc where nodes will be deployed. Supports SSM."},"keyPair":{"type":"string","description":"Name of keyPair. Supports SSM"},"diskEncryptionKeyArn":{"type":"string","description":"KMS key used to encrypt volumes. Supports SSM."},"securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."},"description":"Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon"},"$drop/securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$append/securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$retain/securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraNodePolicies":{"type":"array","items":{"type":"string"}},"$drop/extraNodePolicies":{"type":"array","items":{"type":"string"}},"$append/extraNodePolicies":{"type":"array","items":{"type":"string"}},"$retain/extraNodePolicies":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","instanceTypes","overrideImage","bootDiskSize","minSize","maxSize","onDemandBaseCapacity","onDemandPercentageAboveBaseCapacity","spotAllocationStrategy","subnetIds","extraSecurityGroupIds","cpuOptions"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"instanceTypes":{"type":"array","items":{"type":"string"}},"$drop/instanceTypes":{"type":"array","items":{"type":"string"}},"$append/instanceTypes":{"type":"array","items":{"type":"string"}},"$retain/instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","exact"]}},"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}}},"$replace/overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$drop/subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$append/subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$retain/subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$drop/extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$append/extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"$retain/extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["nestedVirtualization"]}},"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}}},"$replace/cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}}},"$replace/aws":{"type":"object","properties":{"region":{"type":"string","enum":["af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ca-central-1","eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","me-central-1","me-south-1","sa-east-1","us-east-1","us-east-2","us-west-1","us-west-2"],"description":"Region where the cluster nodes will live"},"awsTags":{"type":"object","description":"Extra tags to attach to all created objects"},"skipCreateRoles":{"type":"boolean","description":"If true, Control Plane will not create any roles"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false,"description":"Default image for all nodes."},"deployRoleArn":{"type":"string","description":"Control Plane will set up the cluster by assuming this role"},"deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"vpcId":{"type":"string","description":"The vpc where nodes will be deployed. Supports SSM."},"keyPair":{"type":"string","description":"Name of keyPair. Supports SSM"},"diskEncryptionKeyArn":{"type":"string","description":"KMS key used to encrypt volumes. Supports SSM."},"securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."},"description":"Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon"},"extraNodePolicies":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"linode":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","tokenSecretLink","firewallId","nodePools","image","authorizedUsers","authorizedKeys","vpcId","preInstallScript","networking","autoscaler"]}},"region":{"type":"string"},"tokenSecretLink":{"type":"string"},"firewallId":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","serverType","overrideImage","subnetId","minSize","maxSize"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"image":{"type":"string"},"authorizedUsers":{"type":"array","items":{"type":"string"}},"$drop/authorizedUsers":{"type":"array","items":{"type":"string"}},"$append/authorizedUsers":{"type":"array","items":{"type":"string"}},"$retain/authorizedUsers":{"type":"array","items":{"type":"string"}},"authorizedKeys":{"type":"array","items":{"type":"string"}},"$drop/authorizedKeys":{"type":"array","items":{"type":"string"}},"$append/authorizedKeys":{"type":"array","items":{"type":"string"}},"$retain/authorizedKeys":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string"},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dnsForwarder"]}},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}}},"$replace/linode":{"type":"object","properties":{"region":{"type":"string"},"tokenSecretLink":{"type":"string"},"firewallId":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"image":{"type":"string"},"authorizedUsers":{"type":"array","items":{"type":"string"}},"authorizedKeys":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string"},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"oblivus":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["datacenter","tokenSecretLink","nodePools","sshKeys","unmanagedNodePools","autoscaler","preInstallScript"]}},"datacenter":{"type":"string","enum":["MON1","OSL1"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","minSize","maxSize","flavor"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"sshKeys":{"type":"array","items":{"type":"string"}},"$drop/sshKeys":{"type":"array","items":{"type":"string"}},"$append/sshKeys":{"type":"array","items":{"type":"string"}},"$retain/sshKeys":{"type":"array","items":{"type":"string"}},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$drop/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"$append/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$patch/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}}}}},"$retain/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}}},"$replace/oblivus":{"type":"object","properties":{"datacenter":{"type":"string","enum":["MON1","OSL1"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"sshKeys":{"type":"array","items":{"type":"string"}},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"lambdalabs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","tokenSecretLink","nodePools","sshKey","unmanagedNodePools","autoscaler","fileSystems","preInstallScript"]}},"region":{"type":"string","enum":["asia-northeast-1","asia-northeast-2","asia-south-1","australia-southeast-1","europe-central-1","europe-south-1","me-west-1","us-east-1","us-midwest-1","us-south-1","us-west-1","us-west-2","us-west-3"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","minSize","maxSize","instanceType"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"sshKey":{"type":"string"},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$drop/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"$append/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$patch/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}}}}},"$retain/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"fileSystems":{"type":"array","items":{"type":"string"}},"$drop/fileSystems":{"type":"array","items":{"type":"string"}},"$append/fileSystems":{"type":"array","items":{"type":"string"}},"$retain/fileSystems":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}}},"$replace/lambdalabs":{"type":"object","properties":{"region":{"type":"string","enum":["asia-northeast-1","asia-northeast-2","asia-south-1","australia-southeast-1","europe-central-1","europe-south-1","me-west-1","us-east-1","us-midwest-1","us-south-1","us-west-1","us-west-2","us-west-3"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"sshKey":{"type":"string"},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"fileSystems":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"paperspace":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","tokenSecretLink","sharedDrives","nodePools","autoscaler","unmanagedNodePools","preInstallScript","userIds","networkId"]}},"region":{"type":"string","enum":["AMS1","NY2","CA1"]},"tokenSecretLink":{"type":"string"},"sharedDrives":{"type":"array","items":{"type":"string"}},"$drop/sharedDrives":{"type":"array","items":{"type":"string"}},"$append/sharedDrives":{"type":"array","items":{"type":"string"}},"$retain/sharedDrives":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","minSize","maxSize","publicIpType","bootDiskSize","machineType"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$drop/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"$append/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"$patch/unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}}}}},"$retain/unmanagedNodePools":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"userIds":{"type":"array","items":{"type":"string"}},"$drop/userIds":{"type":"array","items":{"type":"string"}},"$append/userIds":{"type":"array","items":{"type":"string"}},"$retain/userIds":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string"}}},"$replace/paperspace":{"type":"object","properties":{"region":{"type":"string","enum":["AMS1","NY2","CA1"]},"tokenSecretLink":{"type":"string"},"sharedDrives":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"userIds":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string"}},"additionalProperties":false},"ephemeral":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["location","nodePools"]}},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","count","arch","flavor","cpu","memory"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}}}},"$replace/ephemeral":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}}},"additionalProperties":false},"triton":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["connection","networking","preInstallScript","location","loadBalancer","privateNetworkId","firewallEnabled","nodePools","imageId","sshKeys","autoscaler"]}},"connection":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["url","account","user","privateKeySecretLink"]}},"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}}},"$replace/connection":{"type":"object","properties":{"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}},"additionalProperties":false},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dnsForwarder"]}},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to the Triton datacenter"},"loadBalancer":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["manual","none","gateway"]}},"manual":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["packageId","imageId","publicNetworkId","privateNetworkIds","metadata","tags","logging","count","cnsInternalDomain","cnsPublicDomain"]}},"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"$drop/privateNetworkIds":{"type":"array","items":{"type":"string"}},"$append/privateNetworkIds":{"type":"array","items":{"type":"string"}},"$retain/privateNetworkIds":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["nodePort","externalSyslog"]}},"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}}},"$replace/logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}}},"$replace/manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object","properties":{}},"$replace/none":{"type":"object"},"gateway":{"type":"object","properties":{}},"$replace/gateway":{"type":"object"}}},"$replace/loadBalancer":{"type":"object","properties":{"manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object"},"gateway":{"type":"object"}},"additionalProperties":false},"privateNetworkId":{"type":"string","description":"ID of the private Fabric/Network"},"firewallEnabled":{"type":"boolean","description":"Enable firewall for the instances deployed"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","packageId","overrideImageId","publicNetworkId","privateNetworkIds","tritonTags","minSize","maxSize"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"$drop/privateNetworkIds":{"type":"array","items":{"type":"string"}},"$append/privateNetworkIds":{"type":"array","items":{"type":"string"}},"$retain/privateNetworkIds":{"type":"array","items":{"type":"string"}},"tritonTags":{"type":"object","properties":{}},"$replace/tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"imageId":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root"},"$drop/sshKeys":{"type":"array","items":{"type":"string"}},"$append/sshKeys":{"type":"array","items":{"type":"string"}},"$retain/sshKeys":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}}},"$replace/triton":{"type":"object","properties":{"connection":{"type":"object","properties":{"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}},"additionalProperties":false},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to the Triton datacenter"},"loadBalancer":{"type":"object","properties":{"manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object"},"gateway":{"type":"object"}},"additionalProperties":false},"privateNetworkId":{"type":"string","description":"ID of the private Fabric/Network"},"firewallEnabled":{"type":"boolean","description":"Enable firewall for the instances deployed"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"imageId":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"azure":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["location","subscriptionId","sdkSecretLink","resourceGroup","networking","preInstallScript","image","sshKeys","networkId","tags","nodePools","autoscaler"]}},"location":{"type":"string","description":"Region where the cluster nodes will live"},"subscriptionId":{"type":"string"},"sdkSecretLink":{"type":"string","description":"Link to an opaque secret"},"resourceGroup":{"type":"string"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["serviceNetwork","podNetwork","dnsForwarder"]}},"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","reference"]}},"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["publisher","offer","sku","version"]}},"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}}},"$replace/reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}}},"$replace/image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"Default image for all nodes."},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH keys to install for \"azureuser\" linux user"},"$drop/sshKeys":{"type":"array","items":{"type":"string"}},"$append/sshKeys":{"type":"array","items":{"type":"string"}},"$retain/sshKeys":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string","description":"The vpc where nodes will be deployed."},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object","description":"Extra tags to attach to all created objects"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","size","subnetId","zones","overrideImage","bootDiskSize","minSize","maxSize"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"$drop/zones":{"type":"array","items":{"type":"number"}},"$append/zones":{"type":"array","items":{"type":"number"}},"$retain/zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","reference"]}},"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["publisher","offer","sku","version"]}},"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}}},"$replace/reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}}},"$replace/overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}}},"$replace/azure":{"type":"object","properties":{"location":{"type":"string","description":"Region where the cluster nodes will live"},"subscriptionId":{"type":"string"},"sdkSecretLink":{"type":"string","description":"Link to an opaque secret"},"resourceGroup":{"type":"string"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"Default image for all nodes."},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH keys to install for \"azureuser\" linux user"},"networkId":{"type":"string","description":"The vpc where nodes will be deployed."},"tags":{"type":"object","description":"Extra tags to attach to all created objects"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"digitalocean":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","digitalOceanTags","networking","preInstallScript","tokenSecretLink","vpcId","nodePools","image","sshKeys","extraSshKeys","autoscaler","reservedIPs"]}},"region":{"type":"string","enum":["ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo2","sfo3","sgp1","syd1","tor1"],"description":"Region to deploy nodes to"},"digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254},"description":"Extra tags to attach to droplets"},"$drop/digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254}},"$append/digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254}},"$retain/digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254}},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dnsForwarder"]}},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding personal access token"},"vpcId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","dropletSize","overrideImage","minSize","maxSize"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"image":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH key name for accessing deployed nodes"},"$drop/sshKeys":{"type":"array","items":{"type":"string"}},"$append/sshKeys":{"type":"array","items":{"type":"string"}},"$retain/sshKeys":{"type":"array","items":{"type":"string"}},"extraSshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root that are not registered in the DigitalOcean"},"$drop/extraSshKeys":{"type":"array","items":{"type":"string"}},"$append/extraSshKeys":{"type":"array","items":{"type":"string"}},"$retain/extraSshKeys":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"reservedIPs":{"type":"array","items":{"type":"string"},"description":"Optional set of IPs to assign as extra IPs for nodes of the cluster"},"$drop/reservedIPs":{"type":"array","items":{"type":"string"}},"$append/reservedIPs":{"type":"array","items":{"type":"string"}},"$retain/reservedIPs":{"type":"array","items":{"type":"string"}}}},"$replace/digitalocean":{"type":"object","properties":{"region":{"type":"string","enum":["ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo2","sfo3","sgp1","syd1","tor1"],"description":"Region to deploy nodes to"},"digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254},"description":"Extra tags to attach to droplets"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding personal access token"},"vpcId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"image":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH key name for accessing deployed nodes"},"extraSshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root that are not registered in the DigitalOcean"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"reservedIPs":{"type":"array","items":{"type":"string"},"description":"Optional set of IPs to assign as extra IPs for nodes of the cluster"}},"additionalProperties":false},"gcp":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["projectId","region","labels","tags","metadata","network","saKeyLink","networking","preInstallScript","image","nodePools","autoscaler"]}},"projectId":{"type":"string"},"region":{"type":"string","description":"Region where the cluster nodes will live"},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Extra tags to attach to all created objects"},"tags":{"type":"array","items":{"type":"string","maxLength":63}},"$drop/tags":{"type":"array","items":{"type":"string","maxLength":63}},"$append/tags":{"type":"array","items":{"type":"string","maxLength":63}},"$retain/tags":{"type":"array","items":{"type":"string","maxLength":63}},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object"},"network":{"type":"string"},"saKeyLink":{"type":"string","description":"Link to a GCP secret containing the SA json key"},"networking":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["serviceNetwork","podNetwork","dnsForwarder"]}},"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}}},"$replace/networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"image":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","family","exact"]}},"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["project","family"]}},"project":{"type":"string"},"family":{"type":"string"}}},"$replace/family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}}},"$replace/image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false,"description":"Default image for all nodes."},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"$drop/nodePools":{"type":"array","items":{"type":"string"}},"$append/nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"$patch/nodePools":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["labels","taints","machineType","assignPublicIP","zone","overrideImage","bootDiskSize","minSize","maxSize","preemptible","subnet","localPersistentDisks"]}},"name":{"type":"string","maxLength":63},"labels":{"type":"object","properties":{}},"$replace/labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"$drop/taints":{"type":"array","items":{"type":"string"}},"$append/taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false}},"$patch/taints":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","effect"]}},"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}}}},"$retain/taints":{"type":"array","items":{"type":"string"}},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["recommended","family","exact"]}},"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["project","family"]}},"project":{"type":"string"},"family":{"type":"string"}}},"$replace/family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}}},"$replace/overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}}}},"$retain/nodePools":{"type":"array","items":{"type":"string"}},"autoscaler":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["expander","unneededTime","unreadyTime","utilizationThreshold"]}},"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$drop/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$append/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"$retain/expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}}},"$replace/autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}}},"$replace/gcp":{"type":"object","properties":{"projectId":{"type":"string"},"region":{"type":"string","description":"Region where the cluster nodes will live"},"labels":{"type":"object","description":"Extra tags to attach to all created objects"},"tags":{"type":"array","items":{"type":"string","maxLength":63}},"metadata":{"type":"object"},"network":{"type":"string"},"saKeyLink":{"type":"string","description":"Link to a GCP secret containing the SA json key"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false,"description":"Default image for all nodes."},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}}},"$replace/provider":{"type":"object","properties":{"generic":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","description":"The CIDR of the service network"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","description":"The CIDR of the pod network"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}}},"additionalProperties":false},"hetzner":{"type":"object","properties":{"region":{"type":"string","enum":["fsn1","nbg1","hel1","ash","hil"],"description":"Hetzner region to deploy nodes to"},"hetznerLabels":{"type":"object","description":"Extra labels to attach to servers"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding Hetzner access key"},"networkId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"firewallId":{"type":"string","description":"Optional firewall rule to attach to all nodes"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"dedicatedServerNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false},"description":"Node pools that can configure dedicated Hetzner servers"},"image":{"type":"string","default":"ubuntu-20.04","description":"Default image for all nodes"},"sshKey":{"type":"string","description":"SSH key name for accessing deployed nodes"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"floatingIPSelector":{"type":"object","description":"If supplied, nodes will get assigned a random floating ip matching the selector"}},"additionalProperties":false},"aws":{"type":"object","properties":{"region":{"type":"string","enum":["af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ca-central-1","eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","me-central-1","me-south-1","sa-east-1","us-east-1","us-east-2","us-west-1","us-west-2"],"description":"Region where the cluster nodes will live"},"awsTags":{"type":"object","description":"Extra tags to attach to all created objects"},"skipCreateRoles":{"type":"boolean","description":"If true, Control Plane will not create any roles"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false,"description":"Default image for all nodes."},"deployRoleArn":{"type":"string","description":"Control Plane will set up the cluster by assuming this role"},"deployRoleChain":{"type":"array","items":{"type":"object","properties":{"roleArn":{"type":"string"},"externalId":{"type":"string"},"sessionNamePrefix":{"type":"string","maxLength":50,"description":"Control Plane will append random"}},"additionalProperties":false}},"vpcId":{"type":"string","description":"The vpc where nodes will be deployed. Supports SSM."},"keyPair":{"type":"string","description":"Name of keyPair. Supports SSM"},"diskEncryptionKeyArn":{"type":"string","description":"KMS key used to encrypt volumes. Supports SSM."},"securityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."},"description":"Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon"},"extraNodePolicies":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"instanceTypes":{"type":"array","items":{"type":"string"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/jammy-22.04+nvidia","ubuntu/focal-20.04","ubuntu/focal-20.04+nvidia","ubuntu/noble-24.04","ubuntu/noble-24.04+nvidia","ubuntu/bionic-18.04","amazon/amzn2","amazon/al2023"]},"exact":{"type":"string","description":"Support SSM"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"onDemandBaseCapacity":{"type":"integer"},"onDemandPercentageAboveBaseCapacity":{"type":"integer"},"spotAllocationStrategy":{"type":"string","enum":["lowest-price","capacity-optimized","capacity-optimized-prioritized","price-capacity-optimized"],"default":"lowest-price"},"subnetIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"extraSecurityGroupIds":{"type":"array","items":{"type":"string","description":"Supports SSM."}},"cpuOptions":{"type":"object","properties":{"nestedVirtualization":{"type":"boolean","description":"Enable nested virtualization. Only supported on 8th generation Intel instance types (c8i, m8i, r8i and variants)."}},"additionalProperties":false,"description":"CPU options for the node pool instances."}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"linode":{"type":"object","properties":{"region":{"type":"string"},"tokenSecretLink":{"type":"string"},"firewallId":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"serverType":{"type":"string"},"overrideImage":{"type":"string"},"subnetId":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"image":{"type":"string"},"authorizedUsers":{"type":"array","items":{"type":"string"}},"authorizedKeys":{"type":"array","items":{"type":"string"}},"vpcId":{"type":"string"},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"oblivus":{"type":"object","properties":{"datacenter":{"type":"string","enum":["MON1","OSL1"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"flavor":{"type":"string","enum":["A100_NVLINK_80GB_x8","A100_PCIE_80GB_x1","A100_PCIE_80GB_x2","A100_PCIE_80GB_x4","A100_PCIE_80GB_x8","H100_NVLINK_80GB_x8","H100_PCIE_80GB_x1","H100_PCIE_80GB_x2","H100_PCIE_80GB_x4","H100_PCIE_80GB_x8","INTEL_XEON_V3_x16","INTEL_XEON_V3_x4","INTEL_XEON_V3_x8","L40_x1","L40_x2","L40_x4","L40_x8","RTX_A4000_x1","RTX_A4000_x2","RTX_A4000_x4","RTX_A4000_x8","RTX_A5000_x1","RTX_A5000_x2","RTX_A5000_x4","RTX_A5000_x8","RTX_A6000_x1","RTX_A6000_x2","RTX_A6000_x4","RTX_A6000_x8"]}},"additionalProperties":false}},"sshKeys":{"type":"array","items":{"type":"string"}},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"lambdalabs":{"type":"object","properties":{"region":{"type":"string","enum":["asia-northeast-1","asia-northeast-2","asia-south-1","australia-southeast-1","europe-central-1","europe-south-1","me-west-1","us-east-1","us-midwest-1","us-south-1","us-west-1","us-west-2","us-west-3"]},"tokenSecretLink":{"type":"string"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"instanceType":{"type":"string","enum":["cpu_4x_general","gpu_1x_a10","gpu_1x_a100","gpu_1x_a100_sxm4","gpu_1x_a6000","gpu_1x_h100_pcie","gpu_1x_rtx6000","gpu_2x_a100","gpu_2x_a6000","gpu_4x_a100","gpu_4x_a6000","gpu_8x_a100","gpu_8x_a100_80gb_sxm4","gpu_8x_h100_sxm5","gpu_8x_v100"]}},"additionalProperties":false}},"sshKey":{"type":"string"},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"fileSystems":{"type":"array","items":{"type":"string"}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"}},"additionalProperties":false},"paperspace":{"type":"object","properties":{"region":{"type":"string","enum":["AMS1","NY2","CA1"]},"tokenSecretLink":{"type":"string"},"sharedDrives":{"type":"array","items":{"type":"string"}},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"publicIpType":{"type":"string","enum":["none","dynamic","static"]},"bootDiskSize":{"type":"integer"},"machineType":{"type":"string","enum":["A100","A100-80G","A100-80Gx2","A100-80Gx4","A100-80Gx8","A100x2","A100x4","A100x8","A4000","A4000x2","A4000x4","A5000","A5000x2","A5000x4","A6000","A6000x2","A6000x4","C10","C2","C3","C4","C5","C6","C7","C8","C9","GPU+","P4000","P4000x2","P4000x4","P5000","P5000x2","P6000","P6000x2","RTX4000","RTX5000","RTX5000x2","V100","V100-32G","V100-32Gx2","V100-32Gx4"]}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"unmanagedNodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"}},"additionalProperties":false}},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"userIds":{"type":"array","items":{"type":"string"}},"networkId":{"type":"string"}},"additionalProperties":false},"ephemeral":{"type":"object","properties":{"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are runnin"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"count":{"type":"integer","description":"Number of nodes to deploy"},"arch":{"type":"string","enum":["any","arm64","amd64"],"description":"CPU architecture of the nodes"},"flavor":{"type":"string","enum":["debian","ubuntu","fedora"],"default":"debian","description":"Linux distro to use for ephemeral nodes"},"cpu":{"type":"string","maxLength":20,"description":"Allocated CPU"},"memory":{"type":"string","maxLength":20,"description":"Allocated memory"}},"additionalProperties":false}}},"additionalProperties":false},"triton":{"type":"object","properties":{"connection":{"type":"object","properties":{"url":{"type":"string"},"account":{"type":"string"},"user":{"type":"string"},"privateKeySecretLink":{"type":"string","description":"Link to a ssh or opaque secret"}},"additionalProperties":false},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"location":{"type":"string","enum":["aws-eu-central-1","aws-us-east-2","aws-us-west-2","gcp-me-west1","gcp-us-east1"],"description":"Control Plane location that will host the K8S components. Prefer one that is closest to the Triton datacenter"},"loadBalancer":{"type":"object","properties":{"manual":{"type":"object","properties":{"packageId":{"type":"string"},"imageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"metadata":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"tags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"logging":{"type":"object","properties":{"nodePort":{"type":"integer"},"externalSyslog":{"type":"string"}},"additionalProperties":false},"count":{"type":"integer"},"cnsInternalDomain":{"type":"string"},"cnsPublicDomain":{"type":"string"}},"additionalProperties":false},"none":{"type":"object"},"gateway":{"type":"object"}},"additionalProperties":false},"privateNetworkId":{"type":"string","description":"ID of the private Fabric/Network"},"firewallEnabled":{"type":"boolean","description":"Enable firewall for the instances deployed"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"packageId":{"type":"string"},"overrideImageId":{"type":"string"},"publicNetworkId":{"type":"string","description":"If set, machine will also get a public IP"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"More private networks to join"},"tritonTags":{"type":"object","description":"Extra tags to attach to instances from a node pool"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"imageId":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"azure":{"type":"object","properties":{"location":{"type":"string","description":"Region where the cluster nodes will live"},"subscriptionId":{"type":"string"},"sdkSecretLink":{"type":"string","description":"Link to an opaque secret"},"resourceGroup":{"type":"string"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed. Supports SSM"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false,"description":"Default image for all nodes."},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH keys to install for \"azureuser\" linux user"},"networkId":{"type":"string","description":"The vpc where nodes will be deployed."},"tags":{"type":"object","description":"Extra tags to attach to all created objects"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"size":{"type":"string"},"subnetId":{"type":"string"},"zones":{"type":"array","items":{"type":"number"}},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/noble-24.04","ubuntu/jammy-22.04","ubuntu/focal-20.04","debian/bookworm-12","debian/bullseye-11"]},"reference":{"type":"object","properties":{"publisher":{"type":"string"},"offer":{"type":"string"},"sku":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"digitalocean":{"type":"object","properties":{"region":{"type":"string","enum":["ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo2","sfo3","sgp1","syd1","tor1"],"description":"Region to deploy nodes to"},"digitalOceanTags":{"type":"array","items":{"type":"string","maxLength":254},"description":"Extra tags to attach to droplets"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16","readOnly":true},"podNetwork":{"type":"string","enum":["10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16","readOnly":true},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"tokenSecretLink":{"type":"string","description":"Link to a secret holding personal access token"},"vpcId":{"type":"string","description":"ID of the Hetzner network to deploy nodes to"},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"dropletSize":{"type":"string"},"overrideImage":{"type":"string"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"}},"additionalProperties":false},"description":"List of node pools"},"image":{"type":"string","description":"Default image for all nodes"},"sshKeys":{"type":"array","items":{"type":"string"},"description":"SSH key name for accessing deployed nodes"},"extraSshKeys":{"type":"array","items":{"type":"string"},"description":"Extra SSH keys to provision for user root that are not registered in the DigitalOcean"},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false},"reservedIPs":{"type":"array","items":{"type":"string"},"description":"Optional set of IPs to assign as extra IPs for nodes of the cluster"}},"additionalProperties":false},"gcp":{"type":"object","properties":{"projectId":{"type":"string"},"region":{"type":"string","description":"Region where the cluster nodes will live"},"labels":{"type":"object","description":"Extra tags to attach to all created objects"},"tags":{"type":"array","items":{"type":"string","maxLength":63}},"metadata":{"type":"object"},"network":{"type":"string"},"saKeyLink":{"type":"string","description":"Link to a GCP secret containing the SA json key"},"networking":{"type":"object","properties":{"serviceNetwork":{"type":"string","enum":["10.43.0.0/16","192.168.0.0/16"],"default":"10.43.0.0/16"},"podNetwork":{"type":"string","enum":["vpc","10.42.0.0/16","172.16.0.0/15","172.18.0.0/15","172.20.0.0/15","172.22.0.0/15","172.24.0.0/15","172.26.0.0/15","172.28.0.0/15","172.30.0.0/15"],"default":"10.42.0.0/16"},"dnsForwarder":{"type":"string","maxLength":100,"description":"DNS forwarder used by the cluster. Can be a space-delimited list of dns servers. Default is /etc/resolv.conf when not specified."}},"additionalProperties":false},"preInstallScript":{"type":"string","description":"Optional shell script that will be run before K8S is installed"},"image":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false,"description":"Default image for all nodes."},"nodePools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":63},"labels":{"type":"object","description":"Labels to attach to nodes of a node pool"},"taints":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"]}},"additionalProperties":false},"description":"Taints for the nodes of a pool"},"machineType":{"type":"string"},"assignPublicIP":{"type":"boolean"},"zone":{"type":"string"},"overrideImage":{"type":"object","properties":{"recommended":{"type":"string","enum":["ubuntu/jammy-22.04","ubuntu/noble-24.04","debian/bookworm-12","debian/trixie-13","google/cos-stable"]},"family":{"type":"object","properties":{"project":{"type":"string"},"family":{"type":"string"}},"additionalProperties":false},"exact":{"type":"string"}},"additionalProperties":false},"bootDiskSize":{"type":"integer","description":"size in GB"},"minSize":{"type":"integer"},"maxSize":{"type":"integer"},"preemptible":{"type":"boolean"},"subnet":{"type":"string"},"localPersistentDisks":{"type":"integer"}},"additionalProperties":false}},"autoscaler":{"type":"object","properties":{"expander":{"type":"array","items":{"type":"string","enum":["random","most-pods","least-waste","price"]}},"unneededTime":{"type":"string","default":"10m"},"unreadyTime":{"type":"string","default":"20m"},"utilizationThreshold":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"addOns":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["dashboard","headlamp","azureWorkloadIdentity","awsWorkloadIdentity","localPathStorage","metrics","logs","registryMirror","nvidia","awsEFS","awsECR","awsELB","azureACR","sysbox","byok"]}},"dashboard":{"type":"object","properties":{}},"$replace/dashboard":{"type":"object","properties":{},"additionalProperties":false},"headlamp":{"type":"object","properties":{}},"$replace/headlamp":{"type":"object","properties":{},"additionalProperties":false},"azureWorkloadIdentity":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["tenantId"]}},"tenantId":{"type":"string","description":"Tenant ID to use for workload identity"}}},"$replace/azureWorkloadIdentity":{"type":"object","properties":{"tenantId":{"type":"string","description":"Tenant ID to use for workload identity"}},"additionalProperties":false},"awsWorkloadIdentity":{"type":"object","properties":{}},"$replace/awsWorkloadIdentity":{"type":"object","properties":{},"additionalProperties":false},"localPathStorage":{"type":"object","properties":{}},"$replace/localPathStorage":{"type":"object","properties":{},"additionalProperties":false},"metrics":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["kubeState","coreDns","kubelet","apiserver","nodeExporter","cadvisor","scrapeAnnotated"]}},"kubeState":{"type":"boolean","description":"Enable kube-state metrics"},"coreDns":{"type":"boolean","description":"Enable scraping of core-dns service"},"kubelet":{"type":"boolean","description":"Enable scraping kubelet stats"},"apiserver":{"type":"boolean","description":"Enable scraping apiserver stats"},"nodeExporter":{"type":"boolean","description":"Enable collecting node-level stats (disk, network, filesystem, etc)"},"cadvisor":{"type":"boolean","description":"Enable CNI-level container stats"},"scrapeAnnotated":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["intervalSeconds","includeNamespaces","excludeNamespaces","retainLabels"]}},"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}}},"$replace/scrapeAnnotated":{"type":"object","properties":{"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}},"additionalProperties":false,"description":"Scrape pods annotated with prometheus.io/scrape=true"}}},"$replace/metrics":{"type":"object","properties":{"kubeState":{"type":"boolean","description":"Enable kube-state metrics"},"coreDns":{"type":"boolean","description":"Enable scraping of core-dns service"},"kubelet":{"type":"boolean","description":"Enable scraping kubelet stats"},"apiserver":{"type":"boolean","description":"Enable scraping apiserver stats"},"nodeExporter":{"type":"boolean","description":"Enable collecting node-level stats (disk, network, filesystem, etc)"},"cadvisor":{"type":"boolean","description":"Enable CNI-level container stats"},"scrapeAnnotated":{"type":"object","properties":{"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}},"additionalProperties":false,"description":"Scrape pods annotated with prometheus.io/scrape=true"}},"additionalProperties":false},"logs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["auditEnabled","includeNamespaces","excludeNamespaces","docker","kubelet","kernel","events"]}},"auditEnabled":{"type":"boolean","description":"Collect k8s audit log as log events "},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"docker":{"type":"boolean","description":"Collect docker logs if docker is also running"},"kubelet":{"type":"boolean","description":"Collect kubelet logs from journald"},"kernel":{"type":"boolean","description":"Collect kernel logs"},"events":{"type":"boolean","description":"Collect K8S events from all namespaces"}}},"$replace/logs":{"type":"object","properties":{"auditEnabled":{"type":"boolean","description":"Collect k8s audit log as log events "},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"docker":{"type":"boolean","description":"Collect docker logs if docker is also running"},"kubelet":{"type":"boolean","description":"Collect kubelet logs from journald"},"kernel":{"type":"boolean","description":"Collect kernel logs"},"events":{"type":"boolean","description":"Collect K8S events from all namespaces"}},"additionalProperties":false},"registryMirror":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["mirrors"]}},"mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"$drop/mirrors":{"type":"array","items":{"type":"string"}},"$append/mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"$patch/mirrors":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["registry","mirrors"]}},"$replace/registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"registry":{"oneOf":[]},"mirrors":{"type":"array","items":{"type":"string"}},"$drop/mirrors":{"type":"array","items":{"type":"string"}},"$append/mirrors":{"type":"array","items":{"type":"string"}},"$retain/mirrors":{"type":"array","items":{"type":"string"}}}}},"$retain/mirrors":{"type":"array","items":{"type":"string"}}}},"$replace/registryMirror":{"type":"object","properties":{"mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"nvidia":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["taintGPUNodes"]}},"taintGPUNodes":{"type":"boolean"}}},"$replace/nvidia":{"type":"object","properties":{"taintGPUNodes":{"type":"boolean"}},"additionalProperties":false},"awsEFS":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["roleArn"]}},"roleArn":{"type":"string","description":"Use this role for EFS interaction"}}},"$replace/awsEFS":{"type":"object","properties":{"roleArn":{"type":"string","description":"Use this role for EFS interaction"}},"additionalProperties":false},"awsECR":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["roleArn"]}},"roleArn":{"type":"string","description":"Optional on AWS, in which case it will use the instance role to pull"}}},"$replace/awsECR":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, in which case it will use the instance role to pull"}},"additionalProperties":false},"awsELB":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["roleArn"]}},"roleArn":{"type":"string","description":"Optional on AWS, when not provided it will create the recommended role"}}},"$replace/awsELB":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, when not provided it will create the recommended role"}},"additionalProperties":false},"azureACR":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["clientId"]}},"clientId":{"type":"string"}}},"$replace/azureACR":{"type":"object","properties":{"clientId":{"type":"string"}},"additionalProperties":false},"sysbox":{"type":"object","properties":{}},"$replace/sysbox":{"type":"object","properties":{},"additionalProperties":false},"byok":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["ignoreUpdates","location","config"]}},"ignoreUpdates":{"type":"boolean"},"location":{"type":"string"},"config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["actuator","juicefs","middlebox","common","longhorn","byok","ingress","istio","logSplitter","monitoring","redis","redisHa","redisSentinel","tempoAgent","internalDns"]}},"actuator":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory","logLevel","env"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object","properties":{}},"$replace/env":{"type":"object"}}},"$replace/actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled"]}},"enabled":{"type":"boolean"}}},"$replace/juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled","bandwidthAlertMbps","port","ip"]}},"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}}},"$replace/middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["deploymentReplicas","pdb"]}},"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["maxUnavailable"]}},"maxUnavailable":{"type":"integer"}}},"$replace/pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}}},"$replace/common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["numberOfReplicas","replicas","isDefault"]}},"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}}},"$replace/longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["noDefaultStorageClasses"]}},"noDefaultStorageClasses":{"type":"boolean"}}},"$replace/byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cpu","memory","targetPercent"]}},"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}}},"$replace/ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["istiod","ingressgateway","sidecar"]}},"istiod":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["replicas","minCpu","maxCpu","minMemory","maxMemory","pdb"]}},"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}}},"$replace/istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["replicas","maxCpu","maxMemory"]}},"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","minMemory"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}}},"$replace/istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory","memBufferSize","perPodRate"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}}},"$replace/logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minMemory","maxMemory","kubeStateMetrics","prometheus","remoteWrite","externalLabels"]}},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minMemory"]}},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["main"]}},"main":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["storage"]}},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}}},"$replace/prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"$drop/remoteWrite":{"type":"array","items":{"type":"string"}},"$append/remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"$patch/remoteWrite":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["basic_auth","authorization","oauth2","follow_redirects","enable_http2","tls_config","proxy_url","no_proxy","proxy_from_environment","proxy_connect_header","http_headers","url","remote_timeout","headers","write_relabel_configs","send_exemplars","send_native_histograms","sigv4","azuread","google_iam","queue_config"]}},"basic_auth":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["username","username_file","password","password_file"]}},"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}}},"$replace/basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["type","credentials","credentials_file"]}},"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}}},"$replace/authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object","properties":{}},"$replace/oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object","properties":{}},"$replace/tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object","properties":{}},"$replace/proxy_connect_header":{"type":"object"},"http_headers":{"type":"object","properties":{}},"$replace/http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object","properties":{}},"$replace/headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"$drop/write_relabel_configs":{"type":"array","items":{"type":"string"}},"$append/write_relabel_configs":{"type":"array","items":{"type":"object"}},"$patch/write_relabel_configs":{"type":"array","items":{"type":"object","properties":{}}},"$retain/write_relabel_configs":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object","properties":{}},"$replace/sigv4":{"type":"object"},"azuread":{"type":"object","properties":{}},"$replace/azuread":{"type":"object"},"google_iam":{"type":"object","properties":{}},"$replace/google_iam":{"type":"object"},"queue_config":{"type":"object","properties":{}},"$replace/queue_config":{"type":"object"}}}},"$retain/remoteWrite":{"type":"array","items":{"type":"string"}},"externalLabels":{"type":"object","properties":{}},"$replace/externalLabels":{"type":"object"}}},"$replace/monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory","storage"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory","storage"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}}},"$replace/redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory","storage"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}}},"$replace/redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","minMemory"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minCpu","maxCpu","minMemory","maxMemory"]}},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}}},"$replace/config":{"type":"object","properties":{"actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false}}},"$replace/byok":{"type":"object","properties":{"ignoreUpdates":{"type":"boolean"},"location":{"type":"string"},"config":{"type":"object","properties":{"actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}},"$replace/addOns":{"type":"object","properties":{"dashboard":{"type":"object","properties":{},"additionalProperties":false},"headlamp":{"type":"object","properties":{},"additionalProperties":false},"azureWorkloadIdentity":{"type":"object","properties":{"tenantId":{"type":"string","description":"Tenant ID to use for workload identity"}},"additionalProperties":false},"awsWorkloadIdentity":{"type":"object","properties":{},"additionalProperties":false},"localPathStorage":{"type":"object","properties":{},"additionalProperties":false},"metrics":{"type":"object","properties":{"kubeState":{"type":"boolean","description":"Enable kube-state metrics"},"coreDns":{"type":"boolean","description":"Enable scraping of core-dns service"},"kubelet":{"type":"boolean","description":"Enable scraping kubelet stats"},"apiserver":{"type":"boolean","description":"Enable scraping apiserver stats"},"nodeExporter":{"type":"boolean","description":"Enable collecting node-level stats (disk, network, filesystem, etc)"},"cadvisor":{"type":"boolean","description":"Enable CNI-level container stats"},"scrapeAnnotated":{"type":"object","properties":{"intervalSeconds":{"type":"integer"},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"retainLabels":{"type":"string"}},"additionalProperties":false,"description":"Scrape pods annotated with prometheus.io/scrape=true"}},"additionalProperties":false},"logs":{"type":"object","properties":{"auditEnabled":{"type":"boolean","description":"Collect k8s audit log as log events "},"includeNamespaces":{"type":"string"},"excludeNamespaces":{"type":"string"},"docker":{"type":"boolean","description":"Collect docker logs if docker is also running"},"kubelet":{"type":"boolean","description":"Collect kubelet logs from journald"},"kernel":{"type":"boolean","description":"Collect kernel logs"},"events":{"type":"boolean","description":"Collect K8S events from all namespaces"}},"additionalProperties":false},"registryMirror":{"type":"object","properties":{"mirrors":{"type":"array","items":{"type":"object","properties":{"registry":{"oneOf":[{"type":"string"},{"type":"string","enum":["*"]}]},"mirrors":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"nvidia":{"type":"object","properties":{"taintGPUNodes":{"type":"boolean"}},"additionalProperties":false},"awsEFS":{"type":"object","properties":{"roleArn":{"type":"string","description":"Use this role for EFS interaction"}},"additionalProperties":false},"awsECR":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, in which case it will use the instance role to pull"}},"additionalProperties":false},"awsELB":{"type":"object","properties":{"roleArn":{"type":"string","description":"Optional on AWS, when not provided it will create the recommended role"}},"additionalProperties":false},"azureACR":{"type":"object","properties":{"clientId":{"type":"string"}},"additionalProperties":false},"sysbox":{"type":"object","properties":{},"additionalProperties":false},"byok":{"type":"object","properties":{"ignoreUpdates":{"type":"boolean"},"location":{"type":"string"},"config":{"type":"object","properties":{"actuator":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"logLevel":{"type":"string","enum":["trace","info","error"]},"env":{"type":"object"}},"additionalProperties":false},"juicefs":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"middlebox":{"type":"object","properties":{"enabled":{"type":"boolean"},"bandwidthAlertMbps":{"type":"integer"},"port":{"type":"number"},"ip":{"type":"string"}},"additionalProperties":false},"common":{"type":"object","properties":{"deploymentReplicas":{"type":"integer"},"pdb":{"type":"object","properties":{"maxUnavailable":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"longhorn":{"type":"object","properties":{"numberOfReplicas":{"type":"integer"},"replicas":{"type":"integer"},"isDefault":{"type":"boolean"}},"additionalProperties":false},"byok":{"type":"object","properties":{"noDefaultStorageClasses":{"type":"boolean"}},"additionalProperties":false},"ingress":{"type":"object","properties":{"cpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"memory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"targetPercent":{"type":"number"}},"additionalProperties":false},"istio":{"type":"object","properties":{"istiod":{"type":"object","properties":{"replicas":{"type":"integer"},"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"pdb":{"type":"integer"}},"additionalProperties":false},"ingressgateway":{"type":"object","properties":{"replicas":{"type":"integer"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"sidecar":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"logSplitter":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"memBufferSize":{"type":"string"},"perPodRate":{"type":"integer"}},"additionalProperties":false},"monitoring":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"kubeStateMetrics":{"type":"object","properties":{"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"prometheus":{"type":"object","properties":{"main":{"type":"object","properties":{"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false},"remoteWrite":{"type":"array","items":{"type":"object","properties":{"basic_auth":{"type":"object","properties":{"username":{"type":"string"},"username_file":{"type":"string"},"password":{"type":"string"},"password_file":{"type":"string"}},"additionalProperties":false},"authorization":{"type":"object","properties":{"type":{"type":"string"},"credentials":{"type":"string"},"credentials_file":{"type":"string"}},"additionalProperties":false},"oauth2":{"type":"object"},"follow_redirects":{"type":"boolean"},"enable_http2":{"type":"boolean"},"tls_config":{"type":"object"},"proxy_url":{"type":"string"},"no_proxy":{"type":"string"},"proxy_from_environment":{"type":"boolean"},"proxy_connect_header":{"type":"object"},"http_headers":{"type":"object"},"url":{"type":"string"},"remote_timeout":{"type":"string"},"headers":{"type":"object"},"write_relabel_configs":{"type":"array","items":{"type":"object"}},"name":{"type":"string"},"send_exemplars":{"type":"boolean"},"send_native_histograms":{"type":"boolean"},"sigv4":{"type":"object"},"azuread":{"type":"object"},"google_iam":{"type":"object"},"queue_config":{"type":"object"}},"additionalProperties":false}},"externalLabels":{"type":"object"}},"additionalProperties":false},"redis":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"redisHa":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"redisSentinel":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"storage":{"type":"integer"}},"additionalProperties":false},"tempoAgent":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false},"internalDns":{"type":"object","properties":{"minCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"maxCpu":{"type":"string","maxLength":20,"description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}},"patch_network_resource":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["agentLink","IPs","FQDN","resolverIP","ports"]}},"$replace/name":{"oneOf":[{"type":"string","maxLength":64},{"type":"string"}]},"name":{"oneOf":[]},"agentLink":{"type":"string"},"IPs":{"type":"array","items":{"type":"string"}},"$drop/IPs":{"type":"array","items":{"type":"string"}},"$append/IPs":{"type":"array","items":{"type":"string"}},"$retain/IPs":{"type":"array","items":{"type":"string"}},"FQDN":{"type":"string"},"resolverIP":{"type":"string"},"ports":{"type":"array","items":{"type":"integer"}},"$drop/ports":{"type":"array","items":{"type":"integer"}},"$append/ports":{"type":"array","items":{"type":"integer"}},"$retain/ports":{"type":"array","items":{"type":"integer"}}}},"patch_org":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","spec"]}},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"name":{"type":"string","maxLength":64},"spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["logging","extraLogging","tracing","sessionTimeoutSeconds","authConfig","observability","security"]}},"logging":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["s3","coralogix","datadog","logzio","elastic","cloudWatch","fluentd","stackdriver","syslog","opentelemetry"]}},"s3":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["bucket","region","prefix","credentials"]}},"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}}},"$replace/s3":{"type":"object","properties":{"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}},"additionalProperties":false},"coralogix":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cluster","credentials","app","subsystem"]}},"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}}},"$replace/coralogix":{"type":"object","properties":{"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}},"additionalProperties":false},"datadog":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["host","credentials"]}},"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}}},"$replace/datadog":{"type":"object","properties":{"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}},"additionalProperties":false},"logzio":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["listenerHost","credentials"]}},"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}}},"$replace/logzio":{"type":"object","properties":{"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}},"additionalProperties":false},"elastic":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["aws","elasticCloud","generic"]}},"aws":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["host","port","index","type","credentials","region"]}},"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}}},"$replace/aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["index","type","credentials","cloudId"]}},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}}},"$replace/elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["host","port","path","index","type","credentials","username","password"]}},"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}}},"$replace/generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}}},"$replace/elastic":{"type":"object","properties":{"aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"cloudWatch":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","credentials","retentionDays","groupName","streamName","extractFields"]}},"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object","properties":{}},"$replace/extractFields":{"type":"object"}}},"$replace/cloudWatch":{"type":"object","properties":{"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object"}},"additionalProperties":false},"fluentd":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["host","port"]}},"host":{"type":"string"},"port":{"type":"integer"}}},"$replace/fluentd":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"}},"additionalProperties":false},"stackdriver":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["credentials","location"]}},"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}}},"$replace/stackdriver":{"type":"object","properties":{"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}},"additionalProperties":false},"syslog":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["host","port","mode","format","severity"]}},"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}}},"$replace/syslog":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}},"additionalProperties":false},"opentelemetry":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint","headers","credentials"]}},"endpoint":{"type":"string"},"headers":{"type":"object","properties":{}},"$replace/headers":{"type":"object"},"credentials":{"type":"string"}}},"$replace/opentelemetry":{"type":"object","properties":{"endpoint":{"type":"string"},"headers":{"type":"object"},"credentials":{"type":"string"}},"additionalProperties":false}}},"$replace/logging":{"type":"object","properties":{"s3":{"type":"object","properties":{"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}},"additionalProperties":false},"coralogix":{"type":"object","properties":{"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}},"additionalProperties":false},"datadog":{"type":"object","properties":{"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}},"additionalProperties":false},"logzio":{"type":"object","properties":{"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}},"additionalProperties":false},"elastic":{"type":"object","properties":{"aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"cloudWatch":{"type":"object","properties":{"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object"}},"additionalProperties":false},"fluentd":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"}},"additionalProperties":false},"stackdriver":{"type":"object","properties":{"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}},"additionalProperties":false},"syslog":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}},"additionalProperties":false},"opentelemetry":{"type":"object","properties":{"endpoint":{"type":"string"},"headers":{"type":"object"},"credentials":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"extraLogging":{"type":"array","items":{"type":"object","properties":{"s3":{"type":"object","properties":{"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}},"additionalProperties":false},"coralogix":{"type":"object","properties":{"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}},"additionalProperties":false},"datadog":{"type":"object","properties":{"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}},"additionalProperties":false},"logzio":{"type":"object","properties":{"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}},"additionalProperties":false},"elastic":{"type":"object","properties":{"aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"cloudWatch":{"type":"object","properties":{"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object"}},"additionalProperties":false},"fluentd":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"}},"additionalProperties":false},"stackdriver":{"type":"object","properties":{"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}},"additionalProperties":false},"syslog":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}},"additionalProperties":false},"opentelemetry":{"type":"object","properties":{"endpoint":{"type":"string"},"headers":{"type":"object"},"credentials":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$drop/extraLogging":{"type":"array","items":{"type":"string"}},"$append/extraLogging":{"type":"array","items":{"type":"object","properties":{"s3":{"type":"object","properties":{"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}},"additionalProperties":false},"coralogix":{"type":"object","properties":{"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}},"additionalProperties":false},"datadog":{"type":"object","properties":{"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}},"additionalProperties":false},"logzio":{"type":"object","properties":{"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}},"additionalProperties":false},"elastic":{"type":"object","properties":{"aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"cloudWatch":{"type":"object","properties":{"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object"}},"additionalProperties":false},"fluentd":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"}},"additionalProperties":false},"stackdriver":{"type":"object","properties":{"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}},"additionalProperties":false},"syslog":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}},"additionalProperties":false},"opentelemetry":{"type":"object","properties":{"endpoint":{"type":"string"},"headers":{"type":"object"},"credentials":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$patch/extraLogging":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["s3","coralogix","datadog","logzio","elastic","cloudWatch","fluentd","stackdriver","syslog","opentelemetry"]}},"s3":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["bucket","region","prefix","credentials"]}},"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}}},"$replace/s3":{"type":"object","properties":{"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}},"additionalProperties":false},"coralogix":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cluster","credentials","app","subsystem"]}},"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}}},"$replace/coralogix":{"type":"object","properties":{"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}},"additionalProperties":false},"datadog":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["host","credentials"]}},"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}}},"$replace/datadog":{"type":"object","properties":{"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}},"additionalProperties":false},"logzio":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["listenerHost","credentials"]}},"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}}},"$replace/logzio":{"type":"object","properties":{"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}},"additionalProperties":false},"elastic":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["aws","elasticCloud","generic"]}},"aws":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["host","port","index","type","credentials","region"]}},"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}}},"$replace/aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["index","type","credentials","cloudId"]}},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}}},"$replace/elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["host","port","path","index","type","credentials","username","password"]}},"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}}},"$replace/generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}}},"$replace/elastic":{"type":"object","properties":{"aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"cloudWatch":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["region","credentials","retentionDays","groupName","streamName","extractFields"]}},"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object","properties":{}},"$replace/extractFields":{"type":"object"}}},"$replace/cloudWatch":{"type":"object","properties":{"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object"}},"additionalProperties":false},"fluentd":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["host","port"]}},"host":{"type":"string"},"port":{"type":"integer"}}},"$replace/fluentd":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"}},"additionalProperties":false},"stackdriver":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["credentials","location"]}},"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}}},"$replace/stackdriver":{"type":"object","properties":{"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}},"additionalProperties":false},"syslog":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["host","port","mode","format","severity"]}},"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}}},"$replace/syslog":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}},"additionalProperties":false},"opentelemetry":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint","headers","credentials"]}},"endpoint":{"type":"string"},"headers":{"type":"object","properties":{}},"$replace/headers":{"type":"object"},"credentials":{"type":"string"}}},"$replace/opentelemetry":{"type":"object","properties":{"endpoint":{"type":"string"},"headers":{"type":"object"},"credentials":{"type":"string"}},"additionalProperties":false}}}},"$retain/extraLogging":{"type":"array","items":{"type":"string"}},"tracing":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["sampling","lightstep","customTags","provider"]}},"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint","credentials"]}},"endpoint":{"type":"string"},"credentials":{"type":"string"}}},"$replace/lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object","properties":{}},"$replace/customTags":{"type":"object"},"provider":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["otel","lightstep","controlplane"]}},"otel":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint"]}},"endpoint":{"type":"string"}}},"$replace/otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["endpoint","credentials"]}},"endpoint":{"type":"string"},"credentials":{"type":"string"}}},"$replace/lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{}},"$replace/controlplane":{"type":"object","properties":{},"additionalProperties":false}}},"$replace/provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}}},"$replace/tracing":{"type":"object","properties":{"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object"},"provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"sessionTimeoutSeconds":{"type":"number"},"authConfig":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["domainAutoMembers","samlOnly"]}},"domainAutoMembers":{"type":"array","items":{"type":"string"}},"$drop/domainAutoMembers":{"type":"array","items":{"type":"string"}},"$append/domainAutoMembers":{"type":"array","items":{"type":"string"}},"$retain/domainAutoMembers":{"type":"array","items":{"type":"string"}},"samlOnly":{"type":"boolean"}}},"$replace/authConfig":{"type":"object","properties":{"domainAutoMembers":{"type":"array","items":{"type":"string"}},"samlOnly":{"type":"boolean"}},"additionalProperties":false},"observability":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["logsRetentionDays","metricsRetentionDays","tracesRetentionDays","defaultAlertEmails"]}},"logsRetentionDays":{"type":"integer"},"metricsRetentionDays":{"type":"integer"},"tracesRetentionDays":{"type":"integer"},"defaultAlertEmails":{"type":"array","items":{"type":"string"},"description":"these emails are configured as alert recipients in grafana when the grafana-default-email contact delivery type is Email"},"$drop/defaultAlertEmails":{"type":"array","items":{"type":"string"}},"$append/defaultAlertEmails":{"type":"array","items":{"type":"string"}},"$retain/defaultAlertEmails":{"type":"array","items":{"type":"string"}}}},"$replace/observability":{"type":"object","properties":{"logsRetentionDays":{"type":"integer"},"metricsRetentionDays":{"type":"integer"},"tracesRetentionDays":{"type":"integer"},"defaultAlertEmails":{"type":"array","items":{"type":"string"},"description":"these emails are configured as alert recipients in grafana when the grafana-default-email contact delivery type is Email"}},"additionalProperties":false},"security":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["threatDetection"]}},"threatDetection":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled","minimumSeverity","syslog"]}},"enabled":{"type":"boolean","description":"whether or not detected threats should be forwarded"},"minimumSeverity":{"type":"string","enum":["warning","error","critical"],"description":"any threats with this severity and more severe will be sent. Others will be ignored"},"syslog":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["transport","host","port"]}},"transport":{"type":"string","enum":["tcp","udp"],"default":"tcp","description":"the transport-layer protocol to send the syslog messages over. If TCP is chosen, messages will be sent with TLS."},"host":{"type":"string","description":"the hostname to send syslog messages to"},"port":{"type":"integer","description":"the port to send syslog messages to"}}},"$replace/syslog":{"type":"object","properties":{"transport":{"type":"string","enum":["tcp","udp"],"default":"tcp","description":"the transport-layer protocol to send the syslog messages over. If TCP is chosen, messages will be sent with TLS."},"host":{"type":"string","description":"the hostname to send syslog messages to"},"port":{"type":"integer","description":"the port to send syslog messages to"}},"additionalProperties":false,"description":"configuration for syslog forwarding"}}},"$replace/threatDetection":{"type":"object","properties":{"enabled":{"type":"boolean","description":"whether or not detected threats should be forwarded"},"minimumSeverity":{"type":"string","enum":["warning","error","critical"],"description":"any threats with this severity and more severe will be sent. Others will be ignored"},"syslog":{"type":"object","properties":{"transport":{"type":"string","enum":["tcp","udp"],"default":"tcp","description":"the transport-layer protocol to send the syslog messages over. If TCP is chosen, messages will be sent with TLS."},"host":{"type":"string","description":"the hostname to send syslog messages to"},"port":{"type":"integer","description":"the port to send syslog messages to"}},"additionalProperties":false,"description":"configuration for syslog forwarding"}},"additionalProperties":false,"description":"configure detected threats to be forwarded using a specified protocol"}}},"$replace/security":{"type":"object","properties":{"threatDetection":{"type":"object","properties":{"enabled":{"type":"boolean","description":"whether or not detected threats should be forwarded"},"minimumSeverity":{"type":"string","enum":["warning","error","critical"],"description":"any threats with this severity and more severe will be sent. Others will be ignored"},"syslog":{"type":"object","properties":{"transport":{"type":"string","enum":["tcp","udp"],"default":"tcp","description":"the transport-layer protocol to send the syslog messages over. If TCP is chosen, messages will be sent with TLS."},"host":{"type":"string","description":"the hostname to send syslog messages to"},"port":{"type":"integer","description":"the port to send syslog messages to"}},"additionalProperties":false,"description":"configuration for syslog forwarding"}},"additionalProperties":false,"description":"configure detected threats to be forwarded using a specified protocol"}},"additionalProperties":false}}},"$replace/spec":{"type":"object","properties":{"logging":{"type":"object","properties":{"s3":{"type":"object","properties":{"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}},"additionalProperties":false},"coralogix":{"type":"object","properties":{"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}},"additionalProperties":false},"datadog":{"type":"object","properties":{"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}},"additionalProperties":false},"logzio":{"type":"object","properties":{"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}},"additionalProperties":false},"elastic":{"type":"object","properties":{"aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"cloudWatch":{"type":"object","properties":{"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object"}},"additionalProperties":false},"fluentd":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"}},"additionalProperties":false},"stackdriver":{"type":"object","properties":{"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}},"additionalProperties":false},"syslog":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}},"additionalProperties":false},"opentelemetry":{"type":"object","properties":{"endpoint":{"type":"string"},"headers":{"type":"object"},"credentials":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"extraLogging":{"type":"array","items":{"type":"object","properties":{"s3":{"type":"object","properties":{"bucket":{"type":"string"},"region":{"type":"string"},"prefix":{"type":"string","default":"/"},"credentials":{"type":"string"}},"additionalProperties":false},"coralogix":{"type":"object","properties":{"cluster":{"type":"string","enum":["coralogix.com","coralogix.us","app.coralogix.in","app.eu2.coralogix.com","app.coralogixsg.com"]},"credentials":{"type":"string"},"app":{"type":"string"},"subsystem":{"type":"string"}},"additionalProperties":false},"datadog":{"type":"object","properties":{"host":{"type":"string","enum":["http-intake.logs.datadoghq.com","http-intake.logs.us3.datadoghq.com","http-intake.logs.us5.datadoghq.com","http-intake.logs.datadoghq.eu"]},"credentials":{"type":"string"}},"additionalProperties":false},"logzio":{"type":"object","properties":{"listenerHost":{"type":"string","enum":["listener.logz.io","listener-nl.logz.io"]},"credentials":{"type":"string"}},"additionalProperties":false},"elastic":{"type":"object","properties":{"aws":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false},"elasticCloud":{"type":"object","properties":{"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"cloudId":{"type":"string"}},"additionalProperties":false},"generic":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"path":{"type":"string"},"index":{"type":"string"},"type":{"type":"string"},"credentials":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"cloudWatch":{"type":"object","properties":{"region":{"type":"string","enum":["us-east-1","us-east-2","us-west-1","us-west-2","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","eu-central-1","eu-west-1","eu-west-2","eu-south-1","eu-west-3","eu-north-1","me-south-1","sa-east-1","af-south-1"]},"credentials":{"type":"string"},"retentionDays":{"type":"integer"},"groupName":{"type":"string"},"streamName":{"type":"string"},"extractFields":{"type":"object"}},"additionalProperties":false},"fluentd":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"}},"additionalProperties":false},"stackdriver":{"type":"object","properties":{"credentials":{"type":"string"},"location":{"type":"string","enum":["us-east1","us-east4","us-central1","us-west1","europe-west4","europe-west1","europe-west3","europe-west2","asia-east1","asia-southeast1","asia-northeast1","asia-south1","australia-southeast1","southamerica-east1","africa-south1","asia-east2","asia-northeast2","asia-northeast3","asia-south2","asia-southeast2","australia-southeast2","europe-central2","europe-north1","europe-southwest1","europe-west10","europe-west12","europe-west6","europe-west8","europe-west9","me-central1","me-central2","me-west1","northamerica-northeast1","northamerica-northeast2","southamerica-west1","us-east5","us-south1","us-west2","us-west3","us-west4"]}},"additionalProperties":false},"syslog":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"mode":{"type":"string","enum":["tcp","udp","tls"],"default":"tcp"},"format":{"type":"string","enum":["rfc3164","rfc5424"],"default":"rfc5424"},"severity":{"type":"number","description":"\n  Emergency (EMERG) (severity level 0):\n  System is unusable.\n\n  Alert (ALERT) (severity level 1):\n  Action must be taken immediately.\n\n  Critical (CRIT) (severity level 2):\n  Critical conditions.\n\n  Error (ERR) (severity level 3):\n  Error conditions.\n\n  Warning (WARNING) (severity level 4):\n  Warning conditions.\n\n  Notice (NOTICE) (severity level 5):\n  Normal but significant conditions.\n\n  Informational (INFO) (severity level 6):\n  Informational messages.\n\n  Debug (DEBUG) (severity level 7):\n  Debug-level messages."}},"additionalProperties":false},"opentelemetry":{"type":"object","properties":{"endpoint":{"type":"string"},"headers":{"type":"object"},"credentials":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"tracing":{"type":"object","properties":{"sampling":{"type":"number"},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"customTags":{"type":"object"},"provider":{"type":"object","properties":{"otel":{"type":"object","properties":{"endpoint":{"type":"string"}},"additionalProperties":false},"lightstep":{"type":"object","properties":{"endpoint":{"type":"string"},"credentials":{"type":"string"}},"additionalProperties":false},"controlplane":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"sessionTimeoutSeconds":{"type":"number"},"authConfig":{"type":"object","properties":{"domainAutoMembers":{"type":"array","items":{"type":"string"}},"samlOnly":{"type":"boolean"}},"additionalProperties":false},"observability":{"type":"object","properties":{"logsRetentionDays":{"type":"integer"},"metricsRetentionDays":{"type":"integer"},"tracesRetentionDays":{"type":"integer"},"defaultAlertEmails":{"type":"array","items":{"type":"string"},"description":"these emails are configured as alert recipients in grafana when the grafana-default-email contact delivery type is Email"}},"additionalProperties":false},"security":{"type":"object","properties":{"threatDetection":{"type":"object","properties":{"enabled":{"type":"boolean","description":"whether or not detected threats should be forwarded"},"minimumSeverity":{"type":"string","enum":["warning","error","critical"],"description":"any threats with this severity and more severe will be sent. Others will be ignored"},"syslog":{"type":"object","properties":{"transport":{"type":"string","enum":["tcp","udp"],"default":"tcp","description":"the transport-layer protocol to send the syslog messages over. If TCP is chosen, messages will be sent with TLS."},"host":{"type":"string","description":"the hostname to send syslog messages to"},"port":{"type":"integer","description":"the port to send syslog messages to"}},"additionalProperties":false,"description":"configuration for syslog forwarding"}},"additionalProperties":false,"description":"configure detected threats to be forwarded using a specified protocol"}},"additionalProperties":false}},"additionalProperties":false}}},"patch_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","targetKind","targetLinks","targetQuery","target","origin","bindings"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"targetKind":{"type":"string","enum":["org","cloudaccount","policy","user","group","resource","task","permissions","serviceaccount","secret","location","gvc","workload","quota","identity","deployment","event","domain","image","ipset","resourcepolicy","agent","accessreport","policymembership","dbcluster","auditctx","memcachecluster","spicedbcluster","tenant","mk8s","command","imagesummary","volumeset"]},"targetLinks":{"type":"array","items":{"type":"string"}},"$drop/targetLinks":{"type":"array","items":{"type":"string"}},"$append/targetLinks":{"type":"array","items":{"type":"string"}},"$retain/targetLinks":{"type":"array","items":{"type":"string"}},"targetQuery":{"$ref":"#/components/schemas/patch_query"},"$replace/targetQuery":{"$ref":"#/components/schemas/query"},"target":{"type":"string","enum":["all"]},"origin":{"type":"string","enum":["default","builtin"],"default":"default"},"bindings":{"type":"array","items":{"$ref":"#/components/schemas/policy_binding"}},"$drop/bindings":{"type":"array","items":{"type":"string"}},"$append/bindings":{"type":"array","items":{"$ref":"#/components/schemas/policy_binding"}},"$retain/bindings":{"type":"array","items":{"type":"string"}},"$patch/bindings":{"type":"array","items":{"$ref":"#/components/schemas/patch_policy_binding"}}}},"patch_policy_binding":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["permissions","principalLinks"]}},"permissions":{"type":"array","items":{"type":"string"}},"$drop/permissions":{"type":"array","items":{"type":"string"}},"$append/permissions":{"type":"array","items":{"type":"string"}},"$retain/permissions":{"type":"array","items":{"type":"string"}},"principalLinks":{"type":"array","items":{"type":"string"}},"$drop/principalLinks":{"type":"array","items":{"type":"string"}},"$append/principalLinks":{"type":"array","items":{"type":"string"}},"$retain/principalLinks":{"type":"array","items":{"type":"string"}}}},"patch_query":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["kind","spec"]}},"kind":{"type":"string"},"spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","terms","sort"]}},"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"$drop/terms":{"type":"array","items":{"type":"string"}},"$append/terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"$patch/terms":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["op","property","rel","tag","value"]}},"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"$replace/value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]},"value":{"oneOf":[]}}}},"$retain/terms":{"type":"array","items":{"type":"string"}},"sort":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["by","order"]}},"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}}},"$replace/sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}}},"$replace/spec":{"type":"object","properties":{"match":{"type":"string","enum":["all","any","none"],"default":"all"},"terms":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string","enum":["=",">",">=","<","<=","!=","~","=~","exists","!exists","contains"],"default":"="},"property":{"type":"string"},"rel":{"type":"string"},"tag":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time"}]}},"additionalProperties":false}},"sort":{"type":"object","properties":{"by":{"type":"string"},"order":{"type":"string","enum":["asc","desc"],"default":"asc"}},"additionalProperties":false}},"additionalProperties":false}}},"patch_secret":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","type","data"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"type":{"type":"string","enum":["opaque","tls","gcp","aws","ecr","userpass","keypair","azure-sdk","azure-connector","docker","dictionary","nats-account"]},"$replace/data":{"oneOf":[{"$ref":"#/components/schemas/secret_opaque"},{"$ref":"#/components/schemas/secret_tls"},{"type":"string"},{"$ref":"#/components/schemas/secret_awskey"},{"type":"object","properties":{"accessKey":{"type":"string"},"secretKey":{"type":"string"},"roleArn":{"type":"string"},"externalId":{"type":"string"},"repos":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},{"$ref":"#/components/schemas/secret_userpass"},{"$ref":"#/components/schemas/secret_keypair"},{"$ref":"#/components/schemas/secret_dictionary"},{"type":"object","properties":{"url":{"type":"string","description":"Url to the iam-broker Azure connection"},"code":{"type":"string","description":"Access code to call the function"}},"additionalProperties":false},{"type":"object","properties":{"accountId":{"type":"string"},"privateKey":{"type":"string"}},"additionalProperties":false}]},"data":{"oneOf":[{"$ref":"#/components/schemas/patch_secret_opaque"},{"$ref":"#/components/schemas/patch_secret_tls"},{"$ref":"#/components/schemas/patch_secret_awskey"},{"$ref":"#/components/schemas/patch_secret_userpass"},{"$ref":"#/components/schemas/patch_secret_keypair"},{"$ref":"#/components/schemas/patch_secret_dictionary"}]}}},"patch_secret_awskey":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["accessKey","secretKey","roleArn","externalId"]}},"accessKey":{"type":"string"},"secretKey":{"type":"string"},"roleArn":{"type":"string"},"externalId":{"type":"string"}}},"patch_secret_dictionary":{"type":"object","properties":{}},"patch_secret_keypair":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["secretKey","publicKey","passphrase"]}},"secretKey":{"type":"string"},"publicKey":{"type":"string"},"passphrase":{"type":"string"}}},"patch_secret_opaque":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["payload","encoding"]}},"payload":{"type":"string"},"encoding":{"type":"string","enum":["plain","base64"],"default":"plain"}}},"patch_secret_tls":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","cert","chain"]}},"key":{"type":"string"},"cert":{"type":"string"},"chain":{"type":"string"}}},"patch_secret_userpass":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["username","password","encoding"]}},"username":{"type":"string"},"password":{"type":"string"},"encoding":{"type":"string","enum":["plain","base64"],"default":"plain"}}},"patch_serviceaccount":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"}}},"patch_task":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["id","description","created","lastModified","targetEmail","creatorLink","type","context","response"]}},"id":{"type":"string"},"description":{"type":"string"},"created":{"type":"string","format":"date-time"},"lastModified":{"type":"string","format":"date-time"},"targetEmail":{"type":"string"},"creatorLink":{"type":"string"},"type":{"type":"string"},"context":{"type":"object","properties":{}},"$replace/context":{"type":"object"},"response":{"type":"object","properties":{}},"$replace/response":{"type":"object"}}},"patch_user":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["id","version","tags","created","lastModified","idp","email"]}},"id":{"type":"string"},"name":{"type":"string"},"version":{"type":"number"},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"created":{"type":"string","format":"date-time"},"lastModified":{"type":"string","format":"date-time"},"idp":{"type":"string"},"email":{"type":"string"}}},"patch_volumeset":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","spec","gvc"]}},"name":{"type":"string","maxLength":64},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"spec":{"$ref":"#/components/schemas/patch_volumeset_spec"},"$replace/spec":{"$ref":"#/components/schemas/volumeset_spec"},"gvc":{"type":"object","properties":{}},"$replace/gvc":{"type":"object"}}},"patch_volumeset_spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["initialCapacity","performanceClass","storageClassSuffix","fileSystemType","customEncryption","snapshots","autoscaling","mountOptions"]}},"initialCapacity":{"type":"integer","description":"The initial size in GB of volumes in this set."},"performanceClass":{"type":"string","enum":["general-purpose-ssd","high-throughput-ssd","shared"]},"storageClassSuffix":{"type":"string","description":"For self-hosted locations only. The storage class used for volumes in this set will be {performanceClass}-{fileSystemType}-{storageClassSuffix} if it exists, otherwise it will be {performanceClass}-{fileSystemType}"},"fileSystemType":{"type":"string","enum":["ext4","xfs","shared"],"default":"ext4"},"customEncryption":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["regions"]}},"regions":{"type":"object","properties":{}},"$replace/regions":{"type":"object"}}},"$replace/customEncryption":{"type":"object","properties":{"regions":{"type":"object"}},"additionalProperties":false,"description":"Configure customer-managed encryption keys for volumes in this set on a per-region basis. Region names must follow the format: {cloud-provider}-{region} (e.g., aws-us-east-1)."},"snapshots":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["createFinalSnapshot","retentionDuration","schedule"]}},"createFinalSnapshot":{"type":"boolean","description":"If true, a volume snapshot will be created immediately before deletion of any volume in this set"},"retentionDuration":{"type":"string","description":"The default retention period for volume snapshots. This string should contain a floating point number followed by either d, h, or m. For example, \"10d\" would retain snapshots for 10 days."},"schedule":{"type":"string","description":"A standard cron schedule expression used to determine when your job should execute."}}},"$replace/snapshots":{"type":"object","properties":{"createFinalSnapshot":{"type":"boolean","description":"If true, a volume snapshot will be created immediately before deletion of any volume in this set"},"retentionDuration":{"type":"string","description":"The default retention period for volume snapshots. This string should contain a floating point number followed by either d, h, or m. For example, \"10d\" would retain snapshots for 10 days."},"schedule":{"type":"string","description":"A standard cron schedule expression used to determine when your job should execute."}},"additionalProperties":false},"autoscaling":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["maxCapacity","minFreePercentage","scalingFactor","predictive"]}},"maxCapacity":{"type":"integer","description":"The maximum size in GB for a volume in this set. A volume cannot grow to be bigger than this."},"minFreePercentage":{"type":"number","description":"The guaranteed free space on the volume as a percentage of the volume's total size. ControlPlane will try to maintain at least that many percent free by scaling up the total size"},"scalingFactor":{"type":"number","description":"When scaling is necessary, then new_capacity = current_capacity * storageScalingFactor."},"predictive":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled","lookbackHours","projectionHours","minDataPoints","minGrowthRateGBPerHour","scalingFactor"]}},"enabled":{"type":"boolean","description":"Enable predictive scaling based on historical growth rates. Default: false."},"lookbackHours":{"type":"number","description":"Hours of historical data to analyze. Default: 24. Max: 168 (1 week)."},"projectionHours":{"type":"number","description":"Hours into the future to project storage needs. Default: 6."},"minDataPoints":{"type":"integer","description":"Minimum data points required for reliable growth rate calculation. Default: 10."},"minGrowthRateGBPerHour":{"type":"number","description":"Minimum growth rate (GB/hour) to trigger predictive expansion. Default: 0.01."},"scalingFactor":{"type":"number","description":"Scaling factor for predictive expansion. If not set, uses the parent autoscaling.scalingFactor. Use a lower value (e.g., 1.2) for gentler proactive scaling."}}},"$replace/predictive":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable predictive scaling based on historical growth rates. Default: false."},"lookbackHours":{"type":"number","description":"Hours of historical data to analyze. Default: 24. Max: 168 (1 week)."},"projectionHours":{"type":"number","description":"Hours into the future to project storage needs. Default: 6."},"minDataPoints":{"type":"integer","description":"Minimum data points required for reliable growth rate calculation. Default: 10."},"minGrowthRateGBPerHour":{"type":"number","description":"Minimum growth rate (GB/hour) to trigger predictive expansion. Default: 0.01."},"scalingFactor":{"type":"number","description":"Scaling factor for predictive expansion. If not set, uses the parent autoscaling.scalingFactor. Use a lower value (e.g., 1.2) for gentler proactive scaling."}},"additionalProperties":false,"description":"Predictive scaling configuration. When enabled, proactively expands volumes based on historical growth rate projections."}}},"$replace/autoscaling":{"type":"object","properties":{"maxCapacity":{"type":"integer","description":"The maximum size in GB for a volume in this set. A volume cannot grow to be bigger than this."},"minFreePercentage":{"type":"number","description":"The guaranteed free space on the volume as a percentage of the volume's total size. ControlPlane will try to maintain at least that many percent free by scaling up the total size"},"scalingFactor":{"type":"number","description":"When scaling is necessary, then new_capacity = current_capacity * storageScalingFactor."},"predictive":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable predictive scaling based on historical growth rates. Default: false."},"lookbackHours":{"type":"number","description":"Hours of historical data to analyze. Default: 24. Max: 168 (1 week)."},"projectionHours":{"type":"number","description":"Hours into the future to project storage needs. Default: 6."},"minDataPoints":{"type":"integer","description":"Minimum data points required for reliable growth rate calculation. Default: 10."},"minGrowthRateGBPerHour":{"type":"number","description":"Minimum growth rate (GB/hour) to trigger predictive expansion. Default: 0.01."},"scalingFactor":{"type":"number","description":"Scaling factor for predictive expansion. If not set, uses the parent autoscaling.scalingFactor. Use a lower value (e.g., 1.2) for gentler proactive scaling."}},"additionalProperties":false,"description":"Predictive scaling configuration. When enabled, proactively expands volumes based on historical growth rate projections."}},"additionalProperties":false},"mountOptions":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["resources"]}},"resources":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["maxCpu","minCpu","minMemory","maxMemory"]}},"maxCpu":{"type":"string","maxLength":20,"default":"2000m","description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minCpu":{"type":"string","maxLength":20,"default":"500m","description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"default":"1Gi","description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"default":"2Gi","description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}}},"$replace/resources":{"type":"object","properties":{"maxCpu":{"type":"string","maxLength":20,"default":"2000m","description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minCpu":{"type":"string","maxLength":20,"default":"500m","description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"default":"1Gi","description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"default":"2Gi","description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false,"description":"For volume sets using the shared file system, this object specifies the CPU and memory resources allotted to each mount point"}}},"$replace/mountOptions":{"type":"object","properties":{"resources":{"type":"object","properties":{"maxCpu":{"type":"string","maxLength":20,"default":"2000m","description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minCpu":{"type":"string","maxLength":20,"default":"500m","description":"CPU allocation specified as millicores (e.g., 50m, 1000m)"},"minMemory":{"type":"string","maxLength":20,"default":"1Gi","description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."},"maxMemory":{"type":"string","maxLength":20,"default":"2Gi","description":"Memory allocation specified as a string with units (e.g., 128Mi, 1Gi, 512M). Supports G, M, k, Gi, Mi, Ki suffixes."}},"additionalProperties":false,"description":"For volume sets using the shared file system, this object specifies the CPU and memory resources allotted to each mount point"}},"additionalProperties":false,"description":"A list of mount options to use when mounting volumes in this set."}}},"patch_workload":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["description","tags","health","spec"]}},"description":{"type":"string","maxLength":250},"tags":{"type":"object","properties":{}},"$replace/tags":{"type":"object"},"name":{"type":"string","maxLength":49,"description":"Name of the workload (max 49 characters)"},"health":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["readiness","syncFailed","readyLocations","totalLocations","readyReplicas","totalReplicas"]}},"readiness":{"type":"string"},"syncFailed":{"type":"boolean"},"readyLocations":{"type":"integer"},"totalLocations":{"type":"integer"},"readyReplicas":{"type":"integer"},"totalReplicas":{"type":"integer"}}},"$replace/health":{"type":"object","properties":{"readiness":{"type":"string"},"syncFailed":{"type":"boolean"},"readyLocations":{"type":"integer"},"totalLocations":{"type":"integer"},"readyReplicas":{"type":"integer"},"totalReplicas":{"type":"integer"}},"additionalProperties":false},"spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["type","identityLink","containers","firewallConfig","defaultOptions","localOptions","job","sidecar","supportDynamicTags","rolloutOptions","securityOptions","loadBalancer","extras","requestRetryPolicy"]}},"type":{"type":"string","enum":["serverless","standard","cron","stateful"],"default":"serverless","description":"Type of workload: standard (always running), cron (scheduled jobs), stateful (persistent state), or serverless (rapid autoscaling)"},"identityLink":{"type":"string","description":"The identityLink is used as the access scope for 3rd party cloud resources. A single identity can provide access to multiple cloud providers."},"containers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":64,"description":"The name of the container."},"image":{"type":"string","description":"The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud)."},"workingDir":{"type":"string","maxLength":128,"description":"The working directory for the container process"},"metrics":{"type":"object","properties":{"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"}},"additionalProperties":false,"description":"Prometheus metrics configuration for the container"},"port":{"type":"integer","description":"The port in the container which receives external traffic or traffic from other workloads. Only one container is allowed to specify a port."},"ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false},"description":"The ports in the container which can receive internal and external traffic.  For serverless workloads only the first port will be used."},"memory":{"type":"string","maxLength":20,"default":"128Mi","description":"reserved memory of the workload when capacityAI is disabled. maximum memory when CapacityAI is enabled."},"readinessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is ready to receive additional traffic."},"livenessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is healthy or should be restarted."},"cpu":{"type":"string","maxLength":20,"default":"50m","description":"reserved CPU of the workload when capacityAI is disabled. maximum CPU when CapacityAI is enabled."},"minCpu":{"type":"string","maxLength":20,"description":"Minimum CPU when capacityAI is enabled."},"minMemory":{"type":"string","maxLength":20,"description":"Minimum memory when capacityAI is enabled"},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD"},"gpu":{"type":"object","properties":{"nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}},"additionalProperties":false,"description":"Reserved GPU resources for the workload."},"inheritEnv":{"type":"boolean","description":"Enables inheritance of GVC environment variables. A variable in spec.env will override a GVC variable with the same name."},"command":{"type":"string","maxLength":256,"description":"Optionally override the entrypoint"},"args":{"type":"array","items":{"type":"string"},"description":"Command line arguments passed to the container at runtime. Replaces the CMD arguments of the running container. It is an ordered list."},"lifecycle":{"type":"object","properties":{"postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}},"additionalProperties":false,"description":"Lifecycle hooks for the container"},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false},"description":"Mount Object Store (S3, GCS, AzureBlob) buckets as file system"}},"additionalProperties":false},"description":"List of containers that make up the workload"},"$drop/containers":{"type":"array","items":{"type":"string"}},"$append/containers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":64,"description":"The name of the container."},"image":{"type":"string","description":"The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud)."},"workingDir":{"type":"string","maxLength":128,"description":"The working directory for the container process"},"metrics":{"type":"object","properties":{"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"}},"additionalProperties":false,"description":"Prometheus metrics configuration for the container"},"port":{"type":"integer","description":"The port in the container which receives external traffic or traffic from other workloads. Only one container is allowed to specify a port."},"ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false},"description":"The ports in the container which can receive internal and external traffic.  For serverless workloads only the first port will be used."},"memory":{"type":"string","maxLength":20,"default":"128Mi","description":"reserved memory of the workload when capacityAI is disabled. maximum memory when CapacityAI is enabled."},"readinessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is ready to receive additional traffic."},"livenessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is healthy or should be restarted."},"cpu":{"type":"string","maxLength":20,"default":"50m","description":"reserved CPU of the workload when capacityAI is disabled. maximum CPU when CapacityAI is enabled."},"minCpu":{"type":"string","maxLength":20,"description":"Minimum CPU when capacityAI is enabled."},"minMemory":{"type":"string","maxLength":20,"description":"Minimum memory when capacityAI is enabled"},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD"},"gpu":{"type":"object","properties":{"nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}},"additionalProperties":false,"description":"Reserved GPU resources for the workload."},"inheritEnv":{"type":"boolean","description":"Enables inheritance of GVC environment variables. A variable in spec.env will override a GVC variable with the same name."},"command":{"type":"string","maxLength":256,"description":"Optionally override the entrypoint"},"args":{"type":"array","items":{"type":"string"},"description":"Command line arguments passed to the container at runtime. Replaces the CMD arguments of the running container. It is an ordered list."},"lifecycle":{"type":"object","properties":{"postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}},"additionalProperties":false,"description":"Lifecycle hooks for the container"},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false},"description":"Mount Object Store (S3, GCS, AzureBlob) buckets as file system"}},"additionalProperties":false}},"$patch/containers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["image","workingDir","metrics","port","ports","memory","readinessProbe","livenessProbe","cpu","minCpu","minMemory","env","gpu","inheritEnv","command","args","lifecycle","volumes"]}},"name":{"type":"string","maxLength":64,"description":"The name of the container."},"image":{"type":"string","description":"The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud)."},"workingDir":{"type":"string","maxLength":128,"description":"The working directory for the container process"},"metrics":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["port","path","dropMetrics"]}},"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"},"$drop/dropMetrics":{"type":"array","items":{"type":"string"}},"$append/dropMetrics":{"type":"array","items":{"type":"string"}},"$retain/dropMetrics":{"type":"array","items":{"type":"string"}}}},"$replace/metrics":{"type":"object","properties":{"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"}},"additionalProperties":false,"description":"Prometheus metrics configuration for the container"},"port":{"type":"integer","description":"The port in the container which receives external traffic or traffic from other workloads. Only one container is allowed to specify a port."},"ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false},"description":"The ports in the container which can receive internal and external traffic.  For serverless workloads only the first port will be used."},"$drop/ports":{"type":"array","items":{"type":"string"}},"$append/ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false}},"$patch/ports":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["protocol","number"]}},"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}}}},"$retain/ports":{"type":"array","items":{"type":"string"}},"memory":{"type":"string","maxLength":20,"default":"128Mi","description":"reserved memory of the workload when capacityAI is disabled. maximum memory when CapacityAI is enabled."},"readinessProbe":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exec","grpc","tcpSocket","httpGet","initialDelaySeconds","periodSeconds","timeoutSeconds","successThreshold","failureThreshold"]}},"exec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["command"]}},"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"},"$drop/command":{"type":"array","items":{"type":"string"}},"$append/command":{"type":"array","items":{"type":"string"}},"$retain/command":{"type":"array","items":{"type":"string"}}}},"$replace/exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["port"]}},"port":{"type":"integer","description":"Port to perform the gRPC health check on"}}},"$replace/grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["port"]}},"port":{"type":"integer","description":"Port to perform the TCP socket check on"}}},"$replace/tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["path","port","httpHeaders","scheme"]}},"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"$drop/httpHeaders":{"type":"array","items":{"type":"string"}},"$append/httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false}},"$patch/httpHeaders":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["value"]}},"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}}}},"$retain/httpHeaders":{"type":"array","items":{"type":"string"}},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}}},"$replace/httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}}},"$replace/readinessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is ready to receive additional traffic."},"livenessProbe":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exec","grpc","tcpSocket","httpGet","initialDelaySeconds","periodSeconds","timeoutSeconds","successThreshold","failureThreshold"]}},"exec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["command"]}},"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"},"$drop/command":{"type":"array","items":{"type":"string"}},"$append/command":{"type":"array","items":{"type":"string"}},"$retain/command":{"type":"array","items":{"type":"string"}}}},"$replace/exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["port"]}},"port":{"type":"integer","description":"Port to perform the gRPC health check on"}}},"$replace/grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["port"]}},"port":{"type":"integer","description":"Port to perform the TCP socket check on"}}},"$replace/tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["path","port","httpHeaders","scheme"]}},"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"$drop/httpHeaders":{"type":"array","items":{"type":"string"}},"$append/httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false}},"$patch/httpHeaders":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["value"]}},"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}}}},"$retain/httpHeaders":{"type":"array","items":{"type":"string"}},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}}},"$replace/httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}}},"$replace/livenessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is healthy or should be restarted."},"cpu":{"type":"string","maxLength":20,"default":"50m","description":"reserved CPU of the workload when capacityAI is disabled. maximum CPU when CapacityAI is enabled."},"minCpu":{"type":"string","maxLength":20,"description":"Minimum CPU when capacityAI is enabled."},"minMemory":{"type":"string","maxLength":20,"description":"Minimum memory when capacityAI is enabled"},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD"},"$drop/env":{"type":"array","items":{"type":"string"}},"$append/env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false}},"$patch/env":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["value"]}},"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}}}},"$retain/env":{"type":"array","items":{"type":"string"}},"gpu":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["nvidia","custom"]}},"nvidia":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["model","quantity"]}},"model":{"type":"object","properties":{}},"$replace/model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}}},"$replace/nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["resource","runtimeClass","quantity"]}},"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}}},"$replace/custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}}},"$replace/gpu":{"type":"object","properties":{"nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}},"additionalProperties":false,"description":"Reserved GPU resources for the workload."},"inheritEnv":{"type":"boolean","description":"Enables inheritance of GVC environment variables. A variable in spec.env will override a GVC variable with the same name."},"command":{"type":"string","maxLength":256,"description":"Optionally override the entrypoint"},"args":{"type":"array","items":{"type":"string"},"description":"Command line arguments passed to the container at runtime. Replaces the CMD arguments of the running container. It is an ordered list."},"$drop/args":{"type":"array","items":{"type":"string"}},"$append/args":{"type":"array","items":{"type":"string"}},"$retain/args":{"type":"array","items":{"type":"string"}},"lifecycle":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["postStart","preStop"]}},"postStart":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exec"]}},"exec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["command"]}},"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."},"$drop/command":{"type":"array","items":{"type":"string"}},"$append/command":{"type":"array","items":{"type":"string"}},"$retain/command":{"type":"array","items":{"type":"string"}}}},"$replace/exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}}},"$replace/postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exec"]}},"exec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["command"]}},"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."},"$drop/command":{"type":"array","items":{"type":"string"}},"$append/command":{"type":"array","items":{"type":"string"}},"$retain/command":{"type":"array","items":{"type":"string"}}}},"$replace/exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}}},"$replace/preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}}},"$replace/lifecycle":{"type":"object","properties":{"postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}},"additionalProperties":false,"description":"Lifecycle hooks for the container"},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false},"description":"Mount Object Store (S3, GCS, AzureBlob) buckets as file system"},"$drop/volumes":{"type":"array","items":{"type":"string"}},"$append/volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}},"$patch/volumes":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["uri","recoveryPolicy","path"]}},"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}}}},"$retain/volumes":{"type":"array","items":{"type":"string"}}}}},"$retain/containers":{"type":"array","items":{"type":"string"}},"firewallConfig":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["external","internal"]}},"external":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["inboundAllowCIDR","inboundBlockedCIDR","outboundAllowHostname","outboundAllowPort","outboundAllowCIDR","outboundBlockedCIDR","http"]}},"inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"$drop/inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"$append/inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"$retain/inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"$drop/inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"$append/inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"$retain/inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"},"description":"The list of public hostnames that this workload is allowed to reach. No outbound access is allowed by default. A wildcard '*' is allowed on the prefix of the hostname only, ex: '*.amazonaws.com'. Use 'outboundAllowCIDR' to allow access to all external websites (not recommended). The ports 80, 443 & 445 are allowed by default. This can be modified using the outboundAllowPort setting."},"$drop/outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"}},"$append/outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"}},"$retain/outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"}},"outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false},"description":"Allow outbound access to specific ports and protocols. When not specified, communication to address ranges in outboundAllowCIDR is allowed on all ports and communication to names in outboundAllowHostname is allowed on ports 80/443."},"$drop/outboundAllowPort":{"type":"array","items":{"type":"string"}},"$append/outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false}},"$patch/outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["protocol","number"]}},"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}}}},"$retain/outboundAllowPort":{"type":"array","items":{"type":"string"}},"outboundAllowCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is allowed reach. No outbound access is allowed by default. Specify '0.0.0.0/0' to allow outbound access to the public internet (not recommended)."},"$drop/outboundAllowCIDR":{"type":"array","items":{"type":"string"}},"$append/outboundAllowCIDR":{"type":"array","items":{"type":"string"}},"$retain/outboundAllowCIDR":{"type":"array","items":{"type":"string"}},"outboundBlockedCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is NOT allowed reach. Addresses in the allow list will only be allowed if they do not exist in this list."},"$drop/outboundBlockedCIDR":{"type":"array","items":{"type":"string"}},"$append/outboundBlockedCIDR":{"type":"array","items":{"type":"string"}},"$retain/outboundBlockedCIDR":{"type":"array","items":{"type":"string"}},"http":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["inboundHeaderFilter"]}},"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."},"$drop/inboundHeaderFilter":{"type":"array","items":{"type":"string"}},"$append/inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."}},"$patch/inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","allowedValues","blockedValues"]}},"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"$drop/allowedValues":{"type":"array","items":{"type":"string"}},"$append/allowedValues":{"type":"array","items":{"type":"string"}},"$retain/allowedValues":{"type":"array","items":{"type":"string"}},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."},"$drop/blockedValues":{"type":"array","items":{"type":"string"}},"$append/blockedValues":{"type":"array","items":{"type":"string"}},"$retain/blockedValues":{"type":"array","items":{"type":"string"}}}}},"$retain/inboundHeaderFilter":{"type":"array","items":{"type":"string"}}}},"$replace/http":{"type":"object","properties":{"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."}},"additionalProperties":false,"description":"firewall options for HTTP workloads"}}},"$replace/external":{"type":"object","properties":{"inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"},"description":"The list of public hostnames that this workload is allowed to reach. No outbound access is allowed by default. A wildcard '*' is allowed on the prefix of the hostname only, ex: '*.amazonaws.com'. Use 'outboundAllowCIDR' to allow access to all external websites (not recommended). The ports 80, 443 & 445 are allowed by default. This can be modified using the outboundAllowPort setting."},"outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false},"description":"Allow outbound access to specific ports and protocols. When not specified, communication to address ranges in outboundAllowCIDR is allowed on all ports and communication to names in outboundAllowHostname is allowed on ports 80/443."},"outboundAllowCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is allowed reach. No outbound access is allowed by default. Specify '0.0.0.0/0' to allow outbound access to the public internet (not recommended)."},"outboundBlockedCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is NOT allowed reach. Addresses in the allow list will only be allowed if they do not exist in this list."},"http":{"type":"object","properties":{"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."}},"additionalProperties":false,"description":"firewall options for HTTP workloads"}},"additionalProperties":false,"description":"The external firewall is used to control access to and from the public internet."},"internal":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["inboundAllowType","inboundAllowWorkload"]}},"inboundAllowType":{"type":"string","enum":["none","same-gvc","same-org","workload-list"],"default":"none","description":"Used to control the internal firewall configuration and mutual tls. 'none': no access is allowed between this workload and other workloads on Control Plane. 'same-gvc': workloads running on the same Global Virtual Cloud are allowed to access this workload internally. 'same-org': workloads running on the same Control Plane Organization are allowed to access this workload internally. 'workload-list': specific workloads provided in the 'inboundAllowWorkload' array are allowed to access this workload internally."},"inboundAllowWorkload":{"type":"array","items":{"type":"string"},"description":"A list of specific workloads which are allowed to access this workload internally."},"$drop/inboundAllowWorkload":{"type":"array","items":{"type":"string"}},"$append/inboundAllowWorkload":{"type":"array","items":{"type":"string"}},"$retain/inboundAllowWorkload":{"type":"array","items":{"type":"string"}}}},"$replace/internal":{"type":"object","properties":{"inboundAllowType":{"type":"string","enum":["none","same-gvc","same-org","workload-list"],"default":"none","description":"Used to control the internal firewall configuration and mutual tls. 'none': no access is allowed between this workload and other workloads on Control Plane. 'same-gvc': workloads running on the same Global Virtual Cloud are allowed to access this workload internally. 'same-org': workloads running on the same Control Plane Organization are allowed to access this workload internally. 'workload-list': specific workloads provided in the 'inboundAllowWorkload' array are allowed to access this workload internally."},"inboundAllowWorkload":{"type":"array","items":{"type":"string"},"description":"A list of specific workloads which are allowed to access this workload internally."}},"additionalProperties":false,"description":"The internal firewall is used to control access between workloads."}}},"$replace/firewallConfig":{"type":"object","properties":{"external":{"type":"object","properties":{"inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"},"description":"The list of public hostnames that this workload is allowed to reach. No outbound access is allowed by default. A wildcard '*' is allowed on the prefix of the hostname only, ex: '*.amazonaws.com'. Use 'outboundAllowCIDR' to allow access to all external websites (not recommended). The ports 80, 443 & 445 are allowed by default. This can be modified using the outboundAllowPort setting."},"outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false},"description":"Allow outbound access to specific ports and protocols. When not specified, communication to address ranges in outboundAllowCIDR is allowed on all ports and communication to names in outboundAllowHostname is allowed on ports 80/443."},"outboundAllowCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is allowed reach. No outbound access is allowed by default. Specify '0.0.0.0/0' to allow outbound access to the public internet (not recommended)."},"outboundBlockedCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is NOT allowed reach. Addresses in the allow list will only be allowed if they do not exist in this list."},"http":{"type":"object","properties":{"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."}},"additionalProperties":false,"description":"firewall options for HTTP workloads"}},"additionalProperties":false,"description":"The external firewall is used to control access to and from the public internet."},"internal":{"type":"object","properties":{"inboundAllowType":{"type":"string","enum":["none","same-gvc","same-org","workload-list"],"default":"none","description":"Used to control the internal firewall configuration and mutual tls. 'none': no access is allowed between this workload and other workloads on Control Plane. 'same-gvc': workloads running on the same Global Virtual Cloud are allowed to access this workload internally. 'same-org': workloads running on the same Control Plane Organization are allowed to access this workload internally. 'workload-list': specific workloads provided in the 'inboundAllowWorkload' array are allowed to access this workload internally."},"inboundAllowWorkload":{"type":"array","items":{"type":"string"},"description":"A list of specific workloads which are allowed to access this workload internally."}},"additionalProperties":false,"description":"The internal firewall is used to control access between workloads."}},"additionalProperties":false,"description":"Optional control of inbound and outbound access to the workload for external (public) and internal (service to service) traffic. Access is restricted by default."},"defaultOptions":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["autoscaling","timeoutSeconds","capacityAI","capacityAIUpdateMinutes","spot","debug","suspend","multiZone"]}},"autoscaling":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["metric","multi","metricPercentile","target","maxScale","minScale","scaleToZeroDelay","maxConcurrency","keda"]}},"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"$drop/multi":{"type":"array","items":{"type":"string"}},"$append/multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"$patch/multi":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["metric","target"]}},"metric":{"type":"object","properties":{}},"$replace/metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}}}},"$retain/multi":{"type":"array","items":{"type":"string"}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["triggers","advanced","fallback","pollingInterval","cooldownPeriod","initialCooldownPeriod"]}},"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"$drop/triggers":{"type":"array","items":{"type":"string"}},"$append/triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"}},"$patch/triggers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["type","metadata","useCachedMetrics","metricType","authenticationRef"]}},"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}}},"$replace/authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}}}},"$retain/triggers":{"type":"array","items":{"type":"string"}},"advanced":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["scalingModifiers"]}},"scalingModifiers":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["target","activationTarget","metricType","formula"]}},"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}}},"$replace/scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}}},"$replace/advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["failureThreshold","replicas","behavior"]}},"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}}},"$replace/fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}}},"$replace/keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}}},"$replace/autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled"]}},"enabled":{"type":"boolean"}}},"$replace/multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false}}},"$replace/defaultOptions":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."},"localOptions":{"type":"array","items":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"location":{"type":"string"}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."},"description":"Override defaultOptions for the workload in specific Control Plane Locations."},"$drop/localOptions":{"type":"array","items":{"type":"string"}},"$append/localOptions":{"type":"array","items":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"location":{"type":"string"}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."}},"$patch/localOptions":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["autoscaling","timeoutSeconds","capacityAI","capacityAIUpdateMinutes","spot","debug","suspend","multiZone","location"]}},"autoscaling":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["metric","multi","metricPercentile","target","maxScale","minScale","scaleToZeroDelay","maxConcurrency","keda"]}},"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"$drop/multi":{"type":"array","items":{"type":"string"}},"$append/multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"$patch/multi":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["metric","target"]}},"metric":{"type":"object","properties":{}},"$replace/metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}}}},"$retain/multi":{"type":"array","items":{"type":"string"}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["triggers","advanced","fallback","pollingInterval","cooldownPeriod","initialCooldownPeriod"]}},"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"$drop/triggers":{"type":"array","items":{"type":"string"}},"$append/triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"}},"$patch/triggers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["type","metadata","useCachedMetrics","metricType","authenticationRef"]}},"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}}},"$replace/authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}}}},"$retain/triggers":{"type":"array","items":{"type":"string"}},"advanced":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["scalingModifiers"]}},"scalingModifiers":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["target","activationTarget","metricType","formula"]}},"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}}},"$replace/scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}}},"$replace/advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["failureThreshold","replicas","behavior"]}},"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}}},"$replace/fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}}},"$replace/keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}}},"$replace/autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled"]}},"enabled":{"type":"boolean"}}},"$replace/multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"location":{"type":"string"}}}},"$retain/localOptions":{"type":"array","items":{"type":"string"}},"job":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["schedule","concurrencyPolicy","historyLimit","restartPolicy","activeDeadlineSeconds"]}},"schedule":{"type":"string","description":"A standard cron schedule expression (5 fields)."},"concurrencyPolicy":{"type":"string","enum":["Forbid","Replace","Allow"],"default":"Forbid","description":"Either 'Forbid', 'Replace', or 'Allow'. This determines what Control Plane will do when the schedule requires a job to start, while a prior instance of the job is still running."},"historyLimit":{"type":"integer","description":"The maximum number of completed job instances to display. This should be an integer between 1 and 10."},"restartPolicy":{"type":"string","enum":["OnFailure","Never"],"description":"Either 'OnFailure' or 'Never'. This determines what Control Plane will do when a job instance fails."},"activeDeadlineSeconds":{"type":"number","description":"The maximum number of seconds Control Plane will wait for the job to complete. If a job does not succeed or fail in the allotted time, Control Plane will stop the job, moving it into the Removed status."}}},"$replace/job":{"type":"object","properties":{"schedule":{"type":"string","description":"A standard cron schedule expression (5 fields)."},"concurrencyPolicy":{"type":"string","enum":["Forbid","Replace","Allow"],"default":"Forbid","description":"Either 'Forbid', 'Replace', or 'Allow'. This determines what Control Plane will do when the schedule requires a job to start, while a prior instance of the job is still running."},"historyLimit":{"type":"integer","description":"The maximum number of completed job instances to display. This should be an integer between 1 and 10."},"restartPolicy":{"type":"string","enum":["OnFailure","Never"],"description":"Either 'OnFailure' or 'Never'. This determines what Control Plane will do when a job instance fails."},"activeDeadlineSeconds":{"type":"number","description":"The maximum number of seconds Control Plane will wait for the job to complete. If a job does not succeed or fail in the allotted time, Control Plane will stop the job, moving it into the Removed status."}},"additionalProperties":false,"description":"Job configuration for cron workloads"},"sidecar":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["envoy"]}},"envoy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["accessLog","clusters","excludedExternalAuth","excludedRateLimit","http","network","volumes"]}},"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"$drop/accessLog":{"type":"array","items":{"type":"string"}},"$append/accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"$patch/accessLog":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["priority","excludedWorkloads","typed_config"]}},"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"$drop/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$append/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$retain/excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["@type","common_config","additional_request_headers_to_log","additional_response_headers_to_log","additional_response_trailers_to_log"]}},"@type":{"type":"object","properties":{}},"$replace/@type":{"type":"object"},"common_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["log_name","grpc_service","transport_api_version","buffer_flush_interval","buffer_size_bytes","filter_state_objects_to_log","grpc_stream_retry_policy"]}},"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["envoy_grpc","google_grpc","timeout","initial_metadata"]}},"envoy_grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cluster_name","authority","retry_policy"]}},"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["retry_back_off","num_retries"]}},"retry_back_off":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["base_interval","max_interval"]}},"$replace/base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"base_interval":{"oneOf":[]},"$replace/max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[]}}},"$replace/retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}}},"$replace/retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}}},"$replace/envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["target_uri","channel_credentials","call_credentials","stat_prefix","credentials_factory_name","config"]}},"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["ssl_credentials","google_default"]}},"ssl_credentials":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["root_certs","private_key","cert_chain"]}},"root_certs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}}},"$replace/ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{}},"$replace/google_default":{"type":"object","properties":{},"additionalProperties":false}}},"$replace/channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$drop/call_credentials":{"type":"array","items":{"type":"string"}},"$append/call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$patch/call_credentials":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["access_token","google_compute_engine","google_refresh_token","service_account_jwt_access","google_iam","from_plugin","sts_service"]}},"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{}},"$replace/google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["json_key","token_lifetime_seconds"]}},"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}}},"$replace/service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["authorization_token","authority_selector"]}},"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}}},"$replace/google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["token_exchange_service_uri","resource","audience","scope","requested_token_type","subject_token_path","subject_token_type","actor_token_path","actor_token_type"]}},"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}}},"$replace/sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}}}},"$retain/call_credentials":{"type":"array","items":{"type":"string"}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object","properties":{}},"$replace/config":{"type":"object"}}},"$replace/google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"$replace/timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"timeout":{"oneOf":[]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}},"$drop/initial_metadata":{"type":"array","items":{"type":"string"}},"$append/initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}},"$patch/initial_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","raw_value"]}},"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}}}},"$retain/initial_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"$replace/buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_flush_interval":{"oneOf":[]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$drop/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$append/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$retain/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["retry_back_off","num_retries"]}},"retry_back_off":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["base_interval","max_interval"]}},"$replace/base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"base_interval":{"oneOf":[]},"$replace/max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[]}}},"$replace/retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}}},"$replace/grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}}},"$replace/common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}}},"$replace/typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"$retain/accessLog":{"type":"array","items":{"type":"string"}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"$drop/clusters":{"type":"array","items":{"type":"string"}},"$append/clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"$patch/clusters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["excludedWorkloads","transport_socket_matches","alt_stat_name","type","cluster_type","eds_cluster_config","connect_timeout","per_connection_buffer_limit_bytes","lb_policy","load_assignment","health_checks","max_requests_per_connection","circuit_breakers","upstream_http_protocol_options","common_http_protocol_options","http_protocol_options","http2_protocol_options","typed_extension_protocol_options","dns_refresh_rate","dns_failure_refresh_rate","respect_dns_ttl","dns_lookup_family","dns_resolvers","use_tcp_for_dns_lookups","dns_resolution_config","typed_dns_resolver_config","wait_for_warm_on_init","outlier_detection","cleanup_interval","upstream_bind_config","lb_subset_config","ring_hash_lb_config","maglev_lb_config","least_request_lb_config","common_lb_config","transport_socket","metadata","protocol_selection","upstream_connection_options","close_connections_on_host_health_failure","ignore_health_on_host_removal","filters","load_balancing_policy","track_timeout_budgets","upstream_config","track_cluster_stats","preconnect_policy","connection_pool_per_downstream_connection"]}},"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"$drop/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$append/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$retain/excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object","properties":{}},"$replace/transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object","properties":{}},"$replace/alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object","properties":{}},"$replace/cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object","properties":{}},"$replace/eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object","properties":{}},"$replace/connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object","properties":{}},"$replace/per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object","properties":{}},"$replace/lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cluster_name","endpoints","policy"]}},"cluster_name":{"type":"string"},"endpoints":{"type":"object","properties":{}},"$replace/endpoints":{"type":"object"},"policy":{"type":"object","properties":{}},"$replace/policy":{"type":"object"}}},"$replace/load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object","properties":{}},"$replace/health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object","properties":{}},"$replace/max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object","properties":{}},"$replace/circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object","properties":{}},"$replace/upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object","properties":{}},"$replace/common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object","properties":{}},"$replace/http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object","properties":{}},"$replace/http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object","properties":{}},"$replace/typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object","properties":{}},"$replace/dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object","properties":{}},"$replace/dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object","properties":{}},"$replace/respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object","properties":{}},"$replace/dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object","properties":{}},"$replace/dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object","properties":{}},"$replace/use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object","properties":{}},"$replace/dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object","properties":{}},"$replace/typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object","properties":{}},"$replace/wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object","properties":{}},"$replace/outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object","properties":{}},"$replace/cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object","properties":{}},"$replace/upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object","properties":{}},"$replace/lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object","properties":{}},"$replace/ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object","properties":{}},"$replace/maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object","properties":{}},"$replace/least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object","properties":{}},"$replace/common_lb_config":{"type":"object"},"transport_socket":{"type":"object","properties":{}},"$replace/transport_socket":{"type":"object"},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object"},"protocol_selection":{"type":"object","properties":{}},"$replace/protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object","properties":{}},"$replace/upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object","properties":{}},"$replace/close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object","properties":{}},"$replace/ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object","properties":{}},"$replace/filters":{"type":"object"},"load_balancing_policy":{"type":"object","properties":{}},"$replace/load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object","properties":{}},"$replace/track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object","properties":{}},"$replace/upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object","properties":{}},"$replace/track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object","properties":{}},"$replace/preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object","properties":{}},"$replace/connection_pool_per_downstream_connection":{"type":"object"}}}},"$retain/clusters":{"type":"array","items":{"type":"string"}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$drop/excludedExternalAuth":{"type":"array","items":{"type":"string"}},"$append/excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$patch/excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","port","svcPort"]}},"match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["prefix","path","safe_regex","path_separated_prefix","path_match_policy","case_sensitive","runtime_fraction","headers","query_parameters","grpc","tls_context","dynamic_metadata"]}},"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["default_value","runtime_key"]}},"default_value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["numerator","denominator"]}},"numerator":{"type":"integer"},"denominator":{"type":"integer"}}},"$replace/default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}}},"$replace/runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$drop/headers":{"type":"array","items":{"type":"string"}},"$append/headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$patch/headers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["safe_regex_match","range_match","present_match","string_match","invert_match","treat_missing_header_as_empty"]}},"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"integer"},"end":{"type":"integer"}}},"$replace/range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}}}},"$retain/headers":{"type":"array","items":{"type":"string"}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$drop/query_parameters":{"type":"array","items":{"type":"string"}},"$append/query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$patch/query_parameters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["string_match","present_match"]}},"name":{"type":"string"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}}}},"$retain/query_parameters":{"type":"array","items":{"type":"string"}},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$drop/dynamic_metadata":{"type":"array","items":{"type":"string"}},"$append/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$patch/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filter","path","value","invert"]}},"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$drop/path":{"type":"array","items":{"type":"string"}},"$append/path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$patch/path":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key"]}},"key":{"type":"string"}}}},"$retain/path":{"type":"array","items":{"type":"string"}},"value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["null_match","double_match","string_match","bool_match","present_match"]}},"null_match":{"type":"object","properties":{}},"$replace/null_match":{"type":"object"},"double_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["range","exact"]}},"range":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"number"},"end":{"type":"number"}}},"$replace/range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}}},"$replace/double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}}},"$replace/value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}}}},"$retain/dynamic_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}}}},"$retain/excludedExternalAuth":{"type":"array","items":{"type":"string"}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$drop/excludedRateLimit":{"type":"array","items":{"type":"string"}},"$append/excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$patch/excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","port","svcPort"]}},"match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["prefix","path","safe_regex","path_separated_prefix","path_match_policy","case_sensitive","runtime_fraction","headers","query_parameters","grpc","tls_context","dynamic_metadata"]}},"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["default_value","runtime_key"]}},"default_value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["numerator","denominator"]}},"numerator":{"type":"integer"},"denominator":{"type":"integer"}}},"$replace/default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}}},"$replace/runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$drop/headers":{"type":"array","items":{"type":"string"}},"$append/headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$patch/headers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["safe_regex_match","range_match","present_match","string_match","invert_match","treat_missing_header_as_empty"]}},"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"integer"},"end":{"type":"integer"}}},"$replace/range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}}}},"$retain/headers":{"type":"array","items":{"type":"string"}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$drop/query_parameters":{"type":"array","items":{"type":"string"}},"$append/query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$patch/query_parameters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["string_match","present_match"]}},"name":{"type":"string"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}}}},"$retain/query_parameters":{"type":"array","items":{"type":"string"}},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$drop/dynamic_metadata":{"type":"array","items":{"type":"string"}},"$append/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$patch/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filter","path","value","invert"]}},"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$drop/path":{"type":"array","items":{"type":"string"}},"$append/path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$patch/path":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key"]}},"key":{"type":"string"}}}},"$retain/path":{"type":"array","items":{"type":"string"}},"value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["null_match","double_match","string_match","bool_match","present_match"]}},"null_match":{"type":"object","properties":{}},"$replace/null_match":{"type":"object"},"double_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["range","exact"]}},"range":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"number"},"end":{"type":"number"}}},"$replace/range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}}},"$replace/double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}}},"$replace/value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}}}},"$retain/dynamic_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}}}},"$retain/excludedRateLimit":{"type":"array","items":{"type":"string"}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$drop/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$append/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$retain/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"$drop/network":{"type":"array","items":{"type":"string"}},"$append/network":{"type":"array","items":{"type":"object"}},"$patch/network":{"type":"array","items":{"type":"object","properties":{}}},"$retain/network":{"type":"array","items":{"type":"string"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}},"$drop/volumes":{"type":"array","items":{"type":"string"}},"$append/volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}},"$patch/volumes":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["uri","recoveryPolicy","path"]}},"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}}}},"$retain/volumes":{"type":"array","items":{"type":"string"}}}},"$replace/envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"description":"Envoy proxy filters"}}},"$replace/sidecar":{"type":"object","properties":{"envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"description":"Envoy proxy filters"}},"additionalProperties":false,"description":"Sidecar container configuration"},"supportDynamicTags":{"type":"boolean","description":"If this is enabled, Control Plane will automatically redeploy your workload when one of the container images is updated in the container registry."},"rolloutOptions":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minReadySeconds","maxUnavailableReplicas","maxSurgeReplicas","scalingPolicy","terminationGracePeriodSeconds"]}},"minReadySeconds":{"type":"integer","description":"The minimum number of seconds a container must run without crashing to be considered available"},"maxUnavailableReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be unavailable during a rollout"},"maxSurgeReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be created above the desired count during a rollout"},"scalingPolicy":{"type":"string","enum":["OrderedReady","Parallel"],"default":"OrderedReady","description":"Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel)"},"terminationGracePeriodSeconds":{"type":"number","description":"The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.\nThis includes the time it takes for the preStop hook to run."}}},"$replace/rolloutOptions":{"type":"object","properties":{"minReadySeconds":{"type":"integer","description":"The minimum number of seconds a container must run without crashing to be considered available"},"maxUnavailableReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be unavailable during a rollout"},"maxSurgeReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be created above the desired count during a rollout"},"scalingPolicy":{"type":"string","enum":["OrderedReady","Parallel"],"default":"OrderedReady","description":"Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel)"},"terminationGracePeriodSeconds":{"type":"number","description":"The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.\nThis includes the time it takes for the preStop hook to run."}},"additionalProperties":false,"description":"Configuration for how workload updates are rolled out"},"securityOptions":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filesystemGroupId","runAsUser"]}},"filesystemGroupId":{"type":"integer","description":"The group id assigned to any mounted volume"},"runAsUser":{"type":"integer","description":"The user id assigned to all container processes"}}},"$replace/securityOptions":{"type":"object","properties":{"filesystemGroupId":{"type":"integer","description":"The group id assigned to any mounted volume"},"runAsUser":{"type":"integer","description":"The user id assigned to all container processes"}},"additionalProperties":false,"description":"Security context for the workload"},"loadBalancer":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["direct","geoLocation","replicaDirect"]}},"direct":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled","ports","ipSet"]}},"enabled":{"type":"boolean","description":"when disabled, this load balancer will be stopped"},"ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false},"description":"list of ports that will be exposed by this load balancer"},"$drop/ports":{"type":"array","items":{"type":"string"}},"$append/ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false}},"$patch/ports":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["externalPort","protocol","scheme","containerPort"]}},"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}}}},"$retain/ports":{"type":"array","items":{"type":"string"}},"ipSet":{"type":"string","description":"IP set to use for dedicated IPs"}}},"$replace/direct":{"type":"object","properties":{"enabled":{"type":"boolean","description":"when disabled, this load balancer will be stopped"},"ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false},"description":"list of ports that will be exposed by this load balancer"},"ipSet":{"type":"string","description":"IP set to use for dedicated IPs"}},"additionalProperties":false,"description":"direct load balancers are created in each location that a workload is running in and are configured for the standard endpoints of the workload. Customers are responsible for configuring the workload with certificates if TLS is required"},"geoLocation":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled","headers"]}},"enabled":{"type":"boolean","description":"When enabled, geo location headers will be included on inbound http requests. Existing headers will be replaced."},"headers":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["asn","city","country","region"]}},"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}}},"$replace/headers":{"type":"object","properties":{"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}},"additionalProperties":false,"description":"Custom header names for geo location data"}}},"$replace/geoLocation":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, geo location headers will be included on inbound http requests. Existing headers will be replaced."},"headers":{"type":"object","properties":{"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}},"additionalProperties":false,"description":"Custom header names for geo location data"}},"additionalProperties":false,"description":"Geo location header configuration"},"replicaDirect":{"type":"boolean","description":"When enabled, individual replicas of the workload can be reached directly using the subdomain prefix replica-<index>.\nFor example, replica-0.my-workload.my-gvc.cpln.local or replica-0.my-workload-<gvc-alias>.cpln.app\nCan only be used with stateful workloads."}}},"$replace/loadBalancer":{"type":"object","properties":{"direct":{"type":"object","properties":{"enabled":{"type":"boolean","description":"when disabled, this load balancer will be stopped"},"ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false},"description":"list of ports that will be exposed by this load balancer"},"ipSet":{"type":"string","description":"IP set to use for dedicated IPs"}},"additionalProperties":false,"description":"direct load balancers are created in each location that a workload is running in and are configured for the standard endpoints of the workload. Customers are responsible for configuring the workload with certificates if TLS is required"},"geoLocation":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, geo location headers will be included on inbound http requests. Existing headers will be replaced."},"headers":{"type":"object","properties":{"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}},"additionalProperties":false,"description":"Custom header names for geo location data"}},"additionalProperties":false,"description":"Geo location header configuration"},"replicaDirect":{"type":"boolean","description":"When enabled, individual replicas of the workload can be reached directly using the subdomain prefix replica-<index>.\nFor example, replica-0.my-workload.my-gvc.cpln.local or replica-0.my-workload-<gvc-alias>.cpln.app\nCan only be used with stateful workloads."}},"additionalProperties":false,"description":"Load balancer configuration"},"extras":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["affinity","tolerations","topologySpreadConstraints"]}},"affinity":{"type":"object","properties":{}},"$replace/affinity":{"type":"object","description":"Kubernetes pod affinity and anti-affinity rules"},"tolerations":{"type":"array","items":{"type":"object"},"description":"Kubernetes pod tolerations for node taints"},"$drop/tolerations":{"type":"array","items":{"type":"string"}},"$append/tolerations":{"type":"array","items":{"type":"object"}},"$patch/tolerations":{"type":"array","items":{"type":"object","properties":{}}},"$retain/tolerations":{"type":"array","items":{"type":"string"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"},"description":"Kubernetes topology spread constraints for pod distribution"},"$drop/topologySpreadConstraints":{"type":"array","items":{"type":"string"}},"$append/topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"$patch/topologySpreadConstraints":{"type":"array","items":{"type":"object","properties":{}}},"$retain/topologySpreadConstraints":{"type":"array","items":{"type":"string"}}}},"$replace/extras":{"type":"object","properties":{"affinity":{"type":"object","description":"Kubernetes pod affinity and anti-affinity rules"},"tolerations":{"type":"array","items":{"type":"object"},"description":"Kubernetes pod tolerations for node taints"},"topologySpreadConstraints":{"type":"array","items":{"type":"object"},"description":"Kubernetes topology spread constraints for pod distribution"}},"additionalProperties":false,"description":"Additional Kubernetes customizations for BYOK"},"requestRetryPolicy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["attempts","retryOn"]}},"attempts":{"type":"integer","description":"Maximum number of retry attempts for failed requests"},"retryOn":{"type":"array","items":{"type":"string","maxLength":32},"description":"List of conditions that trigger request retries (e.g., 5xx, gateway-error, connect-failure, unavailable)"},"$drop/retryOn":{"type":"array","items":{"type":"string","maxLength":32}},"$append/retryOn":{"type":"array","items":{"type":"string","maxLength":32}},"$retain/retryOn":{"type":"array","items":{"type":"string","maxLength":32}}}},"$replace/requestRetryPolicy":{"type":"object","properties":{"attempts":{"type":"integer","description":"Maximum number of retry attempts for failed requests"},"retryOn":{"type":"array","items":{"type":"string","maxLength":32},"description":"List of conditions that trigger request retries (e.g., 5xx, gateway-error, connect-failure, unavailable)"}},"additionalProperties":false,"description":"Policy for retrying failed requests"}}},"$replace/spec":{"type":"object","properties":{"type":{"type":"string","enum":["serverless","standard","cron","stateful"],"default":"serverless","description":"Type of workload: standard (always running), cron (scheduled jobs), stateful (persistent state), or serverless (rapid autoscaling)"},"identityLink":{"type":"string","description":"The identityLink is used as the access scope for 3rd party cloud resources. A single identity can provide access to multiple cloud providers."},"containers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":64,"description":"The name of the container."},"image":{"type":"string","description":"The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud)."},"workingDir":{"type":"string","maxLength":128,"description":"The working directory for the container process"},"metrics":{"type":"object","properties":{"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"}},"additionalProperties":false,"description":"Prometheus metrics configuration for the container"},"port":{"type":"integer","description":"The port in the container which receives external traffic or traffic from other workloads. Only one container is allowed to specify a port."},"ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false},"description":"The ports in the container which can receive internal and external traffic.  For serverless workloads only the first port will be used."},"memory":{"type":"string","maxLength":20,"default":"128Mi","description":"reserved memory of the workload when capacityAI is disabled. maximum memory when CapacityAI is enabled."},"readinessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is ready to receive additional traffic."},"livenessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is healthy or should be restarted."},"cpu":{"type":"string","maxLength":20,"default":"50m","description":"reserved CPU of the workload when capacityAI is disabled. maximum CPU when CapacityAI is enabled."},"minCpu":{"type":"string","maxLength":20,"description":"Minimum CPU when capacityAI is enabled."},"minMemory":{"type":"string","maxLength":20,"description":"Minimum memory when capacityAI is enabled"},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD"},"gpu":{"type":"object","properties":{"nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}},"additionalProperties":false,"description":"Reserved GPU resources for the workload."},"inheritEnv":{"type":"boolean","description":"Enables inheritance of GVC environment variables. A variable in spec.env will override a GVC variable with the same name."},"command":{"type":"string","maxLength":256,"description":"Optionally override the entrypoint"},"args":{"type":"array","items":{"type":"string"},"description":"Command line arguments passed to the container at runtime. Replaces the CMD arguments of the running container. It is an ordered list."},"lifecycle":{"type":"object","properties":{"postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}},"additionalProperties":false,"description":"Lifecycle hooks for the container"},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false},"description":"Mount Object Store (S3, GCS, AzureBlob) buckets as file system"}},"additionalProperties":false},"description":"List of containers that make up the workload"},"firewallConfig":{"type":"object","properties":{"external":{"type":"object","properties":{"inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"},"description":"The list of public hostnames that this workload is allowed to reach. No outbound access is allowed by default. A wildcard '*' is allowed on the prefix of the hostname only, ex: '*.amazonaws.com'. Use 'outboundAllowCIDR' to allow access to all external websites (not recommended). The ports 80, 443 & 445 are allowed by default. This can be modified using the outboundAllowPort setting."},"outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false},"description":"Allow outbound access to specific ports and protocols. When not specified, communication to address ranges in outboundAllowCIDR is allowed on all ports and communication to names in outboundAllowHostname is allowed on ports 80/443."},"outboundAllowCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is allowed reach. No outbound access is allowed by default. Specify '0.0.0.0/0' to allow outbound access to the public internet (not recommended)."},"outboundBlockedCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is NOT allowed reach. Addresses in the allow list will only be allowed if they do not exist in this list."},"http":{"type":"object","properties":{"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."}},"additionalProperties":false,"description":"firewall options for HTTP workloads"}},"additionalProperties":false,"description":"The external firewall is used to control access to and from the public internet."},"internal":{"type":"object","properties":{"inboundAllowType":{"type":"string","enum":["none","same-gvc","same-org","workload-list"],"default":"none","description":"Used to control the internal firewall configuration and mutual tls. 'none': no access is allowed between this workload and other workloads on Control Plane. 'same-gvc': workloads running on the same Global Virtual Cloud are allowed to access this workload internally. 'same-org': workloads running on the same Control Plane Organization are allowed to access this workload internally. 'workload-list': specific workloads provided in the 'inboundAllowWorkload' array are allowed to access this workload internally."},"inboundAllowWorkload":{"type":"array","items":{"type":"string"},"description":"A list of specific workloads which are allowed to access this workload internally."}},"additionalProperties":false,"description":"The internal firewall is used to control access between workloads."}},"additionalProperties":false,"description":"Optional control of inbound and outbound access to the workload for external (public) and internal (service to service) traffic. Access is restricted by default."},"defaultOptions":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."},"localOptions":{"type":"array","items":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"location":{"type":"string"}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."},"description":"Override defaultOptions for the workload in specific Control Plane Locations."},"job":{"type":"object","properties":{"schedule":{"type":"string","description":"A standard cron schedule expression (5 fields)."},"concurrencyPolicy":{"type":"string","enum":["Forbid","Replace","Allow"],"default":"Forbid","description":"Either 'Forbid', 'Replace', or 'Allow'. This determines what Control Plane will do when the schedule requires a job to start, while a prior instance of the job is still running."},"historyLimit":{"type":"integer","description":"The maximum number of completed job instances to display. This should be an integer between 1 and 10."},"restartPolicy":{"type":"string","enum":["OnFailure","Never"],"description":"Either 'OnFailure' or 'Never'. This determines what Control Plane will do when a job instance fails."},"activeDeadlineSeconds":{"type":"number","description":"The maximum number of seconds Control Plane will wait for the job to complete. If a job does not succeed or fail in the allotted time, Control Plane will stop the job, moving it into the Removed status."}},"additionalProperties":false,"description":"Job configuration for cron workloads"},"sidecar":{"type":"object","properties":{"envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"description":"Envoy proxy filters"}},"additionalProperties":false,"description":"Sidecar container configuration"},"supportDynamicTags":{"type":"boolean","description":"If this is enabled, Control Plane will automatically redeploy your workload when one of the container images is updated in the container registry."},"rolloutOptions":{"type":"object","properties":{"minReadySeconds":{"type":"integer","description":"The minimum number of seconds a container must run without crashing to be considered available"},"maxUnavailableReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be unavailable during a rollout"},"maxSurgeReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be created above the desired count during a rollout"},"scalingPolicy":{"type":"string","enum":["OrderedReady","Parallel"],"default":"OrderedReady","description":"Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel)"},"terminationGracePeriodSeconds":{"type":"number","description":"The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.\nThis includes the time it takes for the preStop hook to run."}},"additionalProperties":false,"description":"Configuration for how workload updates are rolled out"},"securityOptions":{"type":"object","properties":{"filesystemGroupId":{"type":"integer","description":"The group id assigned to any mounted volume"},"runAsUser":{"type":"integer","description":"The user id assigned to all container processes"}},"additionalProperties":false,"description":"Security context for the workload"},"loadBalancer":{"type":"object","properties":{"direct":{"type":"object","properties":{"enabled":{"type":"boolean","description":"when disabled, this load balancer will be stopped"},"ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false},"description":"list of ports that will be exposed by this load balancer"},"ipSet":{"type":"string","description":"IP set to use for dedicated IPs"}},"additionalProperties":false,"description":"direct load balancers are created in each location that a workload is running in and are configured for the standard endpoints of the workload. Customers are responsible for configuring the workload with certificates if TLS is required"},"geoLocation":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, geo location headers will be included on inbound http requests. Existing headers will be replaced."},"headers":{"type":"object","properties":{"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}},"additionalProperties":false,"description":"Custom header names for geo location data"}},"additionalProperties":false,"description":"Geo location header configuration"},"replicaDirect":{"type":"boolean","description":"When enabled, individual replicas of the workload can be reached directly using the subdomain prefix replica-<index>.\nFor example, replica-0.my-workload.my-gvc.cpln.local or replica-0.my-workload-<gvc-alias>.cpln.app\nCan only be used with stateful workloads."}},"additionalProperties":false,"description":"Load balancer configuration"},"extras":{"type":"object","properties":{"affinity":{"type":"object","description":"Kubernetes pod affinity and anti-affinity rules"},"tolerations":{"type":"array","items":{"type":"object"},"description":"Kubernetes pod tolerations for node taints"},"topologySpreadConstraints":{"type":"array","items":{"type":"object"},"description":"Kubernetes topology spread constraints for pod distribution"}},"additionalProperties":false,"description":"Additional Kubernetes customizations for BYOK"},"requestRetryPolicy":{"type":"object","properties":{"attempts":{"type":"integer","description":"Maximum number of retry attempts for failed requests"},"retryOn":{"type":"array","items":{"type":"string","maxLength":32},"description":"List of conditions that trigger request retries (e.g., 5xx, gateway-error, connect-failure, unavailable)"}},"additionalProperties":false,"description":"Policy for retrying failed requests"}},"additionalProperties":false,"description":"Workload specification"}}},"patch_workload_spec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["type","identityLink","containers","firewallConfig","defaultOptions","localOptions","job","sidecar","supportDynamicTags","rolloutOptions","securityOptions","loadBalancer","extras","requestRetryPolicy"]}},"type":{"type":"string","enum":["serverless","standard","cron","stateful"],"default":"serverless","description":"Type of workload: standard (always running), cron (scheduled jobs), stateful (persistent state), or serverless (rapid autoscaling)"},"identityLink":{"type":"string","description":"The identityLink is used as the access scope for 3rd party cloud resources. A single identity can provide access to multiple cloud providers."},"containers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":64,"description":"The name of the container."},"image":{"type":"string","description":"The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud)."},"workingDir":{"type":"string","maxLength":128,"description":"The working directory for the container process"},"metrics":{"type":"object","properties":{"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"}},"additionalProperties":false,"description":"Prometheus metrics configuration for the container"},"port":{"type":"integer","description":"The port in the container which receives external traffic or traffic from other workloads. Only one container is allowed to specify a port."},"ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false},"description":"The ports in the container which can receive internal and external traffic.  For serverless workloads only the first port will be used."},"memory":{"type":"string","maxLength":20,"default":"128Mi","description":"reserved memory of the workload when capacityAI is disabled. maximum memory when CapacityAI is enabled."},"readinessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is ready to receive additional traffic."},"livenessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is healthy or should be restarted."},"cpu":{"type":"string","maxLength":20,"default":"50m","description":"reserved CPU of the workload when capacityAI is disabled. maximum CPU when CapacityAI is enabled."},"minCpu":{"type":"string","maxLength":20,"description":"Minimum CPU when capacityAI is enabled."},"minMemory":{"type":"string","maxLength":20,"description":"Minimum memory when capacityAI is enabled"},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD"},"gpu":{"type":"object","properties":{"nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}},"additionalProperties":false,"description":"Reserved GPU resources for the workload."},"inheritEnv":{"type":"boolean","description":"Enables inheritance of GVC environment variables. A variable in spec.env will override a GVC variable with the same name."},"command":{"type":"string","maxLength":256,"description":"Optionally override the entrypoint"},"args":{"type":"array","items":{"type":"string"},"description":"Command line arguments passed to the container at runtime. Replaces the CMD arguments of the running container. It is an ordered list."},"lifecycle":{"type":"object","properties":{"postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}},"additionalProperties":false,"description":"Lifecycle hooks for the container"},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false},"description":"Mount Object Store (S3, GCS, AzureBlob) buckets as file system"}},"additionalProperties":false},"description":"List of containers that make up the workload"},"$drop/containers":{"type":"array","items":{"type":"string"}},"$append/containers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":64,"description":"The name of the container."},"image":{"type":"string","description":"The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud)."},"workingDir":{"type":"string","maxLength":128,"description":"The working directory for the container process"},"metrics":{"type":"object","properties":{"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"}},"additionalProperties":false,"description":"Prometheus metrics configuration for the container"},"port":{"type":"integer","description":"The port in the container which receives external traffic or traffic from other workloads. Only one container is allowed to specify a port."},"ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false},"description":"The ports in the container which can receive internal and external traffic.  For serverless workloads only the first port will be used."},"memory":{"type":"string","maxLength":20,"default":"128Mi","description":"reserved memory of the workload when capacityAI is disabled. maximum memory when CapacityAI is enabled."},"readinessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is ready to receive additional traffic."},"livenessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is healthy or should be restarted."},"cpu":{"type":"string","maxLength":20,"default":"50m","description":"reserved CPU of the workload when capacityAI is disabled. maximum CPU when CapacityAI is enabled."},"minCpu":{"type":"string","maxLength":20,"description":"Minimum CPU when capacityAI is enabled."},"minMemory":{"type":"string","maxLength":20,"description":"Minimum memory when capacityAI is enabled"},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD"},"gpu":{"type":"object","properties":{"nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}},"additionalProperties":false,"description":"Reserved GPU resources for the workload."},"inheritEnv":{"type":"boolean","description":"Enables inheritance of GVC environment variables. A variable in spec.env will override a GVC variable with the same name."},"command":{"type":"string","maxLength":256,"description":"Optionally override the entrypoint"},"args":{"type":"array","items":{"type":"string"},"description":"Command line arguments passed to the container at runtime. Replaces the CMD arguments of the running container. It is an ordered list."},"lifecycle":{"type":"object","properties":{"postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}},"additionalProperties":false,"description":"Lifecycle hooks for the container"},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false},"description":"Mount Object Store (S3, GCS, AzureBlob) buckets as file system"}},"additionalProperties":false}},"$patch/containers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["image","workingDir","metrics","port","ports","memory","readinessProbe","livenessProbe","cpu","minCpu","minMemory","env","gpu","inheritEnv","command","args","lifecycle","volumes"]}},"name":{"type":"string","maxLength":64,"description":"The name of the container."},"image":{"type":"string","description":"The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud)."},"workingDir":{"type":"string","maxLength":128,"description":"The working directory for the container process"},"metrics":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["port","path","dropMetrics"]}},"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"},"$drop/dropMetrics":{"type":"array","items":{"type":"string"}},"$append/dropMetrics":{"type":"array","items":{"type":"string"}},"$retain/dropMetrics":{"type":"array","items":{"type":"string"}}}},"$replace/metrics":{"type":"object","properties":{"port":{"type":"integer","description":"Port where Prometheus metrics are exposed"},"path":{"type":"string","maxLength":128,"default":"/metrics","description":"HTTP path where Prometheus metrics are exposed"},"dropMetrics":{"type":"array","items":{"type":"string"},"description":"Drop metrics that match given patterns"}},"additionalProperties":false,"description":"Prometheus metrics configuration for the container"},"port":{"type":"integer","description":"The port in the container which receives external traffic or traffic from other workloads. Only one container is allowed to specify a port."},"ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false},"description":"The ports in the container which can receive internal and external traffic.  For serverless workloads only the first port will be used."},"$drop/ports":{"type":"array","items":{"type":"string"}},"$append/ports":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}},"additionalProperties":false}},"$patch/ports":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["protocol","number"]}},"protocol":{"type":"string","enum":["http","http2","grpc","tcp"],"default":"http","description":"Protocol used by the port (http, http2, grpc, or tcp)"},"number":{"type":"integer","description":"Port number"}}}},"$retain/ports":{"type":"array","items":{"type":"string"}},"memory":{"type":"string","maxLength":20,"default":"128Mi","description":"reserved memory of the workload when capacityAI is disabled. maximum memory when CapacityAI is enabled."},"readinessProbe":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exec","grpc","tcpSocket","httpGet","initialDelaySeconds","periodSeconds","timeoutSeconds","successThreshold","failureThreshold"]}},"exec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["command"]}},"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"},"$drop/command":{"type":"array","items":{"type":"string"}},"$append/command":{"type":"array","items":{"type":"string"}},"$retain/command":{"type":"array","items":{"type":"string"}}}},"$replace/exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["port"]}},"port":{"type":"integer","description":"Port to perform the gRPC health check on"}}},"$replace/grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["port"]}},"port":{"type":"integer","description":"Port to perform the TCP socket check on"}}},"$replace/tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["path","port","httpHeaders","scheme"]}},"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"$drop/httpHeaders":{"type":"array","items":{"type":"string"}},"$append/httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false}},"$patch/httpHeaders":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["value"]}},"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}}}},"$retain/httpHeaders":{"type":"array","items":{"type":"string"}},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}}},"$replace/httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}}},"$replace/readinessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is ready to receive additional traffic."},"livenessProbe":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exec","grpc","tcpSocket","httpGet","initialDelaySeconds","periodSeconds","timeoutSeconds","successThreshold","failureThreshold"]}},"exec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["command"]}},"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"},"$drop/command":{"type":"array","items":{"type":"string"}},"$append/command":{"type":"array","items":{"type":"string"}},"$retain/command":{"type":"array","items":{"type":"string"}}}},"$replace/exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["port"]}},"port":{"type":"integer","description":"Port to perform the gRPC health check on"}}},"$replace/grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["port"]}},"port":{"type":"integer","description":"Port to perform the TCP socket check on"}}},"$replace/tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["path","port","httpHeaders","scheme"]}},"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"$drop/httpHeaders":{"type":"array","items":{"type":"string"}},"$append/httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false}},"$patch/httpHeaders":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["value"]}},"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}}}},"$retain/httpHeaders":{"type":"array","items":{"type":"string"}},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}}},"$replace/httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}}},"$replace/livenessProbe":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute for the health check"}},"additionalProperties":false,"description":"Execute a command to check health"},"grpc":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the gRPC health check on"}},"additionalProperties":false,"description":"Perform a gRPC health check"},"tcpSocket":{"type":"object","properties":{"port":{"type":"integer","description":"Port to perform the TCP socket check on"}},"additionalProperties":false,"description":"Perform a TCP socket health check"},"httpGet":{"type":"object","properties":{"path":{"type":"string","maxLength":256,"default":"/","description":"HTTP path to request for the health check"},"port":{"type":"integer","description":"Port to perform the HTTP health check on"},"httpHeaders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":128,"description":"HTTP header name"},"value":{"type":"string","maxLength":128,"description":"HTTP header value"}},"additionalProperties":false},"description":"Custom HTTP headers to include in the health check request"},"scheme":{"type":"string","enum":["HTTP","HTTPS"],"default":"HTTP","description":"HTTP scheme to use (HTTP or HTTPS)"}},"additionalProperties":false,"description":"Perform an HTTP GET health check"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds to wait before performing the first health check"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the health check"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the health check times out"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the health check to be considered successful after having failed"},"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the health check to be considered failed after having succeeded"}},"additionalProperties":false,"description":"A Probe to check if the workload is healthy or should be restarted."},"cpu":{"type":"string","maxLength":20,"default":"50m","description":"reserved CPU of the workload when capacityAI is disabled. maximum CPU when CapacityAI is enabled."},"minCpu":{"type":"string","maxLength":20,"description":"Minimum CPU when capacityAI is enabled."},"minMemory":{"type":"string","maxLength":20,"description":"Minimum memory when capacityAI is enabled"},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false},"description":"Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD"},"$drop/env":{"type":"array","items":{"type":"string"}},"$append/env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}},"additionalProperties":false}},"$patch/env":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["value"]}},"name":{"type":"string","maxLength":120},"value":{"type":"string","maxLength":4096}}}},"$retain/env":{"type":"array","items":{"type":"string"}},"gpu":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["nvidia","custom"]}},"nvidia":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["model","quantity"]}},"model":{"type":"object","properties":{}},"$replace/model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}}},"$replace/nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["resource","runtimeClass","quantity"]}},"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}}},"$replace/custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}}},"$replace/gpu":{"type":"object","properties":{"nvidia":{"type":"object","properties":{"model":{"type":"object","description":"NVIDIA GPU model (t4 or a10g)"},"quantity":{"type":"number","description":"Number of NVIDIA GPUs to allocate"}},"additionalProperties":false,"description":"NVIDIA GPU resource specification"},"custom":{"type":"object","properties":{"resource":{"type":"string","maxLength":64,"description":"Custom GPU resource name (e.g., amd.com/gpu)"},"runtimeClass":{"type":"string","maxLength":64,"description":"Runtime class for custom GPU"},"quantity":{"type":"number","description":"Number of custom GPUs to allocate"}},"additionalProperties":false,"description":"Custom GPU resource specification for non-NVIDIA GPUs"}},"additionalProperties":false,"description":"Reserved GPU resources for the workload."},"inheritEnv":{"type":"boolean","description":"Enables inheritance of GVC environment variables. A variable in spec.env will override a GVC variable with the same name."},"command":{"type":"string","maxLength":256,"description":"Optionally override the entrypoint"},"args":{"type":"array","items":{"type":"string"},"description":"Command line arguments passed to the container at runtime. Replaces the CMD arguments of the running container. It is an ordered list."},"$drop/args":{"type":"array","items":{"type":"string"}},"$append/args":{"type":"array","items":{"type":"string"}},"$retain/args":{"type":"array","items":{"type":"string"}},"lifecycle":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["postStart","preStop"]}},"postStart":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exec"]}},"exec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["command"]}},"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."},"$drop/command":{"type":"array","items":{"type":"string"}},"$append/command":{"type":"array","items":{"type":"string"}},"$retain/command":{"type":"array","items":{"type":"string"}}}},"$replace/exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}}},"$replace/postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exec"]}},"exec":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["command"]}},"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."},"$drop/command":{"type":"array","items":{"type":"string"}},"$append/command":{"type":"array","items":{"type":"string"}},"$retain/command":{"type":"array","items":{"type":"string"}}}},"$replace/exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}}},"$replace/preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}}},"$replace/lifecycle":{"type":"object","properties":{"postStart":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately after the container is created."}},"additionalProperties":false,"description":"Execute a command when the container starts"}},"additionalProperties":false,"description":"Actions to perform after the container starts"},"preStop":{"type":"object","properties":{"exec":{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command and arguments executed immediately before the container is stopped."}},"additionalProperties":false,"description":"Execute a command before the container stops"}},"additionalProperties":false,"description":"Actions to perform before the container stops"}},"additionalProperties":false,"description":"Lifecycle hooks for the container"},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false},"description":"Mount Object Store (S3, GCS, AzureBlob) buckets as file system"},"$drop/volumes":{"type":"array","items":{"type":"string"}},"$append/volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}},"$patch/volumes":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["uri","recoveryPolicy","path"]}},"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}}}},"$retain/volumes":{"type":"array","items":{"type":"string"}}}}},"$retain/containers":{"type":"array","items":{"type":"string"}},"firewallConfig":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["external","internal"]}},"external":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["inboundAllowCIDR","inboundBlockedCIDR","outboundAllowHostname","outboundAllowPort","outboundAllowCIDR","outboundBlockedCIDR","http"]}},"inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"$drop/inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"$append/inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"$retain/inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"$drop/inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"$append/inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"$retain/inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"},"description":"The list of public hostnames that this workload is allowed to reach. No outbound access is allowed by default. A wildcard '*' is allowed on the prefix of the hostname only, ex: '*.amazonaws.com'. Use 'outboundAllowCIDR' to allow access to all external websites (not recommended). The ports 80, 443 & 445 are allowed by default. This can be modified using the outboundAllowPort setting."},"$drop/outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"}},"$append/outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"}},"$retain/outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"}},"outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false},"description":"Allow outbound access to specific ports and protocols. When not specified, communication to address ranges in outboundAllowCIDR is allowed on all ports and communication to names in outboundAllowHostname is allowed on ports 80/443."},"$drop/outboundAllowPort":{"type":"array","items":{"type":"string"}},"$append/outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false}},"$patch/outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["protocol","number"]}},"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}}}},"$retain/outboundAllowPort":{"type":"array","items":{"type":"string"}},"outboundAllowCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is allowed reach. No outbound access is allowed by default. Specify '0.0.0.0/0' to allow outbound access to the public internet (not recommended)."},"$drop/outboundAllowCIDR":{"type":"array","items":{"type":"string"}},"$append/outboundAllowCIDR":{"type":"array","items":{"type":"string"}},"$retain/outboundAllowCIDR":{"type":"array","items":{"type":"string"}},"outboundBlockedCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is NOT allowed reach. Addresses in the allow list will only be allowed if they do not exist in this list."},"$drop/outboundBlockedCIDR":{"type":"array","items":{"type":"string"}},"$append/outboundBlockedCIDR":{"type":"array","items":{"type":"string"}},"$retain/outboundBlockedCIDR":{"type":"array","items":{"type":"string"}},"http":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["inboundHeaderFilter"]}},"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."},"$drop/inboundHeaderFilter":{"type":"array","items":{"type":"string"}},"$append/inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."}},"$patch/inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","allowedValues","blockedValues"]}},"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"$drop/allowedValues":{"type":"array","items":{"type":"string"}},"$append/allowedValues":{"type":"array","items":{"type":"string"}},"$retain/allowedValues":{"type":"array","items":{"type":"string"}},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."},"$drop/blockedValues":{"type":"array","items":{"type":"string"}},"$append/blockedValues":{"type":"array","items":{"type":"string"}},"$retain/blockedValues":{"type":"array","items":{"type":"string"}}}}},"$retain/inboundHeaderFilter":{"type":"array","items":{"type":"string"}}}},"$replace/http":{"type":"object","properties":{"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."}},"additionalProperties":false,"description":"firewall options for HTTP workloads"}}},"$replace/external":{"type":"object","properties":{"inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"},"description":"The list of public hostnames that this workload is allowed to reach. No outbound access is allowed by default. A wildcard '*' is allowed on the prefix of the hostname only, ex: '*.amazonaws.com'. Use 'outboundAllowCIDR' to allow access to all external websites (not recommended). The ports 80, 443 & 445 are allowed by default. This can be modified using the outboundAllowPort setting."},"outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false},"description":"Allow outbound access to specific ports and protocols. When not specified, communication to address ranges in outboundAllowCIDR is allowed on all ports and communication to names in outboundAllowHostname is allowed on ports 80/443."},"outboundAllowCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is allowed reach. No outbound access is allowed by default. Specify '0.0.0.0/0' to allow outbound access to the public internet (not recommended)."},"outboundBlockedCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is NOT allowed reach. Addresses in the allow list will only be allowed if they do not exist in this list."},"http":{"type":"object","properties":{"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."}},"additionalProperties":false,"description":"firewall options for HTTP workloads"}},"additionalProperties":false,"description":"The external firewall is used to control access to and from the public internet."},"internal":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["inboundAllowType","inboundAllowWorkload"]}},"inboundAllowType":{"type":"string","enum":["none","same-gvc","same-org","workload-list"],"default":"none","description":"Used to control the internal firewall configuration and mutual tls. 'none': no access is allowed between this workload and other workloads on Control Plane. 'same-gvc': workloads running on the same Global Virtual Cloud are allowed to access this workload internally. 'same-org': workloads running on the same Control Plane Organization are allowed to access this workload internally. 'workload-list': specific workloads provided in the 'inboundAllowWorkload' array are allowed to access this workload internally."},"inboundAllowWorkload":{"type":"array","items":{"type":"string"},"description":"A list of specific workloads which are allowed to access this workload internally."},"$drop/inboundAllowWorkload":{"type":"array","items":{"type":"string"}},"$append/inboundAllowWorkload":{"type":"array","items":{"type":"string"}},"$retain/inboundAllowWorkload":{"type":"array","items":{"type":"string"}}}},"$replace/internal":{"type":"object","properties":{"inboundAllowType":{"type":"string","enum":["none","same-gvc","same-org","workload-list"],"default":"none","description":"Used to control the internal firewall configuration and mutual tls. 'none': no access is allowed between this workload and other workloads on Control Plane. 'same-gvc': workloads running on the same Global Virtual Cloud are allowed to access this workload internally. 'same-org': workloads running on the same Control Plane Organization are allowed to access this workload internally. 'workload-list': specific workloads provided in the 'inboundAllowWorkload' array are allowed to access this workload internally."},"inboundAllowWorkload":{"type":"array","items":{"type":"string"},"description":"A list of specific workloads which are allowed to access this workload internally."}},"additionalProperties":false,"description":"The internal firewall is used to control access between workloads."}}},"$replace/firewallConfig":{"type":"object","properties":{"external":{"type":"object","properties":{"inboundAllowCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are allowed to access this workload. No external access is allowed by default. Specify '0.0.0.0/0' to allow access to the public internet."}},"inboundBlockedCIDR":{"type":"array","items":{"type":"string","description":"The list of ipv4/ipv6 addresses or cidr blocks that are NOT allowed to access this workload. Addresses in the allow list will only be allowed if they do not exist in this list."}},"outboundAllowHostname":{"type":"array","items":{"type":"string","maxLength":128,"description":"DNS hostname with optional wildcard prefix (e.g., *.example.com, example.com)"},"description":"The list of public hostnames that this workload is allowed to reach. No outbound access is allowed by default. A wildcard '*' is allowed on the prefix of the hostname only, ex: '*.amazonaws.com'. Use 'outboundAllowCIDR' to allow access to all external websites (not recommended). The ports 80, 443 & 445 are allowed by default. This can be modified using the outboundAllowPort setting."},"outboundAllowPort":{"type":"array","items":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp"],"default":"tcp","description":"Protocol to allow (http, https, or tcp)"},"number":{"type":"integer","description":"Port number to allow"}},"additionalProperties":false},"description":"Allow outbound access to specific ports and protocols. When not specified, communication to address ranges in outboundAllowCIDR is allowed on all ports and communication to names in outboundAllowHostname is allowed on ports 80/443."},"outboundAllowCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is allowed reach. No outbound access is allowed by default. Specify '0.0.0.0/0' to allow outbound access to the public internet (not recommended)."},"outboundBlockedCIDR":{"type":"array","items":{"type":"string"},"description":"The list of ipv4/ipv6 addresses or cidr blocks that this workload is NOT allowed reach. Addresses in the allow list will only be allowed if they do not exist in this list."},"http":{"type":"object","properties":{"inboundHeaderFilter":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":128,"description":"The header to match for."},"allowedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for allowed header values. \nHeaders that do not match ANY of these values will be filtered and will not reach the workload."},"blockedValues":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions to match for blocked header values.\nHeaders that match ANY of these values will be filtered and will not reach the workload."}},"additionalProperties":false,"description":"If provided, in order to be an accepted request that is forwarded to the workload, the request must include headers which match the allowedValues regex or must not include headers which match the blockedValues regex."},"description":"A list of header filters for HTTP workloads."}},"additionalProperties":false,"description":"firewall options for HTTP workloads"}},"additionalProperties":false,"description":"The external firewall is used to control access to and from the public internet."},"internal":{"type":"object","properties":{"inboundAllowType":{"type":"string","enum":["none","same-gvc","same-org","workload-list"],"default":"none","description":"Used to control the internal firewall configuration and mutual tls. 'none': no access is allowed between this workload and other workloads on Control Plane. 'same-gvc': workloads running on the same Global Virtual Cloud are allowed to access this workload internally. 'same-org': workloads running on the same Control Plane Organization are allowed to access this workload internally. 'workload-list': specific workloads provided in the 'inboundAllowWorkload' array are allowed to access this workload internally."},"inboundAllowWorkload":{"type":"array","items":{"type":"string"},"description":"A list of specific workloads which are allowed to access this workload internally."}},"additionalProperties":false,"description":"The internal firewall is used to control access between workloads."}},"additionalProperties":false,"description":"Optional control of inbound and outbound access to the workload for external (public) and internal (service to service) traffic. Access is restricted by default."},"defaultOptions":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["autoscaling","timeoutSeconds","capacityAI","capacityAIUpdateMinutes","spot","debug","suspend","multiZone"]}},"autoscaling":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["metric","multi","metricPercentile","target","maxScale","minScale","scaleToZeroDelay","maxConcurrency","keda"]}},"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"$drop/multi":{"type":"array","items":{"type":"string"}},"$append/multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"$patch/multi":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["metric","target"]}},"metric":{"type":"object","properties":{}},"$replace/metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}}}},"$retain/multi":{"type":"array","items":{"type":"string"}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["triggers","advanced","fallback","pollingInterval","cooldownPeriod","initialCooldownPeriod"]}},"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"$drop/triggers":{"type":"array","items":{"type":"string"}},"$append/triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"}},"$patch/triggers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["type","metadata","useCachedMetrics","metricType","authenticationRef"]}},"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}}},"$replace/authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}}}},"$retain/triggers":{"type":"array","items":{"type":"string"}},"advanced":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["scalingModifiers"]}},"scalingModifiers":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["target","activationTarget","metricType","formula"]}},"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}}},"$replace/scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}}},"$replace/advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["failureThreshold","replicas","behavior"]}},"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}}},"$replace/fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}}},"$replace/keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}}},"$replace/autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled"]}},"enabled":{"type":"boolean"}}},"$replace/multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false}}},"$replace/defaultOptions":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."},"localOptions":{"type":"array","items":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"location":{"type":"string"}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."},"description":"Override defaultOptions for the workload in specific Control Plane Locations."},"$drop/localOptions":{"type":"array","items":{"type":"string"}},"$append/localOptions":{"type":"array","items":{"type":"object","properties":{"autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"location":{"type":"string"}},"additionalProperties":false,"description":"Set defaultOptions for the workload in all Control Plane Locations."}},"$patch/localOptions":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["autoscaling","timeoutSeconds","capacityAI","capacityAIUpdateMinutes","spot","debug","suspend","multiZone","location"]}},"autoscaling":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["metric","multi","metricPercentile","target","maxScale","minScale","scaleToZeroDelay","maxConcurrency","keda"]}},"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"$drop/multi":{"type":"array","items":{"type":"string"}},"$append/multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"$patch/multi":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["metric","target"]}},"metric":{"type":"object","properties":{}},"$replace/metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}}}},"$retain/multi":{"type":"array","items":{"type":"string"}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["triggers","advanced","fallback","pollingInterval","cooldownPeriod","initialCooldownPeriod"]}},"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"$drop/triggers":{"type":"array","items":{"type":"string"}},"$append/triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"}},"$patch/triggers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["type","metadata","useCachedMetrics","metricType","authenticationRef"]}},"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}}},"$replace/authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}}}},"$retain/triggers":{"type":"array","items":{"type":"string"}},"advanced":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["scalingModifiers"]}},"scalingModifiers":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["target","activationTarget","metricType","formula"]}},"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}}},"$replace/scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}}},"$replace/advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["failureThreshold","replicas","behavior"]}},"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}}},"$replace/fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}}},"$replace/keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}}},"$replace/autoscaling":{"type":"object","properties":{"metric":{"type":"string","enum":["concurrency","cpu","memory","rps","latency","keda","disabled"],"description":"Controls the metric which will be used for scaling decisions.The goal is to maintain the target across all replicas of a deployment.'concurrency' uses the number of concurrent requests for the target.'cpu' uses % processor time for the target.'memory' memory in Mi for the target.'rps' uses requests per second for the target.'latency' uses the average request response time for the target."},"multi":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"object"},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."}},"additionalProperties":false}},"metricPercentile":{"type":"string","enum":["p50","p75","p99"],"description":"For metrics represented as a distribution (e.g. latency) a percentile within the distribution must be chosen as the target."},"target":{"type":"integer","description":"Control Plane will scale the number of replicas for this deployment up/downin order to be as close as possible to the target metric across all replicas of a deployment."},"maxScale":{"type":"integer","description":"The maximum allowed number of replicas."},"minScale":{"type":"integer","description":"The minimum allowed number of replicas.   Control Plane can scale the workload down to 0 when there is no traffic and   scale up immediately to fulfill new requests."},"scaleToZeroDelay":{"type":"number","description":"The amount of time with no requests received before a workload is scaled to 0."},"maxConcurrency":{"type":"number","description":"A hard maximum for the number of concurrent requests allowed to a replica.   If no replicas are available to fulfill the request then it will be queued until a replica with capacity is available   and delivered as soon as one is available again. Capacity can be available from requests completing   or when a new replica is available from scale out. A value of 0 allows all requests."},"keda":{"type":"object","properties":{"triggers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of KEDA trigger, e.g \"prometheus\", \"aws-sqs\", etc."},"metadata":{"type":"object","description":"The configuration parameters that the trigger requires"},"name":{"type":"string","description":"An optional name for the trigger. If not provided, a default name will be generated based on the trigger type."},"useCachedMetrics":{"type":"boolean","description":"Enables caching of metric values during polling interval"},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"The type of metric to be used for scaling."},"authenticationRef":{"type":"object","properties":{"name":{"type":"string","description":"The name of secret listed in the GVC spec.keda.secrets"}},"additionalProperties":false}},"additionalProperties":false,"description":"KEDA trigger configuration"},"description":"An array of KEDA triggers to be used for scaling workloads in this GVC."},"advanced":{"type":"object","properties":{"scalingModifiers":{"type":"object","properties":{"target":{"type":"string","description":"defines new target value to scale on for the composed metric."},"activationTarget":{"type":"string","description":"defines the new activation target value to scale on for the composed metric."},"metricType":{"type":"string","enum":["AverageValue","Value","Utilization"],"description":"defines metric type used for this new composite-metric."},"formula":{"type":"string","description":"composes metrics together and allows them to be modified/manipulated. It accepts mathematical/conditional statements"}},"additionalProperties":false}},"additionalProperties":false},"fallback":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive failures required to trigger fallback behavior."},"replicas":{"type":"integer","description":"Number of replicas to scale to when fallback is triggered."},"behavior":{"type":"string","enum":["static","currentReplicas","currentReplicasIfHigher","currentReplicasIfLower"],"description":"Behavior to apply when fallback is triggered."}},"additionalProperties":false},"pollingInterval":{"type":"integer"},"cooldownPeriod":{"type":"integer"},"initialCooldownPeriod":{"type":"integer"}},"additionalProperties":false}},"additionalProperties":false},"timeoutSeconds":{"type":"number","description":"The maximum request duration that is allowed for Control Plane to respond.This timeout can be reached when the Control Plane is waiting for the workload to respond or waitingfor a new workload to become available when using Autoscaling."},"capacityAI":{"type":"boolean","description":"Enables intelligent dynamic resource allocation of CPU and Memory   for each container by setting resource reservations using analysis of historical usage data.   This can significantly reduce cost but may cause temporary performance   issues for workloads with sudden spikes in usage."},"capacityAIUpdateMinutes":{"type":"integer","description":"The highest frequency capacity AI is allowed to update resource reservations when CapacityAI is enabled."},"spot":{"type":"boolean","description":"Enables use of spot instances to reduce cost of running workloads with an increasedpotential of rescheduling workloads onto new nodes when they are forced to terminate."},"debug":{"type":"boolean","description":"Enables debug response headers when the headers \"x-cpln-debug: true\" is in the request."},"suspend":{"type":"boolean"},"multiZone":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled"]}},"enabled":{"type":"boolean"}}},"$replace/multiZone":{"type":"object","properties":{"enabled":{"type":"boolean"}},"additionalProperties":false},"location":{"type":"string"}}}},"$retain/localOptions":{"type":"array","items":{"type":"string"}},"job":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["schedule","concurrencyPolicy","historyLimit","restartPolicy","activeDeadlineSeconds"]}},"schedule":{"type":"string","description":"A standard cron schedule expression (5 fields)."},"concurrencyPolicy":{"type":"string","enum":["Forbid","Replace","Allow"],"default":"Forbid","description":"Either 'Forbid', 'Replace', or 'Allow'. This determines what Control Plane will do when the schedule requires a job to start, while a prior instance of the job is still running."},"historyLimit":{"type":"integer","description":"The maximum number of completed job instances to display. This should be an integer between 1 and 10."},"restartPolicy":{"type":"string","enum":["OnFailure","Never"],"description":"Either 'OnFailure' or 'Never'. This determines what Control Plane will do when a job instance fails."},"activeDeadlineSeconds":{"type":"number","description":"The maximum number of seconds Control Plane will wait for the job to complete. If a job does not succeed or fail in the allotted time, Control Plane will stop the job, moving it into the Removed status."}}},"$replace/job":{"type":"object","properties":{"schedule":{"type":"string","description":"A standard cron schedule expression (5 fields)."},"concurrencyPolicy":{"type":"string","enum":["Forbid","Replace","Allow"],"default":"Forbid","description":"Either 'Forbid', 'Replace', or 'Allow'. This determines what Control Plane will do when the schedule requires a job to start, while a prior instance of the job is still running."},"historyLimit":{"type":"integer","description":"The maximum number of completed job instances to display. This should be an integer between 1 and 10."},"restartPolicy":{"type":"string","enum":["OnFailure","Never"],"description":"Either 'OnFailure' or 'Never'. This determines what Control Plane will do when a job instance fails."},"activeDeadlineSeconds":{"type":"number","description":"The maximum number of seconds Control Plane will wait for the job to complete. If a job does not succeed or fail in the allotted time, Control Plane will stop the job, moving it into the Removed status."}},"additionalProperties":false,"description":"Job configuration for cron workloads"},"sidecar":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["envoy"]}},"envoy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["accessLog","clusters","excludedExternalAuth","excludedRateLimit","http","network","volumes"]}},"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"$drop/accessLog":{"type":"array","items":{"type":"string"}},"$append/accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"$patch/accessLog":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["priority","excludedWorkloads","typed_config"]}},"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"$drop/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$append/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$retain/excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["@type","common_config","additional_request_headers_to_log","additional_response_headers_to_log","additional_response_trailers_to_log"]}},"@type":{"type":"object","properties":{}},"$replace/@type":{"type":"object"},"common_config":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["log_name","grpc_service","transport_api_version","buffer_flush_interval","buffer_size_bytes","filter_state_objects_to_log","grpc_stream_retry_policy"]}},"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["envoy_grpc","google_grpc","timeout","initial_metadata"]}},"envoy_grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cluster_name","authority","retry_policy"]}},"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["retry_back_off","num_retries"]}},"retry_back_off":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["base_interval","max_interval"]}},"$replace/base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"base_interval":{"oneOf":[]},"$replace/max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[]}}},"$replace/retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}}},"$replace/retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}}},"$replace/envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["target_uri","channel_credentials","call_credentials","stat_prefix","credentials_factory_name","config"]}},"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["ssl_credentials","google_default"]}},"ssl_credentials":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["root_certs","private_key","cert_chain"]}},"root_certs":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filename","inline_bytes","inline_string","environment_variable"]}},"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}}},"$replace/cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}}},"$replace/ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{}},"$replace/google_default":{"type":"object","properties":{},"additionalProperties":false}}},"$replace/channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$drop/call_credentials":{"type":"array","items":{"type":"string"}},"$append/call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"$patch/call_credentials":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["access_token","google_compute_engine","google_refresh_token","service_account_jwt_access","google_iam","from_plugin","sts_service"]}},"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{}},"$replace/google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["json_key","token_lifetime_seconds"]}},"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}}},"$replace/service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["authorization_token","authority_selector"]}},"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}}},"$replace/google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["token_exchange_service_uri","resource","audience","scope","requested_token_type","subject_token_path","subject_token_type","actor_token_path","actor_token_type"]}},"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}}},"$replace/sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}}}},"$retain/call_credentials":{"type":"array","items":{"type":"string"}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object","properties":{}},"$replace/config":{"type":"object"}}},"$replace/google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"$replace/timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"timeout":{"oneOf":[]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}},"$drop/initial_metadata":{"type":"array","items":{"type":"string"}},"$append/initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}},"$patch/initial_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key","value","raw_value"]}},"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}}}},"$retain/initial_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"$replace/buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_flush_interval":{"oneOf":[]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$drop/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$append/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"$retain/filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["retry_back_off","num_retries"]}},"retry_back_off":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["base_interval","max_interval"]}},"$replace/base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"base_interval":{"oneOf":[]},"$replace/max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[]}}},"$replace/retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}}},"$replace/grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}}},"$replace/common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$drop/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$append/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}},"$retain/additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}}},"$replace/typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"$retain/accessLog":{"type":"array","items":{"type":"string"}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"$drop/clusters":{"type":"array","items":{"type":"string"}},"$append/clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"$patch/clusters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["excludedWorkloads","transport_socket_matches","alt_stat_name","type","cluster_type","eds_cluster_config","connect_timeout","per_connection_buffer_limit_bytes","lb_policy","load_assignment","health_checks","max_requests_per_connection","circuit_breakers","upstream_http_protocol_options","common_http_protocol_options","http_protocol_options","http2_protocol_options","typed_extension_protocol_options","dns_refresh_rate","dns_failure_refresh_rate","respect_dns_ttl","dns_lookup_family","dns_resolvers","use_tcp_for_dns_lookups","dns_resolution_config","typed_dns_resolver_config","wait_for_warm_on_init","outlier_detection","cleanup_interval","upstream_bind_config","lb_subset_config","ring_hash_lb_config","maglev_lb_config","least_request_lb_config","common_lb_config","transport_socket","metadata","protocol_selection","upstream_connection_options","close_connections_on_host_health_failure","ignore_health_on_host_removal","filters","load_balancing_policy","track_timeout_budgets","upstream_config","track_cluster_stats","preconnect_policy","connection_pool_per_downstream_connection"]}},"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"$drop/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$append/excludedWorkloads":{"type":"array","items":{"type":"string"}},"$retain/excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object","properties":{}},"$replace/transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object","properties":{}},"$replace/alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object","properties":{}},"$replace/cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object","properties":{}},"$replace/eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object","properties":{}},"$replace/connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object","properties":{}},"$replace/per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object","properties":{}},"$replace/lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["cluster_name","endpoints","policy"]}},"cluster_name":{"type":"string"},"endpoints":{"type":"object","properties":{}},"$replace/endpoints":{"type":"object"},"policy":{"type":"object","properties":{}},"$replace/policy":{"type":"object"}}},"$replace/load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object","properties":{}},"$replace/health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object","properties":{}},"$replace/max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object","properties":{}},"$replace/circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object","properties":{}},"$replace/upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object","properties":{}},"$replace/common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object","properties":{}},"$replace/http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object","properties":{}},"$replace/http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object","properties":{}},"$replace/typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object","properties":{}},"$replace/dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object","properties":{}},"$replace/dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object","properties":{}},"$replace/respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object","properties":{}},"$replace/dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object","properties":{}},"$replace/dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object","properties":{}},"$replace/use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object","properties":{}},"$replace/dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object","properties":{}},"$replace/typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object","properties":{}},"$replace/wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object","properties":{}},"$replace/outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object","properties":{}},"$replace/cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object","properties":{}},"$replace/upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object","properties":{}},"$replace/lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object","properties":{}},"$replace/ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object","properties":{}},"$replace/maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object","properties":{}},"$replace/least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object","properties":{}},"$replace/common_lb_config":{"type":"object"},"transport_socket":{"type":"object","properties":{}},"$replace/transport_socket":{"type":"object"},"metadata":{"type":"object","properties":{}},"$replace/metadata":{"type":"object"},"protocol_selection":{"type":"object","properties":{}},"$replace/protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object","properties":{}},"$replace/upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object","properties":{}},"$replace/close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object","properties":{}},"$replace/ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object","properties":{}},"$replace/filters":{"type":"object"},"load_balancing_policy":{"type":"object","properties":{}},"$replace/load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object","properties":{}},"$replace/track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object","properties":{}},"$replace/upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object","properties":{}},"$replace/track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object","properties":{}},"$replace/preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object","properties":{}},"$replace/connection_pool_per_downstream_connection":{"type":"object"}}}},"$retain/clusters":{"type":"array","items":{"type":"string"}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$drop/excludedExternalAuth":{"type":"array","items":{"type":"string"}},"$append/excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$patch/excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","port","svcPort"]}},"match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["prefix","path","safe_regex","path_separated_prefix","path_match_policy","case_sensitive","runtime_fraction","headers","query_parameters","grpc","tls_context","dynamic_metadata"]}},"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["default_value","runtime_key"]}},"default_value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["numerator","denominator"]}},"numerator":{"type":"integer"},"denominator":{"type":"integer"}}},"$replace/default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}}},"$replace/runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$drop/headers":{"type":"array","items":{"type":"string"}},"$append/headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$patch/headers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["safe_regex_match","range_match","present_match","string_match","invert_match","treat_missing_header_as_empty"]}},"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"integer"},"end":{"type":"integer"}}},"$replace/range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}}}},"$retain/headers":{"type":"array","items":{"type":"string"}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$drop/query_parameters":{"type":"array","items":{"type":"string"}},"$append/query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$patch/query_parameters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["string_match","present_match"]}},"name":{"type":"string"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}}}},"$retain/query_parameters":{"type":"array","items":{"type":"string"}},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$drop/dynamic_metadata":{"type":"array","items":{"type":"string"}},"$append/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$patch/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filter","path","value","invert"]}},"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$drop/path":{"type":"array","items":{"type":"string"}},"$append/path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$patch/path":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key"]}},"key":{"type":"string"}}}},"$retain/path":{"type":"array","items":{"type":"string"}},"value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["null_match","double_match","string_match","bool_match","present_match"]}},"null_match":{"type":"object","properties":{}},"$replace/null_match":{"type":"object"},"double_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["range","exact"]}},"range":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"number"},"end":{"type":"number"}}},"$replace/range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}}},"$replace/double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}}},"$replace/value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}}}},"$retain/dynamic_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}}}},"$retain/excludedExternalAuth":{"type":"array","items":{"type":"string"}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$drop/excludedRateLimit":{"type":"array","items":{"type":"string"}},"$append/excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"$patch/excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["match","port","svcPort"]}},"match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["prefix","path","safe_regex","path_separated_prefix","path_match_policy","case_sensitive","runtime_fraction","headers","query_parameters","grpc","tls_context","dynamic_metadata"]}},"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["typed_config"]}},"name":{"type":"string"},"typed_config":{"type":"object","properties":{}},"$replace/typed_config":{"type":"object"}}},"$replace/path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["default_value","runtime_key"]}},"default_value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["numerator","denominator"]}},"numerator":{"type":"integer"},"denominator":{"type":"integer"}}},"$replace/default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}}},"$replace/runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$drop/headers":{"type":"array","items":{"type":"string"}},"$append/headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"$patch/headers":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["safe_regex_match","range_match","present_match","string_match","invert_match","treat_missing_header_as_empty"]}},"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"integer"},"end":{"type":"integer"}}},"$replace/range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}}}},"$retain/headers":{"type":"array","items":{"type":"string"}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$drop/query_parameters":{"type":"array","items":{"type":"string"}},"$append/query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"$patch/query_parameters":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["string_match","present_match"]}},"name":{"type":"string"},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}}}},"$retain/query_parameters":{"type":"array","items":{"type":"string"}},"grpc":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["presented","validated"]}},"presented":{"type":"boolean"},"validated":{"type":"boolean"}}},"$replace/tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$drop/dynamic_metadata":{"type":"array","items":{"type":"string"}},"$append/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}},"$patch/dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filter","path","value","invert"]}},"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$drop/path":{"type":"array","items":{"type":"string"}},"$append/path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"$patch/path":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["key"]}},"key":{"type":"string"}}}},"$retain/path":{"type":"array","items":{"type":"string"}},"value":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["null_match","double_match","string_match","bool_match","present_match"]}},"null_match":{"type":"object","properties":{}},"$replace/null_match":{"type":"object"},"double_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["range","exact"]}},"range":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["start","end"]}},"start":{"type":"number"},"end":{"type":"number"}}},"$replace/range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}}},"$replace/double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["exact","prefix","suffix","safe_regex","contains","ignore_case"]}},"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["google_re2","regex"]}},"google_re2":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["max_program_size"]}},"max_program_size":{"type":"integer"}}},"$replace/google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}}},"$replace/safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}}},"$replace/string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}}},"$replace/value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}}}},"$retain/dynamic_metadata":{"type":"array","items":{"type":"string"}}}},"$replace/match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}}}},"$retain/excludedRateLimit":{"type":"array","items":{"type":"string"}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$drop/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$append/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"$retain/http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"$drop/network":{"type":"array","items":{"type":"string"}},"$append/network":{"type":"array","items":{"type":"object"}},"$patch/network":{"type":"array","items":{"type":"object","properties":{}}},"$retain/network":{"type":"array","items":{"type":"string"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}},"$drop/volumes":{"type":"array","items":{"type":"string"}},"$append/volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}},"$patch/volumes":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["uri","recoveryPolicy","path"]}},"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}}}},"$retain/volumes":{"type":"array","items":{"type":"string"}}}},"$replace/envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"description":"Envoy proxy filters"}}},"$replace/sidecar":{"type":"object","properties":{"envoy":{"type":"object","properties":{"accessLog":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"number"},"name":{"type":"string","enum":["envoy.http_grpc_access_log"]},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"typed_config":{"type":"object","properties":{"@type":{"type":"object"},"common_config":{"type":"object","properties":{"log_name":{"type":"string"},"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"buffer_flush_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"buffer_size_bytes":{"type":"integer"},"filter_state_objects_to_log":{"type":"array","items":{"type":"string"}},"grpc_stream_retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"additional_request_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_headers_to_log":{"type":"array","items":{"type":"string"}},"additional_response_trailers_to_log":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}},"clusters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"transport_socket_matches":{"type":"object"},"alt_stat_name":{"type":"object"},"type":{"type":"string","enum":["STATIC","STRICT_DNS","LOGICAL_DNS","EDS","ORIGINAL_DST"]},"cluster_type":{"type":"object"},"eds_cluster_config":{"type":"object"},"connect_timeout":{"type":"object"},"per_connection_buffer_limit_bytes":{"type":"object"},"lb_policy":{"type":"object"},"load_assignment":{"type":"object","properties":{"cluster_name":{"type":"string"},"endpoints":{"type":"object"},"policy":{"type":"object"}},"additionalProperties":false},"health_checks":{"type":"object"},"max_requests_per_connection":{"type":"object"},"circuit_breakers":{"type":"object"},"upstream_http_protocol_options":{"type":"object"},"common_http_protocol_options":{"type":"object"},"http_protocol_options":{"type":"object"},"http2_protocol_options":{"type":"object"},"typed_extension_protocol_options":{"type":"object"},"dns_refresh_rate":{"type":"object"},"dns_failure_refresh_rate":{"type":"object"},"respect_dns_ttl":{"type":"object"},"dns_lookup_family":{"type":"object"},"dns_resolvers":{"type":"object"},"use_tcp_for_dns_lookups":{"type":"object"},"dns_resolution_config":{"type":"object"},"typed_dns_resolver_config":{"type":"object"},"wait_for_warm_on_init":{"type":"object"},"outlier_detection":{"type":"object"},"cleanup_interval":{"type":"object"},"upstream_bind_config":{"type":"object"},"lb_subset_config":{"type":"object"},"ring_hash_lb_config":{"type":"object"},"maglev_lb_config":{"type":"object"},"least_request_lb_config":{"type":"object"},"common_lb_config":{"type":"object"},"transport_socket":{"type":"object"},"metadata":{"type":"object"},"protocol_selection":{"type":"object"},"upstream_connection_options":{"type":"object"},"close_connections_on_host_health_failure":{"type":"object"},"ignore_health_on_host_removal":{"type":"object"},"filters":{"type":"object"},"load_balancing_policy":{"type":"object"},"track_timeout_budgets":{"type":"object"},"upstream_config":{"type":"object"},"track_cluster_stats":{"type":"object"},"preconnect_policy":{"type":"object"},"connection_pool_per_downstream_connection":{"type":"object"}},"additionalProperties":false}},"excludedExternalAuth":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"excludedRateLimit":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"path":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"path_separated_prefix":{"type":"string"},"path_match_policy":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"case_sensitive":{"type":"boolean"},"runtime_fraction":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}},"query_parameters":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"present_match":{"type":"boolean"}},"additionalProperties":false}},"grpc":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"tls_context":{"type":"object","properties":{"presented":{"type":"boolean"},"validated":{"type":"boolean"}},"additionalProperties":false},"dynamic_metadata":{"type":"array","items":{"type":"object","properties":{"filter":{"type":"string"},"path":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"additionalProperties":false}},"value":{"type":"object","properties":{"null_match":{"type":"object"},"double_match":{"type":"object","properties":{"range":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"additionalProperties":false},"exact":{"type":"number"}},"additionalProperties":false},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"bool_match":{"type":"boolean"},"present_match":{"type":"boolean"}},"additionalProperties":false},"invert":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"port":{"type":"integer"},"svcPort":{"type":"integer"}},"additionalProperties":false}},"http":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ext_authz"]},"typed_config":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"http_service":{"type":"object","properties":{"server_uri":{"type":"object","properties":{"uri":{"type":"string"},"cluster":{"type":"string"},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"path_prefix":{"type":"string"},"authorization_request":{"type":"object","properties":{"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"headers_to_add":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"authorization_response":{"type":"object","properties":{"allowed_upstream_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_upstream_headers_to_append":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"allowed_client_headers_on_success":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"dynamic_metadata_from_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"failure_mode_allow":{"type":"boolean"},"failure_mode_allow_header_add":{"type":"boolean"},"with_request_body":{"type":"object","properties":{"max_request_bytes":{"type":"integer"},"allow_partial_message":{"type":"boolean"},"pack_as_bytes":{"type":"boolean"}},"additionalProperties":false},"clear_route_cache":{"type":"boolean"},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"route_typed_metadata_context_namespaces":{"type":"array","items":{"type":"string"}},"filter_enabled":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"deny_at_disable":{"type":"object","properties":{"default_value":{"type":"boolean"},"runtime_key":{"type":"string"}},"additionalProperties":false},"include_peer_certificate":{"type":"boolean"},"stat_prefix":{"type":"string"},"bootstrap_metadata_labels_key":{"type":"string"},"allowed_headers":{"type":"object","properties":{"patterns":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"include_tls_session":{"type":"boolean"},"charge_cluster_response_stats":{"type":"boolean"},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.jwt_authn"]},"typed_config":{"type":"object","properties":{"providers":{"type":"object"},"rules":{"type":"array","items":{"type":"object","properties":{"match":{"type":"object","properties":{"prefix":{"type":"string"},"headers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"safe_regex_match":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"range_match":{"type":"object","properties":{"start":{"type":"integer"},"end":{"type":"integer"}},"additionalProperties":false},"present_match":{"type":"boolean"},"string_match":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false},"invert_match":{"type":"boolean"},"treat_missing_header_as_empty":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false},"requires":{"type":"object","properties":{"provider_name":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"filter_state_rules":{"type":"object","properties":{"name":{"type":"string"},"requires":{"type":"object"}},"additionalProperties":false},"bypass_cors_preflight":{"type":"boolean"},"requirement_map":{"type":"object"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_web"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.connect_grpc_bridge"]},"typed_config":{"type":"object","properties":{"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.grpc_json_transcoder"]},"typed_config":{"type":"object","properties":{"proto_descriptor":{"type":"string"},"proto_descriptor_bin":{},"services":{"type":"array","items":{"type":"string"}},"print_options":{"type":"object","properties":{"add_whitespace":{"type":"boolean"},"always_print_primitive_fields":{"type":"boolean"},"always_print_enums_as_ints":{"type":"boolean"},"preserve_proto_field_names":{"type":"boolean"},"stream_newline_delimited":{"type":"boolean"}},"additionalProperties":false},"match_incoming_request_route":{"type":"boolean"},"ignored_query_parameters":{"type":"array","items":{"type":"string"}},"auto_mapping":{"type":"boolean"},"ignore_unknown_query_parameters":{"type":"boolean"},"convert_grpc_status":{"type":"boolean"},"url_unescape_spec":{"type":"string","enum":["ALL_CHARACTERS_EXCEPT_RESERVED","ALL_CHARACTERS_EXCEPT_SLASH","ALL_CHARACTERS"]},"query_param_unescape_plus":{"type":"boolean"},"match_unregistered_custom_verb":{"type":"boolean"},"request_validation_options":{"type":"object","properties":{"reject_unknown_method":{"type":"boolean"},"reject_unknown_query_parameters":{"type":"boolean"},"reject_binding_body_field_collisions":{"type":"boolean"}},"additionalProperties":false},"case_insensitive_enum_parsing":{"type":"boolean"},"max_request_body_size":{"type":"integer"},"max_response_body_size":{"type":"integer"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.cors"]},"typed_config":{"type":"object","properties":{"allow_origin_string_match":{"type":"array","items":{"type":"object","properties":{"exact":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"safe_regex":{"type":"object","properties":{"google_re2":{"type":"object","properties":{"max_program_size":{"type":"integer"}},"additionalProperties":false},"regex":{"type":"string"}},"additionalProperties":false},"contains":{"type":"string"},"ignore_case":{"type":"boolean"}},"additionalProperties":false}},"allow_methods":{"type":"string"},"allow_headers":{"type":"string"},"expose_headers":{"type":"string"},"max_age":{"type":"string"},"allow_credentials":{"type":"boolean"},"filter_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"shadow_enabled":{"type":"object","properties":{"default_value":{"type":"object","properties":{"numerator":{"type":"integer"},"denominator":{"type":"integer"}},"additionalProperties":false},"runtime_key":{"type":"string"}},"additionalProperties":false},"allow_private_network_access":{"type":"boolean"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors"]}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","properties":{"priority":{"type":"number"},"excludedWorkloads":{"type":"array","items":{"type":"string"}},"name":{"type":"string","enum":["envoy.filters.http.ratelimit"]},"typed_config":{"type":"object","properties":{"domain":{"type":"string"},"stage":{"type":"integer"},"request_type":{"type":"string","enum":["internal","external","both"]},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"failure_mode_deny":{"type":"boolean"},"rate_limited_as_resource_exhausted":{"type":"boolean"},"rate_limit_service":{"type":"object","properties":{"grpc_service":{"type":"object","properties":{"envoy_grpc":{"type":"object","properties":{"cluster_name":{"type":"string"},"authority":{"type":"string","default":{"adjust":null,"in":false,"iterables":null,"map":null,"separator":".","type":"value","ancestor":1,"path":["cluster_name"],"depth":1,"key":"cluster_name","root":"cluster_name","display":"ref:cluster_name"}},"retry_policy":{"type":"object","properties":{"retry_back_off":{"type":"object","properties":{"base_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"max_interval":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]}},"additionalProperties":false},"num_retries":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"google_grpc":{"type":"object","properties":{"target_uri":{"type":"string"},"channel_credentials":{"type":"object","properties":{"ssl_credentials":{"type":"object","properties":{"root_certs":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"private_key":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false},"cert_chain":{"type":"object","properties":{"filename":{"type":"string"},"inline_bytes":{},"inline_string":{"type":"string"},"environment_variable":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"google_default":{"type":"object","properties":{},"additionalProperties":false}},"additionalProperties":false},"call_credentials":{"type":"array","items":{"type":"object","properties":{"access_token":{"type":"string"},"google_compute_engine":{"type":"object","properties":{},"additionalProperties":false},"google_refresh_token":{"type":"string"},"service_account_jwt_access":{"type":"object","properties":{"json_key":{"type":"string"},"token_lifetime_seconds":{"type":"integer"}},"additionalProperties":false},"google_iam":{"type":"object","properties":{"authorization_token":{"type":"string"},"authority_selector":{"type":"string"}},"additionalProperties":false},"from_plugin":{"type":"object","properties":{"name":{"type":"string"},"typed_config":{"type":"object"}},"additionalProperties":false},"sts_service":{"type":"object","properties":{"token_exchange_service_uri":{"type":"string"},"resource":{"type":"string"},"audience":{"type":"string"},"scope":{"type":"string"},"requested_token_type":{"type":"string"},"subject_token_path":{"type":"string"},"subject_token_type":{"type":"string"},"actor_token_path":{"type":"string"},"actor_token_type":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"stat_prefix":{"type":"string"},"credentials_factory_name":{"type":"string"},"config":{"type":"object"}},"additionalProperties":false},"timeout":{"oneOf":[{"type":"string"},{"type":"object","properties":{"seconds":{"type":"integer"},"nanos":{"type":"integer"}},"additionalProperties":false}]},"initial_metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false}}},"additionalProperties":false},"transport_api_version":{"type":"string","enum":["AUTO","V2","V3"]}},"additionalProperties":false},"enable_x_ratelimit_headers":{"type":"string","enum":["OFF","DRAFT_VERSION_03"]},"disable_x_envoy_ratelimited_header":{"type":"boolean"},"rate_limited_status":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"response_headers_to_add":{"type":"array","items":{"type":"object","properties":{"header":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"raw_value":{}},"additionalProperties":false},"append":{"type":"boolean"},"append_action":{"type":"string","enum":["APPEND_IF_EXISTS_OR_ADD","ADD_IF_ABSENT","OVERWRITE_IF_EXISTS_OR_ADD","OVERWRITE_IF_EXISTS"]},"keep_empty_value":{"type":"boolean"}},"additionalProperties":false}},"status_on_error":{"type":"object","properties":{"code":{"type":"string","enum":["Empty","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlradyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthroized","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"]}},"additionalProperties":false},"stat_prefix":{"type":"string"},"@type":{"type":"string","enum":["type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit"]}},"additionalProperties":false}},"additionalProperties":false}]}},"network":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object","properties":{"uri":{"type":"string"},"recoveryPolicy":{"type":"string","enum":["retain","recycle"],"default":"retain","description":"Only applicable to persistent volumes, this determines what Control Plane will do when creating a new workload replica if a corresponding volume exists."},"path":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false,"description":"Envoy proxy filters"}},"additionalProperties":false,"description":"Sidecar container configuration"},"supportDynamicTags":{"type":"boolean","description":"If this is enabled, Control Plane will automatically redeploy your workload when one of the container images is updated in the container registry."},"rolloutOptions":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["minReadySeconds","maxUnavailableReplicas","maxSurgeReplicas","scalingPolicy","terminationGracePeriodSeconds"]}},"minReadySeconds":{"type":"integer","description":"The minimum number of seconds a container must run without crashing to be considered available"},"maxUnavailableReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be unavailable during a rollout"},"maxSurgeReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be created above the desired count during a rollout"},"scalingPolicy":{"type":"string","enum":["OrderedReady","Parallel"],"default":"OrderedReady","description":"Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel)"},"terminationGracePeriodSeconds":{"type":"number","description":"The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.\nThis includes the time it takes for the preStop hook to run."}}},"$replace/rolloutOptions":{"type":"object","properties":{"minReadySeconds":{"type":"integer","description":"The minimum number of seconds a container must run without crashing to be considered available"},"maxUnavailableReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be unavailable during a rollout"},"maxSurgeReplicas":{"type":"string","maxLength":5,"description":"Maximum number or percentage of replicas that can be created above the desired count during a rollout"},"scalingPolicy":{"type":"string","enum":["OrderedReady","Parallel"],"default":"OrderedReady","description":"Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel)"},"terminationGracePeriodSeconds":{"type":"number","description":"The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.\nThis includes the time it takes for the preStop hook to run."}},"additionalProperties":false,"description":"Configuration for how workload updates are rolled out"},"securityOptions":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["filesystemGroupId","runAsUser"]}},"filesystemGroupId":{"type":"integer","description":"The group id assigned to any mounted volume"},"runAsUser":{"type":"integer","description":"The user id assigned to all container processes"}}},"$replace/securityOptions":{"type":"object","properties":{"filesystemGroupId":{"type":"integer","description":"The group id assigned to any mounted volume"},"runAsUser":{"type":"integer","description":"The user id assigned to all container processes"}},"additionalProperties":false,"description":"Security context for the workload"},"loadBalancer":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["direct","geoLocation","replicaDirect"]}},"direct":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled","ports","ipSet"]}},"enabled":{"type":"boolean","description":"when disabled, this load balancer will be stopped"},"ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false},"description":"list of ports that will be exposed by this load balancer"},"$drop/ports":{"type":"array","items":{"type":"string"}},"$append/ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false}},"$patch/ports":{"type":"array","items":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["externalPort","protocol","scheme","containerPort"]}},"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}}}},"$retain/ports":{"type":"array","items":{"type":"string"}},"ipSet":{"type":"string","description":"IP set to use for dedicated IPs"}}},"$replace/direct":{"type":"object","properties":{"enabled":{"type":"boolean","description":"when disabled, this load balancer will be stopped"},"ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false},"description":"list of ports that will be exposed by this load balancer"},"ipSet":{"type":"string","description":"IP set to use for dedicated IPs"}},"additionalProperties":false,"description":"direct load balancers are created in each location that a workload is running in and are configured for the standard endpoints of the workload. Customers are responsible for configuring the workload with certificates if TLS is required"},"geoLocation":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["enabled","headers"]}},"enabled":{"type":"boolean","description":"When enabled, geo location headers will be included on inbound http requests. Existing headers will be replaced."},"headers":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["asn","city","country","region"]}},"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}}},"$replace/headers":{"type":"object","properties":{"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}},"additionalProperties":false,"description":"Custom header names for geo location data"}}},"$replace/geoLocation":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, geo location headers will be included on inbound http requests. Existing headers will be replaced."},"headers":{"type":"object","properties":{"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}},"additionalProperties":false,"description":"Custom header names for geo location data"}},"additionalProperties":false,"description":"Geo location header configuration"},"replicaDirect":{"type":"boolean","description":"When enabled, individual replicas of the workload can be reached directly using the subdomain prefix replica-<index>.\nFor example, replica-0.my-workload.my-gvc.cpln.local or replica-0.my-workload-<gvc-alias>.cpln.app\nCan only be used with stateful workloads."}}},"$replace/loadBalancer":{"type":"object","properties":{"direct":{"type":"object","properties":{"enabled":{"type":"boolean","description":"when disabled, this load balancer will be stopped"},"ports":{"type":"array","items":{"type":"object","properties":{"externalPort":{"type":"number","description":"The port that is available publicly"},"protocol":{"type":"string","enum":["TCP","UDP"],"description":"The protocol that is exposed publicly"},"scheme":{"type":"string","enum":["http","tcp","https","ws","wss"],"description":"overrides the default `https` url scheme that will be used for links in the UI and status"},"containerPort":{"type":"integer","description":"The port on the container tha will receive this traffic"}},"additionalProperties":false},"description":"list of ports that will be exposed by this load balancer"},"ipSet":{"type":"string","description":"IP set to use for dedicated IPs"}},"additionalProperties":false,"description":"direct load balancers are created in each location that a workload is running in and are configured for the standard endpoints of the workload. Customers are responsible for configuring the workload with certificates if TLS is required"},"geoLocation":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, geo location headers will be included on inbound http requests. Existing headers will be replaced."},"headers":{"type":"object","properties":{"asn":{"type":"string","maxLength":128,"description":"The geo asn header"},"city":{"type":"string","maxLength":128,"description":"The geo city header"},"country":{"type":"string","maxLength":128,"description":"The geo country header"},"region":{"type":"string","maxLength":128,"description":"The geo region header"}},"additionalProperties":false,"description":"Custom header names for geo location data"}},"additionalProperties":false,"description":"Geo location header configuration"},"replicaDirect":{"type":"boolean","description":"When enabled, individual replicas of the workload can be reached directly using the subdomain prefix replica-<index>.\nFor example, replica-0.my-workload.my-gvc.cpln.local or replica-0.my-workload-<gvc-alias>.cpln.app\nCan only be used with stateful workloads."}},"additionalProperties":false,"description":"Load balancer configuration"},"extras":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["affinity","tolerations","topologySpreadConstraints"]}},"affinity":{"type":"object","properties":{}},"$replace/affinity":{"type":"object","description":"Kubernetes pod affinity and anti-affinity rules"},"tolerations":{"type":"array","items":{"type":"object"},"description":"Kubernetes pod tolerations for node taints"},"$drop/tolerations":{"type":"array","items":{"type":"string"}},"$append/tolerations":{"type":"array","items":{"type":"object"}},"$patch/tolerations":{"type":"array","items":{"type":"object","properties":{}}},"$retain/tolerations":{"type":"array","items":{"type":"string"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"},"description":"Kubernetes topology spread constraints for pod distribution"},"$drop/topologySpreadConstraints":{"type":"array","items":{"type":"string"}},"$append/topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"$patch/topologySpreadConstraints":{"type":"array","items":{"type":"object","properties":{}}},"$retain/topologySpreadConstraints":{"type":"array","items":{"type":"string"}}}},"$replace/extras":{"type":"object","properties":{"affinity":{"type":"object","description":"Kubernetes pod affinity and anti-affinity rules"},"tolerations":{"type":"array","items":{"type":"object"},"description":"Kubernetes pod tolerations for node taints"},"topologySpreadConstraints":{"type":"array","items":{"type":"object"},"description":"Kubernetes topology spread constraints for pod distribution"}},"additionalProperties":false,"description":"Additional Kubernetes customizations for BYOK"},"requestRetryPolicy":{"type":"object","properties":{"$drop":{"type":"array","items":{"type":"string","enum":["attempts","retryOn"]}},"attempts":{"type":"integer","description":"Maximum number of retry attempts for failed requests"},"retryOn":{"type":"array","items":{"type":"string","maxLength":32},"description":"List of conditions that trigger request retries (e.g., 5xx, gateway-error, connect-failure, unavailable)"},"$drop/retryOn":{"type":"array","items":{"type":"string","maxLength":32}},"$append/retryOn":{"type":"array","items":{"type":"string","maxLength":32}},"$retain/retryOn":{"type":"array","items":{"type":"string","maxLength":32}}}},"$replace/requestRetryPolicy":{"type":"object","properties":{"attempts":{"type":"integer","description":"Maximum number of retry attempts for failed requests"},"retryOn":{"type":"array","items":{"type":"string","maxLength":32},"description":"List of conditions that trigger request retries (e.g., 5xx, gateway-error, connect-failure, unavailable)"}},"additionalProperties":false,"description":"Policy for retrying failed requests"}}}}},"paths":{"/org/{org}/agent/{name}":{"get":{"tags":["agent"],"summary":"Get an agent by name","description":"Response will contain the requested agent if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/agent"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["agent"],"summary":"Perform a Patch on an agent by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_agent"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/agent"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["agent"],"summary":"Delete an agent by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/agent/{name}/-info":{"get":{"tags":["agent"],"summary":"Query agent health","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/agent_info"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/agent":{"post":{"tags":["agent"],"summary":"Create an agent","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/agent"}}}},"responses":{"201":{"description":"The agent was created successfully. The Response will contain the bootstrap config JSON text that is required when configuring an agent at a cloud provider.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/agent"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["agent"],"summary":"Get all agents","description":"Response will contain all the agents the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/agent/-query":{"post":{"tags":["agent","query"],"summary":"Get all agents based on a query","description":"Response will contain all the agents the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/agent/{name}/-accessreport":{"get":{"tags":["agent","access"],"summary":"Get the access report for an agent by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for an agent if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/agent/-schema/permissions":{"get":{"tags":["agent","access"],"summary":"Get available permissions for an agent","description":"Response contains the grantable permissions that are available for an agent when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/auditctx/{name}":{"get":{"tags":["auditctx"],"summary":"Get an audit context by name","description":"Response will contain the requested audit context if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/auditctx"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["auditctx"],"summary":"Perform a Patch on an audit context by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_auditctx"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/auditctx"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["auditctx"],"summary":"Delete an audit context by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/auditctx":{"post":{"tags":["auditctx"],"summary":"Create an audit context","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/auditctx"}}}},"responses":{"201":{"description":"Audit Context was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new audit context","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["auditctx"],"summary":"Get all audit contexts","description":"Response will contain all the audit contexts the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/auditctx/-query":{"post":{"tags":["auditctx","query"],"summary":"Get all audit contexts based on a query","description":"Response will contain all the audit contexts the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/auditctx/{name}/-accessreport":{"get":{"tags":["auditctx","access"],"summary":"Get the access report for an audit context by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for an audit context if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/auditctx/-schema/permissions":{"get":{"tags":["auditctx","access"],"summary":"Get available permissions for an audit context","description":"Response contains the grantable permissions that are available for an audit context when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/cloudaccount/{name}":{"get":{"tags":["cloudaccount"],"summary":"Get a cloud account by name","description":"Response will contain the requested cloud account if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudaccount"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["cloudaccount"],"summary":"Perform a Patch on a cloud account by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_cloudaccount"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudaccount"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["cloudaccount"],"summary":"Delete an cloud account by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/cloudaccount":{"post":{"tags":["cloudaccount"],"summary":"Create a cloud account","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cloudaccount"}}}},"responses":{"201":{"description":"Cloud account was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new cloud account","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["cloudaccount"],"summary":"Get all cloud accounts","description":"Response will contain all the cloud accounts the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/cloudaccount/-query":{"post":{"tags":["cloudaccount","query"],"summary":"Get all cloud accounts based on a query","description":"Response will contain all the cloud accounts the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/cloudaccount/{name}/-accessreport":{"get":{"tags":["cloudaccount","access"],"summary":"Get the access report for a cloud account by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a cloud account if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/cloudaccount/-schema/permissions":{"get":{"tags":["cloudaccount","access"],"summary":"Get available permissions for a cloud account resource type","description":"Response contains the grantable permissions that are available for a cloud account when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/domain/{name}":{"get":{"tags":["domain"],"summary":"Get a domain by name","description":"Response will contain the requested domain if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["domain"],"summary":"Perform a Patch on a domain by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_domain"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["domain"],"summary":"Delete a domain by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/domain":{"post":{"tags":["domain"],"summary":"Create a domain","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/domain"}}}},"responses":{"201":{"description":"Domain was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new domain","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["domain"],"summary":"Get all domains","description":"Response will contain all the domains the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/domain/-query":{"post":{"tags":["domain","query"],"summary":"Get all domains based on a query","description":"Response will contain all the domains the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/domain/{name}/-accessreport":{"get":{"tags":["domain","access"],"summary":"Get the access report for a domain by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a domain if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/domain/-schema/permissions":{"get":{"tags":["domain","access"],"summary":"Get available permissions for a domain resource type","description":"Response contains the grantable permissions that are available for a domain when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/group/{name}":{"get":{"tags":["group"],"summary":"Get a group by name","description":"Response will contain the requested group if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/group"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["group"],"summary":"Perform a Patch on a group by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_group"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/group"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["group"],"summary":"Delete a group by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/group":{"post":{"tags":["group"],"summary":"Create a group","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/group"}}}},"responses":{"201":{"description":"Group was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new group","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["group"],"summary":"Get all groups","description":"Response will contain all the groups the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/group/-query":{"post":{"tags":["group","query"],"summary":"Get all groups based on a query","description":"Response will contain all the groups the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/group/{name}/-accessreport":{"get":{"tags":["group","access"],"summary":"Get the access report for a group by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a group if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/group/-schema/permissions":{"get":{"tags":["group","access"],"summary":"Get available permissions for a group resource type","description":"Response contains the grantable permissions that are available for a group when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{name}":{"get":{"tags":["gvc"],"summary":"Get a GVC  by name","description":"Response will contain the requested GVC if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/gvc"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["gvc"],"summary":"Perform a Patch on a GVC by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_gvc"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/gvc"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["gvc"],"summary":"Delete a GVC by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc":{"post":{"tags":["gvc"],"summary":"Create a GVC","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/gvc"}}}},"responses":{"201":{"description":"GVC was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new GVC","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["gvc"],"summary":"Get all GVCs","description":"Response will contain all the GVCs the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/-query":{"post":{"tags":["gvc","query"],"summary":"Get all GVCs based on a query","description":"Response will contain all the GVCs the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{name}/-accessreport":{"get":{"tags":["gvc","access"],"summary":"Get the access report for a GVC by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a GVC if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/-schema/permissions":{"get":{"tags":["gvc","access"],"summary":"Get available permissions for a GVC resource type","description":"Response contains the grantable permissions that are available for a GVC when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/identity/{name}":{"get":{"tags":["identity"],"summary":"Get an identity by GVC and name","description":"Response will contain the requested identity if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/identity"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["identity"],"summary":"Perform a Patch on an identity by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_identity"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/identity"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["identity"],"summary":"Delete an identity by GVC and name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/identity":{"post":{"tags":["identity"],"summary":"Create an identity","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/identity"}}}},"responses":{"201":{"description":"Identity was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new identity","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["identity"],"summary":"Get all identities in a GVC","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/identity":{"get":{"tags":["identity"],"summary":"Get all identities from all GVCs","description":"Response will contain all the identities from all the GVCs the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/identity/-query":{"post":{"tags":["identity","query"],"summary":"Get all GVC identities based on a query","description":"Response will contain all the GVC identities the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/identity/{name}/-accessreport":{"get":{"tags":["identity","access"],"summary":"Get the access report for an identity by GVC and name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for an identity if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/identity/-schema/permissions":{"get":{"tags":["identity","access"],"summary":"Get available permissions for an identity","description":"Response contains the grantable permissions that are available for an identity when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/image/{name}":{"get":{"tags":["image"],"summary":"Get a image by name","description":"Response will contain the requested image if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/image"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["image"],"summary":"Perform a Patch on an image by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_image"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/image"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["image"],"summary":"Delete an image by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/image":{"get":{"tags":["image"],"summary":"Get all images","description":"Response will contain all the images the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/image/-query":{"post":{"tags":["image","query"],"summary":"Get all images based on a query","description":"Response will contain all the images the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/image/{name}/-accessreport":{"get":{"tags":["image","access"],"summary":"Get the access report for an image by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for an image if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/image/-schema/permissions":{"get":{"tags":["image","access"],"summary":"Get available permissions for an image resource type","description":"Response contains the grantable permissions that are available for an image when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/location/{name}":{"get":{"tags":["location"],"summary":"Get a location by name","description":"Response will contain the requested location if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/location"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["location"],"summary":"Perform a Patch on a location by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_location"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/location"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/location":{"get":{"tags":["location"],"summary":"Get all locations","description":"Response will contain all the locations the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/location/-query":{"post":{"tags":["location","query"],"summary":"Get all locations based on a query","description":"Response will contain all the locations the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/location/{name}/-accessreport":{"get":{"tags":["location","access"],"summary":"Get the access report for a location by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a location if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/location/-schema/permissions":{"get":{"tags":["location","access"],"summary":"Get available permissions for a location resource type","description":"Response contains the grantable permissions that are available for a location when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{name}":{"get":{"tags":["org"],"summary":"Get an org by name","description":"Response will contain the requested org if the caller is authorized to view it","parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/org"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["org"],"summary":"Perform a Patch on an org by name","description":"","parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_org"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/org"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org":{"get":{"tags":["org"],"summary":"Get all orgs","description":"Response will contain all the orgs the caller is authorized to view","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/-query":{"post":{"tags":["org","query"],"summary":"Get all orgs based on a query","description":"Response will contain all the orgs the caller is authorized to view","requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{name}/-accessreport":{"get":{"tags":["org","access"],"summary":"Get the access report for an org by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for an org if the caller is authorized to view it","parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/org/-schema/permissions":{"get":{"tags":["org","access"],"summary":"Get available permissions for an org resource type","description":"Response contains the grantable permissions that are available for an org when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/policy/{name}":{"get":{"tags":["policy"],"summary":"Get a policy by name","description":"Response will contain the requested policy if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/policy"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["policy"],"summary":"Perform a Patch on a policy by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_policy"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/policy"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["policy"],"summary":"Delete a policy by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/policy":{"post":{"tags":["policy"],"summary":"Create a policy","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/policy"}}}},"responses":{"201":{"description":"Policy was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new policy","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["policy"],"summary":"Get all policies","description":"Response will contain all the policies the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/policy/-query":{"post":{"tags":["policy","query"],"summary":"Get all policies based on a query","description":"Response will contain all the policies the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/policy/{name}/-accessreport":{"get":{"tags":["policy","access"],"summary":"Get the access report for a policy by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a policy if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/policy/-schema/permissions":{"get":{"tags":["policy","access"],"summary":"Get available permissions for a policy resource type","description":"Response contains the grantable permissions that are available for a policy when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/quota/{id}":{"get":{"tags":["quota"],"summary":"Get a quota by ID","description":"Response will contain the requested quota if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/quota"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/quota":{"get":{"tags":["quota"],"summary":"Get all quotas","description":"Response will contain all the quotas the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/quota/-query":{"post":{"tags":["quota","query"],"summary":"Get all quotas based on a query","description":"Response will contain all the quotas the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/quota/-schema/permissions":{"get":{"tags":["quota","access"],"summary":"Get available permissions for a quota resource type","description":"Response contains the grantable permissions that are available for a quota when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/secret/{name}":{"get":{"tags":["secret"],"summary":"Get a secret by name","description":"Response will contain the requested secret (except for any sensitive content) if the caller is authorized to view it. Use \"reveal\" to get the sensitive content.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/secret"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["secret"],"summary":"Perform a Patch on a secret by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_secret"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/secret"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["secret"],"summary":"Delete a secret by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/secret":{"post":{"tags":["secret"],"summary":"Create a secret","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/secret"}}}},"responses":{"201":{"description":"Secret was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new secret","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["secret"],"summary":"Get all secrets","description":"Response will contain all the secrets the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/secret/{name}/-reveal":{"get":{"tags":["secret"],"summary":"Get the sensitive content of a secret by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/secret"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/secret/-query":{"post":{"tags":["secret","query"],"summary":"Get all secrets based on a query","description":"Response will contain all the secrets the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/secret/{name}/-accessreport":{"get":{"tags":["secret","access"],"summary":"Get the access report for a secret by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a secret if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/secret/-schema/permissions":{"get":{"tags":["secret","access"],"summary":"Get available permissions for a secret resource type","description":"Response contains the grantable permissions that are available for a secret when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/serviceaccount/{name}":{"get":{"tags":["serviceaccount"],"summary":"Get a service account by name","description":"Response will contain the requested service account if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serviceaccount"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["serviceaccount"],"summary":"Perform a Patch on a service account by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_serviceaccount"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serviceaccount"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["serviceaccount"],"summary":"Delete a service account by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/serviceaccount":{"post":{"tags":["serviceaccount"],"summary":"Create a service account","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serviceaccount"}}}},"responses":{"201":{"description":"Service account was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new service account","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["serviceaccount"],"summary":"Get all service accounts","description":"Response will contain all the service accounts the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/serviceaccount/-query":{"post":{"tags":["serviceaccount","query"],"summary":"Get all service accounts based on a query","description":"Response will contain all the service accounts the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/serviceaccount/{name}/-accessreport":{"get":{"tags":["serviceaccount","access"],"summary":"Get the access report for a service account by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a service account if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/serviceaccount/{name}/-addKey":{"post":{"tags":["serviceaccount"],"summary":"Add a key to a service account","description":"You may want to capture the result of this as the key will never be shown again","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serviceaccount_key"}}}},"responses":{"200":{"description":"Service account was created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/serviceaccount_key"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/serviceaccount/-schema/permissions":{"get":{"tags":["serviceaccount","access"],"summary":"Get available permissions for a service account resource type","description":"Response contains the grantable permissions that are available for a service account when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/task/-forme":{"get":{"tags":["task"],"summary":"List tasks that you can accept to refuse","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/task/-forme":{"get":{"tags":["task"],"summary":"List tasks that you can accept to refuse in a specific org","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/task/{id}":{"get":{"tags":["task"],"summary":"Get a task by ID","description":"Response will contain the requested task if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/secret"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"post":{"tags":["task"],"summary":"Post","description":"Accept or refuse a task","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/secret"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["task"],"summary":"Delete/Cancel a task by ID","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/task":{"get":{"tags":["task"],"summary":"Get all tasks","description":"Response will contain all the tasks the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/task/-query":{"post":{"tags":["task","query"],"summary":"Get all tasks based on a query","description":"Response will contain all the tasks the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/task/-schema/permissions":{"get":{"tags":["task","access"],"summary":"Get available permissions for a task resource type","description":"Response contains the grantable permissions that are available for a task when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/user/{name}":{"get":{"tags":["user"],"summary":"Get a user by name","description":"Response will contain the requested user if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["user"],"summary":"Perform a Patch on a user by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_user"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/user"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["user"],"summary":"Delete a user by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/user":{"get":{"tags":["user"],"summary":"Get all users","description":"Response will contain all the users the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/user/-query":{"post":{"tags":["user","query"],"summary":"Get all users based on a query","description":"Response will contain all the users the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/user/-invite":{"post":{"tags":["user"],"summary":"Invite users to this org","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/invite_request"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/invite_response"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/user/{name}/-accessreport":{"get":{"tags":["user","access"],"summary":"Get the access report for a user by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a user if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/user/-schema/permissions":{"get":{"tags":["user","access"],"summary":"Get available permissions for a user resource type","description":"Response contains the grantable permissions that are available for a user when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/workload/{name}":{"get":{"tags":["workload"],"summary":"Get a workload by GVC and name","description":"Response will contain the requested workload if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/workload"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["workload"],"summary":"Perform a Patch on a workload by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_workload"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/workload"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["workload"],"summary":"Delete a workload by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/workload/{workload}/deployment/{name}":{"get":{"tags":["workload","deployment"],"summary":"Get","description":"Fetch a specific deployment of a workload","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"workload","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/deployment"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/workload":{"post":{"tags":["workload"],"summary":"Create a workload","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/workload"}}}},"responses":{"201":{"description":"Workload was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new workload","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["workload"],"summary":"List workloads in a GVC you are authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/workload":{"get":{"tags":["workload"],"summary":"Get all workloads","description":"Response will contain all the workloads the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/workload/{workload}/deployment":{"get":{"tags":["workload","deployment"],"summary":"List deployments in a workload","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"workload","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/workload/-query":{"post":{"tags":["workload","query"],"summary":"Get all workloads based on a query","description":"Response will contain all the workloads the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/workload/{name}/-accessreport":{"get":{"tags":["workload","access"],"summary":"Get the access report for a workload by GVC and name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a workload if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/workload/-schema/permissions":{"get":{"tags":["workload","access"],"summary":"Get available permissions for a workload resource type","description":"Response contains the grantable permissions that are available for a workload when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/volumeset/{name}":{"get":{"tags":["volumeset"],"summary":"Get a volumeset by GVC and name","description":"Response will contain the requested volumeset if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/volumeset"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["volumeset"],"summary":"Perform a Patch on a volumeset by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_volumeset"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/volumeset"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["volumeset"],"summary":"Delete a volumeset by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/volumeset":{"post":{"tags":["volumeset"],"summary":"Create a volumeset","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/volumeset"}}}},"responses":{"201":{"description":"VolumeSet was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new volumeset","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["volumeset"],"summary":"List volumesets in a GVC you are authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/volumeset":{"get":{"tags":["volumeset"],"summary":"Get all volumesets","description":"Response will contain all the volumesets the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/volumeset/-query":{"post":{"tags":["volumeset","query"],"summary":"Get all volumesets based on a query","description":"Response will contain all the volumesets the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/gvc/{gvc}/volumeset/{name}/-accessreport":{"get":{"tags":["volumeset","access"],"summary":"Get the access report for a volumeset by GVC and name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a volumeset if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"gvc","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/volumeset/-schema/permissions":{"get":{"tags":["volumeset","access"],"summary":"Get available permissions for a volumeset resource type","description":"Response contains the grantable permissions that are available for a volumeset when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/ipset/{name}":{"get":{"tags":["ipset"],"summary":"Get an IP Set by name","description":"Response will contain the requested IP Set if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ipset"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["ipset"],"summary":"Perform a Patch on an IP Set by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_ipset"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ipset"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["ipset"],"summary":"Delete an IP Set by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/ipset":{"post":{"tags":["ipset"],"summary":"Create an IP Set","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ipset"}}}},"responses":{"201":{"description":"IP Set was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new IP Set","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"get":{"tags":["ipset"],"summary":"Get all IP Sets","description":"Response will contain all the IP Sets the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/ipset/{name}/-accessreport":{"get":{"tags":["ipset","access"],"summary":"Get the access report for an IP Set by name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for an IP Set if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/ipset/-schema/permissions":{"get":{"tags":["ipset","access"],"summary":"Get available permissions for an IP Set resource type","description":"Response contains the grantable permissions that are available for a IP Set when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/mk8s/-schema/permissions":{"get":{"tags":["mk8s","access"],"summary":"Get available permissions for an mk8s cluster resource type","description":"Response contains the grantable permissions that are available for an mk8s cluster when adding a binding in a policy.","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/permissions"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/mk8s/-query":{"post":{"tags":["mk8s","query"],"summary":"Get all mk8s clusters based on a query","description":"Response will contain all the mk8s clusters the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/queryresult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/mk8s/{name}":{"get":{"tags":["mk8s"],"summary":"Get an mk8s cluster by name","description":"Response will contain the requested mk8s cluster if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_cluster"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"delete":{"tags":["mk8s"],"summary":"Delete an mk8s cluster by name","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"patch":{"tags":["mk8s"],"summary":"Perform a Patch on an mk8s cluster by name","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patch_mk8s_cluster"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_cluster"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/mk8s":{"get":{"tags":["mk8s"],"summary":"Get all mk8s clusters","description":"Response will contain all the mk8s clusters the caller is authorized to view","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/list"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}},"post":{"tags":["mk8s"],"summary":"Create an Mk8s Cluster","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_cluster"}}}},"responses":{"201":{"description":"Mk8s Cluster was created successfully","content":{"application/json":{}},"headers":{"Location":{"description":"Link to the new mk8s cluster","schema":{"type":"string"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/mk8s/{name}/-cacerts":{"get":{"tags":["mk8s"],"summary":"CA root for this cluster","description":"PEM-encoded CA certificate","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_cacerts"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/mk8s/{name}/-ready":{"get":{"tags":["mk8s"],"summary":"Check if cluster is deployed","description":"","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_ready"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/mk8s/{name}/-join":{"post":{"tags":["mk8s"],"summary":"Retrieve a join shell script.","description":"Note: the result contains sensitive information (secrets). Not all providers support this. In this case 400 will be returned","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_join"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_join_res"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/mk8s/{name}/-cloudinit":{"post":{"tags":["mk8s"],"summary":"Retrieve a cloud-init script","description":"Note: the result contains sensitive information (secrets). Not all providers support this. In this case 400 will be returned","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_cloudinit"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_cloudinit_res"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/mk8s/{name}/-kubeconfig":{"post":{"tags":["mk8s"],"summary":"Retrieve a kubeconfig","description":"The kubeconfig will use the cpln CLI as an auth provider. The response contains not secrets as the cpln CLI is used for authorization","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_kubeconfig"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mk8s_kubeconfig_res"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}},"/org/{org}/mk8s/{name}/-accessreport":{"get":{"tags":["mk8s","access"],"summary":"Get the access report for an mk8s cluster name","description":"Response will contain the permissions and associated bindings (principal and granted permission) for a mk8s cluster if the caller is authorized to view it","parameters":[{"in":"path","name":"org","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessreport"}}}},"403":{"description":"Not found or not allowed to view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}}}}}}