Create a GVC
curl --request POST \
--url https://api.cpln.io/org/{org}/gvc \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"tags": {},
"spec": {
"staticPlacement": {
"locationLinks": [
"<string>"
],
"locationQuery": {
"kind": "<string>",
"spec": {
"match": "all",
"terms": [
{
"op": "=",
"property": "<string>",
"rel": "<string>",
"tag": "<string>",
"value": "<string>"
}
],
"sort": {
"by": "<string>",
"order": "asc"
}
}
},
"locationOptions": [
{
"locationLink": "<string>",
"routingTier": 123,
"latencyOffsetMs": 123,
"latencyToleranceMs": 123
}
]
},
"pullSecretLinks": [
"<string>"
],
"domain": "<string>",
"aliasWorkloadLink": "<string>",
"tracing": {
"sampling": 123,
"lightstep": {
"endpoint": "<string>",
"credentials": "<string>"
},
"customTags": {},
"provider": {
"otel": {
"endpoint": "<string>"
},
"lightstep": {
"endpoint": "<string>",
"credentials": "<string>"
},
"controlplane": {}
}
},
"sidecar": {
"envoy": {
"accessLog": [
{
"priority": 123,
"name": "envoy.http_grpc_access_log",
"excludedWorkloads": [
"<string>"
],
"typed_config": {
"@type": {},
"common_config": {
"log_name": "<string>",
"grpc_service": {
"envoy_grpc": {
"cluster_name": "<string>",
"authority": {
"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": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"google_grpc": {
"target_uri": "<string>",
"channel_credentials": {
"ssl_credentials": {
"root_certs": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"private_key": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"cert_chain": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
}
},
"google_default": {}
},
"call_credentials": [
{
"access_token": "<string>",
"google_compute_engine": {},
"google_refresh_token": "<string>",
"service_account_jwt_access": {
"json_key": "<string>",
"token_lifetime_seconds": 123
},
"google_iam": {
"authorization_token": "<string>",
"authority_selector": "<string>"
},
"from_plugin": {
"name": "<string>",
"typed_config": {}
},
"sts_service": {
"token_exchange_service_uri": "<string>",
"resource": "<string>",
"audience": "<string>",
"scope": "<string>",
"requested_token_type": "<string>",
"subject_token_path": "<string>",
"subject_token_type": "<string>",
"actor_token_path": "<string>",
"actor_token_type": "<string>"
}
}
],
"stat_prefix": "<string>",
"credentials_factory_name": "<string>",
"config": {}
},
"timeout": "<string>",
"initial_metadata": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"buffer_flush_interval": "<string>",
"buffer_size_bytes": 123,
"filter_state_objects_to_log": [
"<string>"
],
"grpc_stream_retry_policy": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"additional_request_headers_to_log": [
"<string>"
],
"additional_response_headers_to_log": [
"<string>"
],
"additional_response_trailers_to_log": [
"<string>"
]
}
}
],
"clusters": [
{
"name": "<string>",
"excludedWorkloads": [
"<string>"
],
"transport_socket_matches": {},
"alt_stat_name": {},
"cluster_type": {},
"eds_cluster_config": {},
"connect_timeout": {},
"per_connection_buffer_limit_bytes": {},
"lb_policy": {},
"load_assignment": {
"cluster_name": "<string>",
"endpoints": {},
"policy": {}
},
"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": {}
}
],
"excludedExternalAuth": [
{
"match": {
"prefix": "<string>",
"path": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"path_separated_prefix": "<string>",
"path_match_policy": {
"name": "<string>",
"typed_config": {}
},
"case_sensitive": true,
"runtime_fraction": {
"default_value": {
"numerator": 123,
"denominator": 123
},
"runtime_key": "<string>"
},
"headers": [
{
"name": "<string>",
"safe_regex_match": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"range_match": {
"start": 123,
"end": 123
},
"present_match": true,
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"invert_match": true,
"treat_missing_header_as_empty": true
}
],
"query_parameters": [
{
"name": "<string>",
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"present_match": true
}
],
"grpc": {
"presented": true,
"validated": true
},
"tls_context": {
"presented": true,
"validated": true
},
"dynamic_metadata": [
{
"filter": "<string>",
"path": [
{
"key": "<string>"
}
],
"value": {
"null_match": {},
"double_match": {
"range": {
"start": 123,
"end": 123
},
"exact": 123
},
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"bool_match": true,
"present_match": true
},
"invert": true
}
]
},
"port": 123,
"svcPort": 123
}
],
"excludedRateLimit": [
{
"match": {
"prefix": "<string>",
"path": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"path_separated_prefix": "<string>",
"path_match_policy": {
"name": "<string>",
"typed_config": {}
},
"case_sensitive": true,
"runtime_fraction": {
"default_value": {
"numerator": 123,
"denominator": 123
},
"runtime_key": "<string>"
},
"headers": [
{
"name": "<string>",
"safe_regex_match": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"range_match": {
"start": 123,
"end": 123
},
"present_match": true,
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"invert_match": true,
"treat_missing_header_as_empty": true
}
],
"query_parameters": [
{
"name": "<string>",
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"present_match": true
}
],
"grpc": {
"presented": true,
"validated": true
},
"tls_context": {
"presented": true,
"validated": true
},
"dynamic_metadata": [
{
"filter": "<string>",
"path": [
{
"key": "<string>"
}
],
"value": {
"null_match": {},
"double_match": {
"range": {
"start": 123,
"end": 123
},
"exact": 123
},
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"bool_match": true,
"present_match": true
},
"invert": true
}
]
},
"port": 123,
"svcPort": 123
}
],
"http": [
{
"priority": 123,
"excludedWorkloads": [
"<string>"
],
"name": "envoy.filters.http.ext_authz",
"typed_config": {
"grpc_service": {
"envoy_grpc": {
"cluster_name": "<string>",
"authority": {
"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": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"google_grpc": {
"target_uri": "<string>",
"channel_credentials": {
"ssl_credentials": {
"root_certs": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"private_key": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"cert_chain": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
}
},
"google_default": {}
},
"call_credentials": [
{
"access_token": "<string>",
"google_compute_engine": {},
"google_refresh_token": "<string>",
"service_account_jwt_access": {
"json_key": "<string>",
"token_lifetime_seconds": 123
},
"google_iam": {
"authorization_token": "<string>",
"authority_selector": "<string>"
},
"from_plugin": {
"name": "<string>",
"typed_config": {}
},
"sts_service": {
"token_exchange_service_uri": "<string>",
"resource": "<string>",
"audience": "<string>",
"scope": "<string>",
"requested_token_type": "<string>",
"subject_token_path": "<string>",
"subject_token_type": "<string>",
"actor_token_path": "<string>",
"actor_token_type": "<string>"
}
}
],
"stat_prefix": "<string>",
"credentials_factory_name": "<string>",
"config": {}
},
"timeout": "<string>",
"initial_metadata": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"http_service": {
"server_uri": {
"uri": "<string>",
"cluster": "<string>",
"timeout": "<string>"
},
"path_prefix": "<string>",
"authorization_request": {
"allowed_headers": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"headers_to_add": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"authorization_response": {
"allowed_upstream_headers": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"allowed_upstream_headers_to_append": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"allowed_client_headers": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"allowed_client_headers_on_success": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"dynamic_metadata_from_headers": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
}
}
},
"failure_mode_allow": true,
"failure_mode_allow_header_add": true,
"with_request_body": {
"max_request_bytes": 123,
"allow_partial_message": true,
"pack_as_bytes": true
},
"clear_route_cache": true,
"status_on_error": {},
"metadata_context_namespaces": [
"<string>"
],
"typed_metadata_context_namespaces": [
"<string>"
],
"route_metadata_context_namespaces": [
"<string>"
],
"route_typed_metadata_context_namespaces": [
"<string>"
],
"filter_enabled": {
"numerator": 123,
"denominator": 123
},
"deny_at_disable": {
"default_value": true,
"runtime_key": "<string>"
},
"include_peer_certificate": true,
"stat_prefix": "<string>",
"bootstrap_metadata_labels_key": "<string>",
"allowed_headers": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"include_tls_session": true,
"charge_cluster_response_stats": true,
"@type": "type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"
}
}
],
"network": [
{}
],
"volumes": [
{
"uri": "<string>",
"recoveryPolicy": "retain",
"path": "<string>",
"name": "<string>",
"bootOrder": 123
}
]
}
},
"env": [
{
"name": "<string>",
"value": "<string>"
}
],
"loadBalancer": {
"dedicated": true,
"multiZone": {
"enabled": true
},
"trustedProxies": 123,
"redirect": {
"class": {
"status5xx": "<string>",
"status401": "<string>"
}
},
"ipSet": "<string>"
},
"keda": {
"enabled": true,
"identityLink": "<string>",
"secrets": [
"<string>"
]
}
}
}
'import requests
url = "https://api.cpln.io/org/{org}/gvc"
payload = {
"name": "<string>",
"description": "<string>",
"tags": {},
"spec": {
"staticPlacement": {
"locationLinks": ["<string>"],
"locationQuery": {
"kind": "<string>",
"spec": {
"match": "all",
"terms": [
{
"op": "=",
"property": "<string>",
"rel": "<string>",
"tag": "<string>",
"value": "<string>"
}
],
"sort": {
"by": "<string>",
"order": "asc"
}
}
},
"locationOptions": [
{
"locationLink": "<string>",
"routingTier": 123,
"latencyOffsetMs": 123,
"latencyToleranceMs": 123
}
]
},
"pullSecretLinks": ["<string>"],
"domain": "<string>",
"aliasWorkloadLink": "<string>",
"tracing": {
"sampling": 123,
"lightstep": {
"endpoint": "<string>",
"credentials": "<string>"
},
"customTags": {},
"provider": {
"otel": { "endpoint": "<string>" },
"lightstep": {
"endpoint": "<string>",
"credentials": "<string>"
},
"controlplane": {}
}
},
"sidecar": { "envoy": {
"accessLog": [
{
"priority": 123,
"name": "envoy.http_grpc_access_log",
"excludedWorkloads": ["<string>"],
"typed_config": {
"@type": {},
"common_config": {
"log_name": "<string>",
"grpc_service": {
"envoy_grpc": {
"cluster_name": "<string>",
"authority": {
"adjust": None,
"in": False,
"iterables": None,
"map": None,
"separator": ".",
"type": "value",
"ancestor": 1,
"path": ["cluster_name"],
"depth": 1,
"key": "cluster_name",
"root": "cluster_name",
"display": "ref:cluster_name"
},
"retry_policy": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"google_grpc": {
"target_uri": "<string>",
"channel_credentials": {
"ssl_credentials": {
"root_certs": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"private_key": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"cert_chain": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
}
},
"google_default": {}
},
"call_credentials": [
{
"access_token": "<string>",
"google_compute_engine": {},
"google_refresh_token": "<string>",
"service_account_jwt_access": {
"json_key": "<string>",
"token_lifetime_seconds": 123
},
"google_iam": {
"authorization_token": "<string>",
"authority_selector": "<string>"
},
"from_plugin": {
"name": "<string>",
"typed_config": {}
},
"sts_service": {
"token_exchange_service_uri": "<string>",
"resource": "<string>",
"audience": "<string>",
"scope": "<string>",
"requested_token_type": "<string>",
"subject_token_path": "<string>",
"subject_token_type": "<string>",
"actor_token_path": "<string>",
"actor_token_type": "<string>"
}
}
],
"stat_prefix": "<string>",
"credentials_factory_name": "<string>",
"config": {}
},
"timeout": "<string>",
"initial_metadata": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"buffer_flush_interval": "<string>",
"buffer_size_bytes": 123,
"filter_state_objects_to_log": ["<string>"],
"grpc_stream_retry_policy": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"additional_request_headers_to_log": ["<string>"],
"additional_response_headers_to_log": ["<string>"],
"additional_response_trailers_to_log": ["<string>"]
}
}
],
"clusters": [
{
"name": "<string>",
"excludedWorkloads": ["<string>"],
"transport_socket_matches": {},
"alt_stat_name": {},
"cluster_type": {},
"eds_cluster_config": {},
"connect_timeout": {},
"per_connection_buffer_limit_bytes": {},
"lb_policy": {},
"load_assignment": {
"cluster_name": "<string>",
"endpoints": {},
"policy": {}
},
"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": {}
}
],
"excludedExternalAuth": [
{
"match": {
"prefix": "<string>",
"path": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"path_separated_prefix": "<string>",
"path_match_policy": {
"name": "<string>",
"typed_config": {}
},
"case_sensitive": True,
"runtime_fraction": {
"default_value": {
"numerator": 123,
"denominator": 123
},
"runtime_key": "<string>"
},
"headers": [
{
"name": "<string>",
"safe_regex_match": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"range_match": {
"start": 123,
"end": 123
},
"present_match": True,
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"invert_match": True,
"treat_missing_header_as_empty": True
}
],
"query_parameters": [
{
"name": "<string>",
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"present_match": True
}
],
"grpc": {
"presented": True,
"validated": True
},
"tls_context": {
"presented": True,
"validated": True
},
"dynamic_metadata": [
{
"filter": "<string>",
"path": [{ "key": "<string>" }],
"value": {
"null_match": {},
"double_match": {
"range": {
"start": 123,
"end": 123
},
"exact": 123
},
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"bool_match": True,
"present_match": True
},
"invert": True
}
]
},
"port": 123,
"svcPort": 123
}
],
"excludedRateLimit": [
{
"match": {
"prefix": "<string>",
"path": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"path_separated_prefix": "<string>",
"path_match_policy": {
"name": "<string>",
"typed_config": {}
},
"case_sensitive": True,
"runtime_fraction": {
"default_value": {
"numerator": 123,
"denominator": 123
},
"runtime_key": "<string>"
},
"headers": [
{
"name": "<string>",
"safe_regex_match": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"range_match": {
"start": 123,
"end": 123
},
"present_match": True,
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"invert_match": True,
"treat_missing_header_as_empty": True
}
],
"query_parameters": [
{
"name": "<string>",
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"present_match": True
}
],
"grpc": {
"presented": True,
"validated": True
},
"tls_context": {
"presented": True,
"validated": True
},
"dynamic_metadata": [
{
"filter": "<string>",
"path": [{ "key": "<string>" }],
"value": {
"null_match": {},
"double_match": {
"range": {
"start": 123,
"end": 123
},
"exact": 123
},
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"bool_match": True,
"present_match": True
},
"invert": True
}
]
},
"port": 123,
"svcPort": 123
}
],
"http": [
{
"priority": 123,
"excludedWorkloads": ["<string>"],
"name": "envoy.filters.http.ext_authz",
"typed_config": {
"grpc_service": {
"envoy_grpc": {
"cluster_name": "<string>",
"authority": {
"adjust": None,
"in": False,
"iterables": None,
"map": None,
"separator": ".",
"type": "value",
"ancestor": 1,
"path": ["cluster_name"],
"depth": 1,
"key": "cluster_name",
"root": "cluster_name",
"display": "ref:cluster_name"
},
"retry_policy": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"google_grpc": {
"target_uri": "<string>",
"channel_credentials": {
"ssl_credentials": {
"root_certs": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"private_key": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"cert_chain": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
}
},
"google_default": {}
},
"call_credentials": [
{
"access_token": "<string>",
"google_compute_engine": {},
"google_refresh_token": "<string>",
"service_account_jwt_access": {
"json_key": "<string>",
"token_lifetime_seconds": 123
},
"google_iam": {
"authorization_token": "<string>",
"authority_selector": "<string>"
},
"from_plugin": {
"name": "<string>",
"typed_config": {}
},
"sts_service": {
"token_exchange_service_uri": "<string>",
"resource": "<string>",
"audience": "<string>",
"scope": "<string>",
"requested_token_type": "<string>",
"subject_token_path": "<string>",
"subject_token_type": "<string>",
"actor_token_path": "<string>",
"actor_token_type": "<string>"
}
}
],
"stat_prefix": "<string>",
"credentials_factory_name": "<string>",
"config": {}
},
"timeout": "<string>",
"initial_metadata": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"http_service": {
"server_uri": {
"uri": "<string>",
"cluster": "<string>",
"timeout": "<string>"
},
"path_prefix": "<string>",
"authorization_request": {
"allowed_headers": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"headers_to_add": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"authorization_response": {
"allowed_upstream_headers": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"allowed_upstream_headers_to_append": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"allowed_client_headers": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"allowed_client_headers_on_success": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"dynamic_metadata_from_headers": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] }
}
},
"failure_mode_allow": True,
"failure_mode_allow_header_add": True,
"with_request_body": {
"max_request_bytes": 123,
"allow_partial_message": True,
"pack_as_bytes": True
},
"clear_route_cache": True,
"status_on_error": {},
"metadata_context_namespaces": ["<string>"],
"typed_metadata_context_namespaces": ["<string>"],
"route_metadata_context_namespaces": ["<string>"],
"route_typed_metadata_context_namespaces": ["<string>"],
"filter_enabled": {
"numerator": 123,
"denominator": 123
},
"deny_at_disable": {
"default_value": True,
"runtime_key": "<string>"
},
"include_peer_certificate": True,
"stat_prefix": "<string>",
"bootstrap_metadata_labels_key": "<string>",
"allowed_headers": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"include_tls_session": True,
"charge_cluster_response_stats": True,
"@type": "type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"
}
}
],
"network": [{}],
"volumes": [
{
"uri": "<string>",
"recoveryPolicy": "retain",
"path": "<string>",
"name": "<string>",
"bootOrder": 123
}
]
} },
"env": [
{
"name": "<string>",
"value": "<string>"
}
],
"loadBalancer": {
"dedicated": True,
"multiZone": { "enabled": True },
"trustedProxies": 123,
"redirect": { "class": {
"status5xx": "<string>",
"status401": "<string>"
} },
"ipSet": "<string>"
},
"keda": {
"enabled": True,
"identityLink": "<string>",
"secrets": ["<string>"]
}
}
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
tags: {},
spec: {
staticPlacement: {
locationLinks: ['<string>'],
locationQuery: {
kind: '<string>',
spec: {
match: 'all',
terms: [
{
op: '=',
property: '<string>',
rel: '<string>',
tag: '<string>',
value: '<string>'
}
],
sort: {by: '<string>', order: 'asc'}
}
},
locationOptions: [
{
locationLink: '<string>',
routingTier: 123,
latencyOffsetMs: 123,
latencyToleranceMs: 123
}
]
},
pullSecretLinks: ['<string>'],
domain: '<string>',
aliasWorkloadLink: '<string>',
tracing: {
sampling: 123,
lightstep: {endpoint: '<string>', credentials: '<string>'},
customTags: {},
provider: {
otel: {endpoint: '<string>'},
lightstep: {endpoint: '<string>', credentials: '<string>'},
controlplane: {}
}
},
sidecar: {
envoy: {
accessLog: [
{
priority: 123,
name: 'envoy.http_grpc_access_log',
excludedWorkloads: ['<string>'],
typed_config: {
'@type': {},
common_config: {
log_name: '<string>',
grpc_service: {
envoy_grpc: {
cluster_name: '<string>',
authority: {
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: {
retry_back_off: {base_interval: '<string>', max_interval: '<string>'},
num_retries: 123
}
},
google_grpc: {
target_uri: '<string>',
channel_credentials: {
ssl_credentials: {
root_certs: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
},
private_key: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
},
cert_chain: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
}
},
google_default: {}
},
call_credentials: [
{
access_token: '<string>',
google_compute_engine: {},
google_refresh_token: '<string>',
service_account_jwt_access: {json_key: '<string>', token_lifetime_seconds: 123},
google_iam: {authorization_token: '<string>', authority_selector: '<string>'},
from_plugin: {name: '<string>', typed_config: {}},
sts_service: {
token_exchange_service_uri: '<string>',
resource: '<string>',
audience: '<string>',
scope: '<string>',
requested_token_type: '<string>',
subject_token_path: '<string>',
subject_token_type: '<string>',
actor_token_path: '<string>',
actor_token_type: '<string>'
}
}
],
stat_prefix: '<string>',
credentials_factory_name: '<string>',
config: {}
},
timeout: '<string>',
initial_metadata: [{key: '<string>', value: '<string>', raw_value: '<unknown>'}]
},
buffer_flush_interval: '<string>',
buffer_size_bytes: 123,
filter_state_objects_to_log: ['<string>'],
grpc_stream_retry_policy: {
retry_back_off: {base_interval: '<string>', max_interval: '<string>'},
num_retries: 123
}
},
additional_request_headers_to_log: ['<string>'],
additional_response_headers_to_log: ['<string>'],
additional_response_trailers_to_log: ['<string>']
}
}
],
clusters: [
{
name: '<string>',
excludedWorkloads: ['<string>'],
transport_socket_matches: {},
alt_stat_name: {},
cluster_type: {},
eds_cluster_config: {},
connect_timeout: {},
per_connection_buffer_limit_bytes: {},
lb_policy: {},
load_assignment: {cluster_name: '<string>', endpoints: {}, policy: {}},
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: {}
}
],
excludedExternalAuth: [
{
match: {
prefix: '<string>',
path: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
path_separated_prefix: '<string>',
path_match_policy: {name: '<string>', typed_config: {}},
case_sensitive: true,
runtime_fraction: {default_value: {numerator: 123, denominator: 123}, runtime_key: '<string>'},
headers: [
{
name: '<string>',
safe_regex_match: {google_re2: {max_program_size: 123}, regex: '<string>'},
range_match: {start: 123, end: 123},
present_match: true,
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
invert_match: true,
treat_missing_header_as_empty: true
}
],
query_parameters: [
{
name: '<string>',
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
present_match: true
}
],
grpc: {presented: true, validated: true},
tls_context: {presented: true, validated: true},
dynamic_metadata: [
{
filter: '<string>',
path: [{key: '<string>'}],
value: {
null_match: {},
double_match: {range: {start: 123, end: 123}, exact: 123},
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
bool_match: true,
present_match: true
},
invert: true
}
]
},
port: 123,
svcPort: 123
}
],
excludedRateLimit: [
{
match: {
prefix: '<string>',
path: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
path_separated_prefix: '<string>',
path_match_policy: {name: '<string>', typed_config: {}},
case_sensitive: true,
runtime_fraction: {default_value: {numerator: 123, denominator: 123}, runtime_key: '<string>'},
headers: [
{
name: '<string>',
safe_regex_match: {google_re2: {max_program_size: 123}, regex: '<string>'},
range_match: {start: 123, end: 123},
present_match: true,
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
invert_match: true,
treat_missing_header_as_empty: true
}
],
query_parameters: [
{
name: '<string>',
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
present_match: true
}
],
grpc: {presented: true, validated: true},
tls_context: {presented: true, validated: true},
dynamic_metadata: [
{
filter: '<string>',
path: [{key: '<string>'}],
value: {
null_match: {},
double_match: {range: {start: 123, end: 123}, exact: 123},
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
bool_match: true,
present_match: true
},
invert: true
}
]
},
port: 123,
svcPort: 123
}
],
http: [
{
priority: 123,
excludedWorkloads: ['<string>'],
name: 'envoy.filters.http.ext_authz',
typed_config: {
grpc_service: {
envoy_grpc: {
cluster_name: '<string>',
authority: {
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: {
retry_back_off: {base_interval: '<string>', max_interval: '<string>'},
num_retries: 123
}
},
google_grpc: {
target_uri: '<string>',
channel_credentials: {
ssl_credentials: {
root_certs: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
},
private_key: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
},
cert_chain: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
}
},
google_default: {}
},
call_credentials: [
{
access_token: '<string>',
google_compute_engine: {},
google_refresh_token: '<string>',
service_account_jwt_access: {json_key: '<string>', token_lifetime_seconds: 123},
google_iam: {authorization_token: '<string>', authority_selector: '<string>'},
from_plugin: {name: '<string>', typed_config: {}},
sts_service: {
token_exchange_service_uri: '<string>',
resource: '<string>',
audience: '<string>',
scope: '<string>',
requested_token_type: '<string>',
subject_token_path: '<string>',
subject_token_type: '<string>',
actor_token_path: '<string>',
actor_token_type: '<string>'
}
}
],
stat_prefix: '<string>',
credentials_factory_name: '<string>',
config: {}
},
timeout: '<string>',
initial_metadata: [{key: '<string>', value: '<string>', raw_value: '<unknown>'}]
},
http_service: {
server_uri: {uri: '<string>', cluster: '<string>', timeout: '<string>'},
path_prefix: '<string>',
authorization_request: {
allowed_headers: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
headers_to_add: [{key: '<string>', value: '<string>', raw_value: '<unknown>'}]
},
authorization_response: {
allowed_upstream_headers: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
allowed_upstream_headers_to_append: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
allowed_client_headers: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
allowed_client_headers_on_success: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
dynamic_metadata_from_headers: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
}
}
},
failure_mode_allow: true,
failure_mode_allow_header_add: true,
with_request_body: {max_request_bytes: 123, allow_partial_message: true, pack_as_bytes: true},
clear_route_cache: true,
status_on_error: {},
metadata_context_namespaces: ['<string>'],
typed_metadata_context_namespaces: ['<string>'],
route_metadata_context_namespaces: ['<string>'],
route_typed_metadata_context_namespaces: ['<string>'],
filter_enabled: {numerator: 123, denominator: 123},
deny_at_disable: {default_value: true, runtime_key: '<string>'},
include_peer_certificate: true,
stat_prefix: '<string>',
bootstrap_metadata_labels_key: '<string>',
allowed_headers: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
include_tls_session: true,
charge_cluster_response_stats: true,
'@type': 'type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz'
}
}
],
network: [{}],
volumes: [
{
uri: '<string>',
recoveryPolicy: 'retain',
path: '<string>',
name: '<string>',
bootOrder: 123
}
]
}
},
env: [{name: '<string>', value: '<string>'}],
loadBalancer: {
dedicated: true,
multiZone: {enabled: true},
trustedProxies: 123,
redirect: {class: {status5xx: '<string>', status401: '<string>'}},
ipSet: '<string>'
},
keda: {enabled: true, identityLink: '<string>', secrets: ['<string>']}
}
})
};
fetch('https://api.cpln.io/org/{org}/gvc', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cpln.io/org/{org}/gvc",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'tags' => [
],
'spec' => [
'staticPlacement' => [
'locationLinks' => [
'<string>'
],
'locationQuery' => [
'kind' => '<string>',
'spec' => [
'match' => 'all',
'terms' => [
[
'op' => '=',
'property' => '<string>',
'rel' => '<string>',
'tag' => '<string>',
'value' => '<string>'
]
],
'sort' => [
'by' => '<string>',
'order' => 'asc'
]
]
],
'locationOptions' => [
[
'locationLink' => '<string>',
'routingTier' => 123,
'latencyOffsetMs' => 123,
'latencyToleranceMs' => 123
]
]
],
'pullSecretLinks' => [
'<string>'
],
'domain' => '<string>',
'aliasWorkloadLink' => '<string>',
'tracing' => [
'sampling' => 123,
'lightstep' => [
'endpoint' => '<string>',
'credentials' => '<string>'
],
'customTags' => [
],
'provider' => [
'otel' => [
'endpoint' => '<string>'
],
'lightstep' => [
'endpoint' => '<string>',
'credentials' => '<string>'
],
'controlplane' => [
]
]
],
'sidecar' => [
'envoy' => [
'accessLog' => [
[
'priority' => 123,
'name' => 'envoy.http_grpc_access_log',
'excludedWorkloads' => [
'<string>'
],
'typed_config' => [
'@type' => [
],
'common_config' => [
'log_name' => '<string>',
'grpc_service' => [
'envoy_grpc' => [
'cluster_name' => '<string>',
'authority' => [
'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' => [
'retry_back_off' => [
'base_interval' => '<string>',
'max_interval' => '<string>'
],
'num_retries' => 123
]
],
'google_grpc' => [
'target_uri' => '<string>',
'channel_credentials' => [
'ssl_credentials' => [
'root_certs' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
],
'private_key' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
],
'cert_chain' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
]
],
'google_default' => [
]
],
'call_credentials' => [
[
'access_token' => '<string>',
'google_compute_engine' => [
],
'google_refresh_token' => '<string>',
'service_account_jwt_access' => [
'json_key' => '<string>',
'token_lifetime_seconds' => 123
],
'google_iam' => [
'authorization_token' => '<string>',
'authority_selector' => '<string>'
],
'from_plugin' => [
'name' => '<string>',
'typed_config' => [
]
],
'sts_service' => [
'token_exchange_service_uri' => '<string>',
'resource' => '<string>',
'audience' => '<string>',
'scope' => '<string>',
'requested_token_type' => '<string>',
'subject_token_path' => '<string>',
'subject_token_type' => '<string>',
'actor_token_path' => '<string>',
'actor_token_type' => '<string>'
]
]
],
'stat_prefix' => '<string>',
'credentials_factory_name' => '<string>',
'config' => [
]
],
'timeout' => '<string>',
'initial_metadata' => [
[
'key' => '<string>',
'value' => '<string>',
'raw_value' => '<unknown>'
]
]
],
'buffer_flush_interval' => '<string>',
'buffer_size_bytes' => 123,
'filter_state_objects_to_log' => [
'<string>'
],
'grpc_stream_retry_policy' => [
'retry_back_off' => [
'base_interval' => '<string>',
'max_interval' => '<string>'
],
'num_retries' => 123
]
],
'additional_request_headers_to_log' => [
'<string>'
],
'additional_response_headers_to_log' => [
'<string>'
],
'additional_response_trailers_to_log' => [
'<string>'
]
]
]
],
'clusters' => [
[
'name' => '<string>',
'excludedWorkloads' => [
'<string>'
],
'transport_socket_matches' => [
],
'alt_stat_name' => [
],
'cluster_type' => [
],
'eds_cluster_config' => [
],
'connect_timeout' => [
],
'per_connection_buffer_limit_bytes' => [
],
'lb_policy' => [
],
'load_assignment' => [
'cluster_name' => '<string>',
'endpoints' => [
],
'policy' => [
]
],
'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' => [
]
]
],
'excludedExternalAuth' => [
[
'match' => [
'prefix' => '<string>',
'path' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'path_separated_prefix' => '<string>',
'path_match_policy' => [
'name' => '<string>',
'typed_config' => [
]
],
'case_sensitive' => true,
'runtime_fraction' => [
'default_value' => [
'numerator' => 123,
'denominator' => 123
],
'runtime_key' => '<string>'
],
'headers' => [
[
'name' => '<string>',
'safe_regex_match' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'range_match' => [
'start' => 123,
'end' => 123
],
'present_match' => true,
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'invert_match' => true,
'treat_missing_header_as_empty' => true
]
],
'query_parameters' => [
[
'name' => '<string>',
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'present_match' => true
]
],
'grpc' => [
'presented' => true,
'validated' => true
],
'tls_context' => [
'presented' => true,
'validated' => true
],
'dynamic_metadata' => [
[
'filter' => '<string>',
'path' => [
[
'key' => '<string>'
]
],
'value' => [
'null_match' => [
],
'double_match' => [
'range' => [
'start' => 123,
'end' => 123
],
'exact' => 123
],
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'bool_match' => true,
'present_match' => true
],
'invert' => true
]
]
],
'port' => 123,
'svcPort' => 123
]
],
'excludedRateLimit' => [
[
'match' => [
'prefix' => '<string>',
'path' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'path_separated_prefix' => '<string>',
'path_match_policy' => [
'name' => '<string>',
'typed_config' => [
]
],
'case_sensitive' => true,
'runtime_fraction' => [
'default_value' => [
'numerator' => 123,
'denominator' => 123
],
'runtime_key' => '<string>'
],
'headers' => [
[
'name' => '<string>',
'safe_regex_match' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'range_match' => [
'start' => 123,
'end' => 123
],
'present_match' => true,
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'invert_match' => true,
'treat_missing_header_as_empty' => true
]
],
'query_parameters' => [
[
'name' => '<string>',
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'present_match' => true
]
],
'grpc' => [
'presented' => true,
'validated' => true
],
'tls_context' => [
'presented' => true,
'validated' => true
],
'dynamic_metadata' => [
[
'filter' => '<string>',
'path' => [
[
'key' => '<string>'
]
],
'value' => [
'null_match' => [
],
'double_match' => [
'range' => [
'start' => 123,
'end' => 123
],
'exact' => 123
],
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'bool_match' => true,
'present_match' => true
],
'invert' => true
]
]
],
'port' => 123,
'svcPort' => 123
]
],
'http' => [
[
'priority' => 123,
'excludedWorkloads' => [
'<string>'
],
'name' => 'envoy.filters.http.ext_authz',
'typed_config' => [
'grpc_service' => [
'envoy_grpc' => [
'cluster_name' => '<string>',
'authority' => [
'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' => [
'retry_back_off' => [
'base_interval' => '<string>',
'max_interval' => '<string>'
],
'num_retries' => 123
]
],
'google_grpc' => [
'target_uri' => '<string>',
'channel_credentials' => [
'ssl_credentials' => [
'root_certs' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
],
'private_key' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
],
'cert_chain' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
]
],
'google_default' => [
]
],
'call_credentials' => [
[
'access_token' => '<string>',
'google_compute_engine' => [
],
'google_refresh_token' => '<string>',
'service_account_jwt_access' => [
'json_key' => '<string>',
'token_lifetime_seconds' => 123
],
'google_iam' => [
'authorization_token' => '<string>',
'authority_selector' => '<string>'
],
'from_plugin' => [
'name' => '<string>',
'typed_config' => [
]
],
'sts_service' => [
'token_exchange_service_uri' => '<string>',
'resource' => '<string>',
'audience' => '<string>',
'scope' => '<string>',
'requested_token_type' => '<string>',
'subject_token_path' => '<string>',
'subject_token_type' => '<string>',
'actor_token_path' => '<string>',
'actor_token_type' => '<string>'
]
]
],
'stat_prefix' => '<string>',
'credentials_factory_name' => '<string>',
'config' => [
]
],
'timeout' => '<string>',
'initial_metadata' => [
[
'key' => '<string>',
'value' => '<string>',
'raw_value' => '<unknown>'
]
]
],
'http_service' => [
'server_uri' => [
'uri' => '<string>',
'cluster' => '<string>',
'timeout' => '<string>'
],
'path_prefix' => '<string>',
'authorization_request' => [
'allowed_headers' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'headers_to_add' => [
[
'key' => '<string>',
'value' => '<string>',
'raw_value' => '<unknown>'
]
]
],
'authorization_response' => [
'allowed_upstream_headers' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'allowed_upstream_headers_to_append' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'allowed_client_headers' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'allowed_client_headers_on_success' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'dynamic_metadata_from_headers' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
]
]
],
'failure_mode_allow' => true,
'failure_mode_allow_header_add' => true,
'with_request_body' => [
'max_request_bytes' => 123,
'allow_partial_message' => true,
'pack_as_bytes' => true
],
'clear_route_cache' => true,
'status_on_error' => [
],
'metadata_context_namespaces' => [
'<string>'
],
'typed_metadata_context_namespaces' => [
'<string>'
],
'route_metadata_context_namespaces' => [
'<string>'
],
'route_typed_metadata_context_namespaces' => [
'<string>'
],
'filter_enabled' => [
'numerator' => 123,
'denominator' => 123
],
'deny_at_disable' => [
'default_value' => true,
'runtime_key' => '<string>'
],
'include_peer_certificate' => true,
'stat_prefix' => '<string>',
'bootstrap_metadata_labels_key' => '<string>',
'allowed_headers' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'include_tls_session' => true,
'charge_cluster_response_stats' => true,
'@type' => 'type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz'
]
]
],
'network' => [
[
]
],
'volumes' => [
[
'uri' => '<string>',
'recoveryPolicy' => 'retain',
'path' => '<string>',
'name' => '<string>',
'bootOrder' => 123
]
]
]
],
'env' => [
[
'name' => '<string>',
'value' => '<string>'
]
],
'loadBalancer' => [
'dedicated' => true,
'multiZone' => [
'enabled' => true
],
'trustedProxies' => 123,
'redirect' => [
'class' => [
'status5xx' => '<string>',
'status401' => '<string>'
]
],
'ipSet' => '<string>'
],
'keda' => [
'enabled' => true,
'identityLink' => '<string>',
'secrets' => [
'<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cpln.io/org/{org}/gvc"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": {},\n \"spec\": {\n \"staticPlacement\": {\n \"locationLinks\": [\n \"<string>\"\n ],\n \"locationQuery\": {\n \"kind\": \"<string>\",\n \"spec\": {\n \"match\": \"all\",\n \"terms\": [\n {\n \"op\": \"=\",\n \"property\": \"<string>\",\n \"rel\": \"<string>\",\n \"tag\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"sort\": {\n \"by\": \"<string>\",\n \"order\": \"asc\"\n }\n }\n },\n \"locationOptions\": [\n {\n \"locationLink\": \"<string>\",\n \"routingTier\": 123,\n \"latencyOffsetMs\": 123,\n \"latencyToleranceMs\": 123\n }\n ]\n },\n \"pullSecretLinks\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"aliasWorkloadLink\": \"<string>\",\n \"tracing\": {\n \"sampling\": 123,\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"customTags\": {},\n \"provider\": {\n \"otel\": {\n \"endpoint\": \"<string>\"\n },\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"controlplane\": {}\n }\n },\n \"sidecar\": {\n \"envoy\": {\n \"accessLog\": [\n {\n \"priority\": 123,\n \"name\": \"envoy.http_grpc_access_log\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"typed_config\": {\n \"@type\": {},\n \"common_config\": {\n \"log_name\": \"<string>\",\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"buffer_flush_interval\": \"<string>\",\n \"buffer_size_bytes\": 123,\n \"filter_state_objects_to_log\": [\n \"<string>\"\n ],\n \"grpc_stream_retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"additional_request_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_trailers_to_log\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"clusters\": [\n {\n \"name\": \"<string>\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"transport_socket_matches\": {},\n \"alt_stat_name\": {},\n \"cluster_type\": {},\n \"eds_cluster_config\": {},\n \"connect_timeout\": {},\n \"per_connection_buffer_limit_bytes\": {},\n \"lb_policy\": {},\n \"load_assignment\": {\n \"cluster_name\": \"<string>\",\n \"endpoints\": {},\n \"policy\": {}\n },\n \"health_checks\": {},\n \"max_requests_per_connection\": {},\n \"circuit_breakers\": {},\n \"upstream_http_protocol_options\": {},\n \"common_http_protocol_options\": {},\n \"http_protocol_options\": {},\n \"http2_protocol_options\": {},\n \"typed_extension_protocol_options\": {},\n \"dns_refresh_rate\": {},\n \"dns_failure_refresh_rate\": {},\n \"respect_dns_ttl\": {},\n \"dns_lookup_family\": {},\n \"dns_resolvers\": {},\n \"use_tcp_for_dns_lookups\": {},\n \"dns_resolution_config\": {},\n \"typed_dns_resolver_config\": {},\n \"wait_for_warm_on_init\": {},\n \"outlier_detection\": {},\n \"cleanup_interval\": {},\n \"upstream_bind_config\": {},\n \"lb_subset_config\": {},\n \"ring_hash_lb_config\": {},\n \"maglev_lb_config\": {},\n \"least_request_lb_config\": {},\n \"common_lb_config\": {},\n \"transport_socket\": {},\n \"metadata\": {},\n \"protocol_selection\": {},\n \"upstream_connection_options\": {},\n \"close_connections_on_host_health_failure\": {},\n \"ignore_health_on_host_removal\": {},\n \"filters\": {},\n \"load_balancing_policy\": {},\n \"track_timeout_budgets\": {},\n \"upstream_config\": {},\n \"track_cluster_stats\": {},\n \"preconnect_policy\": {},\n \"connection_pool_per_downstream_connection\": {}\n }\n ],\n \"excludedExternalAuth\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"excludedRateLimit\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"http\": [\n {\n \"priority\": 123,\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"name\": \"envoy.filters.http.ext_authz\",\n \"typed_config\": {\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"http_service\": {\n \"server_uri\": {\n \"uri\": \"<string>\",\n \"cluster\": \"<string>\",\n \"timeout\": \"<string>\"\n },\n \"path_prefix\": \"<string>\",\n \"authorization_request\": {\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"headers_to_add\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"authorization_response\": {\n \"allowed_upstream_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_upstream_headers_to_append\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers_on_success\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"dynamic_metadata_from_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n }\n }\n },\n \"failure_mode_allow\": true,\n \"failure_mode_allow_header_add\": true,\n \"with_request_body\": {\n \"max_request_bytes\": 123,\n \"allow_partial_message\": true,\n \"pack_as_bytes\": true\n },\n \"clear_route_cache\": true,\n \"status_on_error\": {},\n \"metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"filter_enabled\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"deny_at_disable\": {\n \"default_value\": true,\n \"runtime_key\": \"<string>\"\n },\n \"include_peer_certificate\": true,\n \"stat_prefix\": \"<string>\",\n \"bootstrap_metadata_labels_key\": \"<string>\",\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"include_tls_session\": true,\n \"charge_cluster_response_stats\": true,\n \"@type\": \"type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz\"\n }\n }\n ],\n \"network\": [\n {}\n ],\n \"volumes\": [\n {\n \"uri\": \"<string>\",\n \"recoveryPolicy\": \"retain\",\n \"path\": \"<string>\",\n \"name\": \"<string>\",\n \"bootOrder\": 123\n }\n ]\n }\n },\n \"env\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"loadBalancer\": {\n \"dedicated\": true,\n \"multiZone\": {\n \"enabled\": true\n },\n \"trustedProxies\": 123,\n \"redirect\": {\n \"class\": {\n \"status5xx\": \"<string>\",\n \"status401\": \"<string>\"\n }\n },\n \"ipSet\": \"<string>\"\n },\n \"keda\": {\n \"enabled\": true,\n \"identityLink\": \"<string>\",\n \"secrets\": [\n \"<string>\"\n ]\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.cpln.io/org/{org}/gvc")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": {},\n \"spec\": {\n \"staticPlacement\": {\n \"locationLinks\": [\n \"<string>\"\n ],\n \"locationQuery\": {\n \"kind\": \"<string>\",\n \"spec\": {\n \"match\": \"all\",\n \"terms\": [\n {\n \"op\": \"=\",\n \"property\": \"<string>\",\n \"rel\": \"<string>\",\n \"tag\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"sort\": {\n \"by\": \"<string>\",\n \"order\": \"asc\"\n }\n }\n },\n \"locationOptions\": [\n {\n \"locationLink\": \"<string>\",\n \"routingTier\": 123,\n \"latencyOffsetMs\": 123,\n \"latencyToleranceMs\": 123\n }\n ]\n },\n \"pullSecretLinks\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"aliasWorkloadLink\": \"<string>\",\n \"tracing\": {\n \"sampling\": 123,\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"customTags\": {},\n \"provider\": {\n \"otel\": {\n \"endpoint\": \"<string>\"\n },\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"controlplane\": {}\n }\n },\n \"sidecar\": {\n \"envoy\": {\n \"accessLog\": [\n {\n \"priority\": 123,\n \"name\": \"envoy.http_grpc_access_log\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"typed_config\": {\n \"@type\": {},\n \"common_config\": {\n \"log_name\": \"<string>\",\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"buffer_flush_interval\": \"<string>\",\n \"buffer_size_bytes\": 123,\n \"filter_state_objects_to_log\": [\n \"<string>\"\n ],\n \"grpc_stream_retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"additional_request_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_trailers_to_log\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"clusters\": [\n {\n \"name\": \"<string>\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"transport_socket_matches\": {},\n \"alt_stat_name\": {},\n \"cluster_type\": {},\n \"eds_cluster_config\": {},\n \"connect_timeout\": {},\n \"per_connection_buffer_limit_bytes\": {},\n \"lb_policy\": {},\n \"load_assignment\": {\n \"cluster_name\": \"<string>\",\n \"endpoints\": {},\n \"policy\": {}\n },\n \"health_checks\": {},\n \"max_requests_per_connection\": {},\n \"circuit_breakers\": {},\n \"upstream_http_protocol_options\": {},\n \"common_http_protocol_options\": {},\n \"http_protocol_options\": {},\n \"http2_protocol_options\": {},\n \"typed_extension_protocol_options\": {},\n \"dns_refresh_rate\": {},\n \"dns_failure_refresh_rate\": {},\n \"respect_dns_ttl\": {},\n \"dns_lookup_family\": {},\n \"dns_resolvers\": {},\n \"use_tcp_for_dns_lookups\": {},\n \"dns_resolution_config\": {},\n \"typed_dns_resolver_config\": {},\n \"wait_for_warm_on_init\": {},\n \"outlier_detection\": {},\n \"cleanup_interval\": {},\n \"upstream_bind_config\": {},\n \"lb_subset_config\": {},\n \"ring_hash_lb_config\": {},\n \"maglev_lb_config\": {},\n \"least_request_lb_config\": {},\n \"common_lb_config\": {},\n \"transport_socket\": {},\n \"metadata\": {},\n \"protocol_selection\": {},\n \"upstream_connection_options\": {},\n \"close_connections_on_host_health_failure\": {},\n \"ignore_health_on_host_removal\": {},\n \"filters\": {},\n \"load_balancing_policy\": {},\n \"track_timeout_budgets\": {},\n \"upstream_config\": {},\n \"track_cluster_stats\": {},\n \"preconnect_policy\": {},\n \"connection_pool_per_downstream_connection\": {}\n }\n ],\n \"excludedExternalAuth\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"excludedRateLimit\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"http\": [\n {\n \"priority\": 123,\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"name\": \"envoy.filters.http.ext_authz\",\n \"typed_config\": {\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"http_service\": {\n \"server_uri\": {\n \"uri\": \"<string>\",\n \"cluster\": \"<string>\",\n \"timeout\": \"<string>\"\n },\n \"path_prefix\": \"<string>\",\n \"authorization_request\": {\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"headers_to_add\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"authorization_response\": {\n \"allowed_upstream_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_upstream_headers_to_append\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers_on_success\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"dynamic_metadata_from_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n }\n }\n },\n \"failure_mode_allow\": true,\n \"failure_mode_allow_header_add\": true,\n \"with_request_body\": {\n \"max_request_bytes\": 123,\n \"allow_partial_message\": true,\n \"pack_as_bytes\": true\n },\n \"clear_route_cache\": true,\n \"status_on_error\": {},\n \"metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"filter_enabled\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"deny_at_disable\": {\n \"default_value\": true,\n \"runtime_key\": \"<string>\"\n },\n \"include_peer_certificate\": true,\n \"stat_prefix\": \"<string>\",\n \"bootstrap_metadata_labels_key\": \"<string>\",\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"include_tls_session\": true,\n \"charge_cluster_response_stats\": true,\n \"@type\": \"type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz\"\n }\n }\n ],\n \"network\": [\n {}\n ],\n \"volumes\": [\n {\n \"uri\": \"<string>\",\n \"recoveryPolicy\": \"retain\",\n \"path\": \"<string>\",\n \"name\": \"<string>\",\n \"bootOrder\": 123\n }\n ]\n }\n },\n \"env\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"loadBalancer\": {\n \"dedicated\": true,\n \"multiZone\": {\n \"enabled\": true\n },\n \"trustedProxies\": 123,\n \"redirect\": {\n \"class\": {\n \"status5xx\": \"<string>\",\n \"status401\": \"<string>\"\n }\n },\n \"ipSet\": \"<string>\"\n },\n \"keda\": {\n \"enabled\": true,\n \"identityLink\": \"<string>\",\n \"secrets\": [\n \"<string>\"\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cpln.io/org/{org}/gvc")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": {},\n \"spec\": {\n \"staticPlacement\": {\n \"locationLinks\": [\n \"<string>\"\n ],\n \"locationQuery\": {\n \"kind\": \"<string>\",\n \"spec\": {\n \"match\": \"all\",\n \"terms\": [\n {\n \"op\": \"=\",\n \"property\": \"<string>\",\n \"rel\": \"<string>\",\n \"tag\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"sort\": {\n \"by\": \"<string>\",\n \"order\": \"asc\"\n }\n }\n },\n \"locationOptions\": [\n {\n \"locationLink\": \"<string>\",\n \"routingTier\": 123,\n \"latencyOffsetMs\": 123,\n \"latencyToleranceMs\": 123\n }\n ]\n },\n \"pullSecretLinks\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"aliasWorkloadLink\": \"<string>\",\n \"tracing\": {\n \"sampling\": 123,\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"customTags\": {},\n \"provider\": {\n \"otel\": {\n \"endpoint\": \"<string>\"\n },\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"controlplane\": {}\n }\n },\n \"sidecar\": {\n \"envoy\": {\n \"accessLog\": [\n {\n \"priority\": 123,\n \"name\": \"envoy.http_grpc_access_log\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"typed_config\": {\n \"@type\": {},\n \"common_config\": {\n \"log_name\": \"<string>\",\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"buffer_flush_interval\": \"<string>\",\n \"buffer_size_bytes\": 123,\n \"filter_state_objects_to_log\": [\n \"<string>\"\n ],\n \"grpc_stream_retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"additional_request_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_trailers_to_log\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"clusters\": [\n {\n \"name\": \"<string>\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"transport_socket_matches\": {},\n \"alt_stat_name\": {},\n \"cluster_type\": {},\n \"eds_cluster_config\": {},\n \"connect_timeout\": {},\n \"per_connection_buffer_limit_bytes\": {},\n \"lb_policy\": {},\n \"load_assignment\": {\n \"cluster_name\": \"<string>\",\n \"endpoints\": {},\n \"policy\": {}\n },\n \"health_checks\": {},\n \"max_requests_per_connection\": {},\n \"circuit_breakers\": {},\n \"upstream_http_protocol_options\": {},\n \"common_http_protocol_options\": {},\n \"http_protocol_options\": {},\n \"http2_protocol_options\": {},\n \"typed_extension_protocol_options\": {},\n \"dns_refresh_rate\": {},\n \"dns_failure_refresh_rate\": {},\n \"respect_dns_ttl\": {},\n \"dns_lookup_family\": {},\n \"dns_resolvers\": {},\n \"use_tcp_for_dns_lookups\": {},\n \"dns_resolution_config\": {},\n \"typed_dns_resolver_config\": {},\n \"wait_for_warm_on_init\": {},\n \"outlier_detection\": {},\n \"cleanup_interval\": {},\n \"upstream_bind_config\": {},\n \"lb_subset_config\": {},\n \"ring_hash_lb_config\": {},\n \"maglev_lb_config\": {},\n \"least_request_lb_config\": {},\n \"common_lb_config\": {},\n \"transport_socket\": {},\n \"metadata\": {},\n \"protocol_selection\": {},\n \"upstream_connection_options\": {},\n \"close_connections_on_host_health_failure\": {},\n \"ignore_health_on_host_removal\": {},\n \"filters\": {},\n \"load_balancing_policy\": {},\n \"track_timeout_budgets\": {},\n \"upstream_config\": {},\n \"track_cluster_stats\": {},\n \"preconnect_policy\": {},\n \"connection_pool_per_downstream_connection\": {}\n }\n ],\n \"excludedExternalAuth\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"excludedRateLimit\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"http\": [\n {\n \"priority\": 123,\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"name\": \"envoy.filters.http.ext_authz\",\n \"typed_config\": {\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"http_service\": {\n \"server_uri\": {\n \"uri\": \"<string>\",\n \"cluster\": \"<string>\",\n \"timeout\": \"<string>\"\n },\n \"path_prefix\": \"<string>\",\n \"authorization_request\": {\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"headers_to_add\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"authorization_response\": {\n \"allowed_upstream_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_upstream_headers_to_append\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers_on_success\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"dynamic_metadata_from_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n }\n }\n },\n \"failure_mode_allow\": true,\n \"failure_mode_allow_header_add\": true,\n \"with_request_body\": {\n \"max_request_bytes\": 123,\n \"allow_partial_message\": true,\n \"pack_as_bytes\": true\n },\n \"clear_route_cache\": true,\n \"status_on_error\": {},\n \"metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"filter_enabled\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"deny_at_disable\": {\n \"default_value\": true,\n \"runtime_key\": \"<string>\"\n },\n \"include_peer_certificate\": true,\n \"stat_prefix\": \"<string>\",\n \"bootstrap_metadata_labels_key\": \"<string>\",\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"include_tls_session\": true,\n \"charge_cluster_response_stats\": true,\n \"@type\": \"type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz\"\n }\n }\n ],\n \"network\": [\n {}\n ],\n \"volumes\": [\n {\n \"uri\": \"<string>\",\n \"recoveryPolicy\": \"retain\",\n \"path\": \"<string>\",\n \"name\": \"<string>\",\n \"bootOrder\": 123\n }\n ]\n }\n },\n \"env\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"loadBalancer\": {\n \"dedicated\": true,\n \"multiZone\": {\n \"enabled\": true\n },\n \"trustedProxies\": 123,\n \"redirect\": {\n \"class\": {\n \"status5xx\": \"<string>\",\n \"status401\": \"<string>\"\n }\n },\n \"ipSet\": \"<string>\"\n },\n \"keda\": {\n \"enabled\": true,\n \"identityLink\": \"<string>\",\n \"secrets\": [\n \"<string>\"\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"status": 123,
"message": "<string>",
"code": "<string>",
"details": {},
"id": "<string>"
}{
"status": 123,
"message": "<string>",
"code": "<string>",
"details": {},
"id": "<string>"
}GVC
Create a GVC
POST
/
org
/
{org}
/
gvc
Create a GVC
curl --request POST \
--url https://api.cpln.io/org/{org}/gvc \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"tags": {},
"spec": {
"staticPlacement": {
"locationLinks": [
"<string>"
],
"locationQuery": {
"kind": "<string>",
"spec": {
"match": "all",
"terms": [
{
"op": "=",
"property": "<string>",
"rel": "<string>",
"tag": "<string>",
"value": "<string>"
}
],
"sort": {
"by": "<string>",
"order": "asc"
}
}
},
"locationOptions": [
{
"locationLink": "<string>",
"routingTier": 123,
"latencyOffsetMs": 123,
"latencyToleranceMs": 123
}
]
},
"pullSecretLinks": [
"<string>"
],
"domain": "<string>",
"aliasWorkloadLink": "<string>",
"tracing": {
"sampling": 123,
"lightstep": {
"endpoint": "<string>",
"credentials": "<string>"
},
"customTags": {},
"provider": {
"otel": {
"endpoint": "<string>"
},
"lightstep": {
"endpoint": "<string>",
"credentials": "<string>"
},
"controlplane": {}
}
},
"sidecar": {
"envoy": {
"accessLog": [
{
"priority": 123,
"name": "envoy.http_grpc_access_log",
"excludedWorkloads": [
"<string>"
],
"typed_config": {
"@type": {},
"common_config": {
"log_name": "<string>",
"grpc_service": {
"envoy_grpc": {
"cluster_name": "<string>",
"authority": {
"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": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"google_grpc": {
"target_uri": "<string>",
"channel_credentials": {
"ssl_credentials": {
"root_certs": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"private_key": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"cert_chain": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
}
},
"google_default": {}
},
"call_credentials": [
{
"access_token": "<string>",
"google_compute_engine": {},
"google_refresh_token": "<string>",
"service_account_jwt_access": {
"json_key": "<string>",
"token_lifetime_seconds": 123
},
"google_iam": {
"authorization_token": "<string>",
"authority_selector": "<string>"
},
"from_plugin": {
"name": "<string>",
"typed_config": {}
},
"sts_service": {
"token_exchange_service_uri": "<string>",
"resource": "<string>",
"audience": "<string>",
"scope": "<string>",
"requested_token_type": "<string>",
"subject_token_path": "<string>",
"subject_token_type": "<string>",
"actor_token_path": "<string>",
"actor_token_type": "<string>"
}
}
],
"stat_prefix": "<string>",
"credentials_factory_name": "<string>",
"config": {}
},
"timeout": "<string>",
"initial_metadata": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"buffer_flush_interval": "<string>",
"buffer_size_bytes": 123,
"filter_state_objects_to_log": [
"<string>"
],
"grpc_stream_retry_policy": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"additional_request_headers_to_log": [
"<string>"
],
"additional_response_headers_to_log": [
"<string>"
],
"additional_response_trailers_to_log": [
"<string>"
]
}
}
],
"clusters": [
{
"name": "<string>",
"excludedWorkloads": [
"<string>"
],
"transport_socket_matches": {},
"alt_stat_name": {},
"cluster_type": {},
"eds_cluster_config": {},
"connect_timeout": {},
"per_connection_buffer_limit_bytes": {},
"lb_policy": {},
"load_assignment": {
"cluster_name": "<string>",
"endpoints": {},
"policy": {}
},
"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": {}
}
],
"excludedExternalAuth": [
{
"match": {
"prefix": "<string>",
"path": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"path_separated_prefix": "<string>",
"path_match_policy": {
"name": "<string>",
"typed_config": {}
},
"case_sensitive": true,
"runtime_fraction": {
"default_value": {
"numerator": 123,
"denominator": 123
},
"runtime_key": "<string>"
},
"headers": [
{
"name": "<string>",
"safe_regex_match": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"range_match": {
"start": 123,
"end": 123
},
"present_match": true,
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"invert_match": true,
"treat_missing_header_as_empty": true
}
],
"query_parameters": [
{
"name": "<string>",
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"present_match": true
}
],
"grpc": {
"presented": true,
"validated": true
},
"tls_context": {
"presented": true,
"validated": true
},
"dynamic_metadata": [
{
"filter": "<string>",
"path": [
{
"key": "<string>"
}
],
"value": {
"null_match": {},
"double_match": {
"range": {
"start": 123,
"end": 123
},
"exact": 123
},
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"bool_match": true,
"present_match": true
},
"invert": true
}
]
},
"port": 123,
"svcPort": 123
}
],
"excludedRateLimit": [
{
"match": {
"prefix": "<string>",
"path": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"path_separated_prefix": "<string>",
"path_match_policy": {
"name": "<string>",
"typed_config": {}
},
"case_sensitive": true,
"runtime_fraction": {
"default_value": {
"numerator": 123,
"denominator": 123
},
"runtime_key": "<string>"
},
"headers": [
{
"name": "<string>",
"safe_regex_match": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"range_match": {
"start": 123,
"end": 123
},
"present_match": true,
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"invert_match": true,
"treat_missing_header_as_empty": true
}
],
"query_parameters": [
{
"name": "<string>",
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"present_match": true
}
],
"grpc": {
"presented": true,
"validated": true
},
"tls_context": {
"presented": true,
"validated": true
},
"dynamic_metadata": [
{
"filter": "<string>",
"path": [
{
"key": "<string>"
}
],
"value": {
"null_match": {},
"double_match": {
"range": {
"start": 123,
"end": 123
},
"exact": 123
},
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
},
"bool_match": true,
"present_match": true
},
"invert": true
}
]
},
"port": 123,
"svcPort": 123
}
],
"http": [
{
"priority": 123,
"excludedWorkloads": [
"<string>"
],
"name": "envoy.filters.http.ext_authz",
"typed_config": {
"grpc_service": {
"envoy_grpc": {
"cluster_name": "<string>",
"authority": {
"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": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"google_grpc": {
"target_uri": "<string>",
"channel_credentials": {
"ssl_credentials": {
"root_certs": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"private_key": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"cert_chain": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
}
},
"google_default": {}
},
"call_credentials": [
{
"access_token": "<string>",
"google_compute_engine": {},
"google_refresh_token": "<string>",
"service_account_jwt_access": {
"json_key": "<string>",
"token_lifetime_seconds": 123
},
"google_iam": {
"authorization_token": "<string>",
"authority_selector": "<string>"
},
"from_plugin": {
"name": "<string>",
"typed_config": {}
},
"sts_service": {
"token_exchange_service_uri": "<string>",
"resource": "<string>",
"audience": "<string>",
"scope": "<string>",
"requested_token_type": "<string>",
"subject_token_path": "<string>",
"subject_token_type": "<string>",
"actor_token_path": "<string>",
"actor_token_type": "<string>"
}
}
],
"stat_prefix": "<string>",
"credentials_factory_name": "<string>",
"config": {}
},
"timeout": "<string>",
"initial_metadata": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"http_service": {
"server_uri": {
"uri": "<string>",
"cluster": "<string>",
"timeout": "<string>"
},
"path_prefix": "<string>",
"authorization_request": {
"allowed_headers": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"headers_to_add": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"authorization_response": {
"allowed_upstream_headers": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"allowed_upstream_headers_to_append": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"allowed_client_headers": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"allowed_client_headers_on_success": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"dynamic_metadata_from_headers": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
}
}
},
"failure_mode_allow": true,
"failure_mode_allow_header_add": true,
"with_request_body": {
"max_request_bytes": 123,
"allow_partial_message": true,
"pack_as_bytes": true
},
"clear_route_cache": true,
"status_on_error": {},
"metadata_context_namespaces": [
"<string>"
],
"typed_metadata_context_namespaces": [
"<string>"
],
"route_metadata_context_namespaces": [
"<string>"
],
"route_typed_metadata_context_namespaces": [
"<string>"
],
"filter_enabled": {
"numerator": 123,
"denominator": 123
},
"deny_at_disable": {
"default_value": true,
"runtime_key": "<string>"
},
"include_peer_certificate": true,
"stat_prefix": "<string>",
"bootstrap_metadata_labels_key": "<string>",
"allowed_headers": {
"patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": {
"max_program_size": 123
},
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": true
}
]
},
"include_tls_session": true,
"charge_cluster_response_stats": true,
"@type": "type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"
}
}
],
"network": [
{}
],
"volumes": [
{
"uri": "<string>",
"recoveryPolicy": "retain",
"path": "<string>",
"name": "<string>",
"bootOrder": 123
}
]
}
},
"env": [
{
"name": "<string>",
"value": "<string>"
}
],
"loadBalancer": {
"dedicated": true,
"multiZone": {
"enabled": true
},
"trustedProxies": 123,
"redirect": {
"class": {
"status5xx": "<string>",
"status401": "<string>"
}
},
"ipSet": "<string>"
},
"keda": {
"enabled": true,
"identityLink": "<string>",
"secrets": [
"<string>"
]
}
}
}
'import requests
url = "https://api.cpln.io/org/{org}/gvc"
payload = {
"name": "<string>",
"description": "<string>",
"tags": {},
"spec": {
"staticPlacement": {
"locationLinks": ["<string>"],
"locationQuery": {
"kind": "<string>",
"spec": {
"match": "all",
"terms": [
{
"op": "=",
"property": "<string>",
"rel": "<string>",
"tag": "<string>",
"value": "<string>"
}
],
"sort": {
"by": "<string>",
"order": "asc"
}
}
},
"locationOptions": [
{
"locationLink": "<string>",
"routingTier": 123,
"latencyOffsetMs": 123,
"latencyToleranceMs": 123
}
]
},
"pullSecretLinks": ["<string>"],
"domain": "<string>",
"aliasWorkloadLink": "<string>",
"tracing": {
"sampling": 123,
"lightstep": {
"endpoint": "<string>",
"credentials": "<string>"
},
"customTags": {},
"provider": {
"otel": { "endpoint": "<string>" },
"lightstep": {
"endpoint": "<string>",
"credentials": "<string>"
},
"controlplane": {}
}
},
"sidecar": { "envoy": {
"accessLog": [
{
"priority": 123,
"name": "envoy.http_grpc_access_log",
"excludedWorkloads": ["<string>"],
"typed_config": {
"@type": {},
"common_config": {
"log_name": "<string>",
"grpc_service": {
"envoy_grpc": {
"cluster_name": "<string>",
"authority": {
"adjust": None,
"in": False,
"iterables": None,
"map": None,
"separator": ".",
"type": "value",
"ancestor": 1,
"path": ["cluster_name"],
"depth": 1,
"key": "cluster_name",
"root": "cluster_name",
"display": "ref:cluster_name"
},
"retry_policy": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"google_grpc": {
"target_uri": "<string>",
"channel_credentials": {
"ssl_credentials": {
"root_certs": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"private_key": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"cert_chain": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
}
},
"google_default": {}
},
"call_credentials": [
{
"access_token": "<string>",
"google_compute_engine": {},
"google_refresh_token": "<string>",
"service_account_jwt_access": {
"json_key": "<string>",
"token_lifetime_seconds": 123
},
"google_iam": {
"authorization_token": "<string>",
"authority_selector": "<string>"
},
"from_plugin": {
"name": "<string>",
"typed_config": {}
},
"sts_service": {
"token_exchange_service_uri": "<string>",
"resource": "<string>",
"audience": "<string>",
"scope": "<string>",
"requested_token_type": "<string>",
"subject_token_path": "<string>",
"subject_token_type": "<string>",
"actor_token_path": "<string>",
"actor_token_type": "<string>"
}
}
],
"stat_prefix": "<string>",
"credentials_factory_name": "<string>",
"config": {}
},
"timeout": "<string>",
"initial_metadata": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"buffer_flush_interval": "<string>",
"buffer_size_bytes": 123,
"filter_state_objects_to_log": ["<string>"],
"grpc_stream_retry_policy": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"additional_request_headers_to_log": ["<string>"],
"additional_response_headers_to_log": ["<string>"],
"additional_response_trailers_to_log": ["<string>"]
}
}
],
"clusters": [
{
"name": "<string>",
"excludedWorkloads": ["<string>"],
"transport_socket_matches": {},
"alt_stat_name": {},
"cluster_type": {},
"eds_cluster_config": {},
"connect_timeout": {},
"per_connection_buffer_limit_bytes": {},
"lb_policy": {},
"load_assignment": {
"cluster_name": "<string>",
"endpoints": {},
"policy": {}
},
"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": {}
}
],
"excludedExternalAuth": [
{
"match": {
"prefix": "<string>",
"path": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"path_separated_prefix": "<string>",
"path_match_policy": {
"name": "<string>",
"typed_config": {}
},
"case_sensitive": True,
"runtime_fraction": {
"default_value": {
"numerator": 123,
"denominator": 123
},
"runtime_key": "<string>"
},
"headers": [
{
"name": "<string>",
"safe_regex_match": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"range_match": {
"start": 123,
"end": 123
},
"present_match": True,
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"invert_match": True,
"treat_missing_header_as_empty": True
}
],
"query_parameters": [
{
"name": "<string>",
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"present_match": True
}
],
"grpc": {
"presented": True,
"validated": True
},
"tls_context": {
"presented": True,
"validated": True
},
"dynamic_metadata": [
{
"filter": "<string>",
"path": [{ "key": "<string>" }],
"value": {
"null_match": {},
"double_match": {
"range": {
"start": 123,
"end": 123
},
"exact": 123
},
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"bool_match": True,
"present_match": True
},
"invert": True
}
]
},
"port": 123,
"svcPort": 123
}
],
"excludedRateLimit": [
{
"match": {
"prefix": "<string>",
"path": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"path_separated_prefix": "<string>",
"path_match_policy": {
"name": "<string>",
"typed_config": {}
},
"case_sensitive": True,
"runtime_fraction": {
"default_value": {
"numerator": 123,
"denominator": 123
},
"runtime_key": "<string>"
},
"headers": [
{
"name": "<string>",
"safe_regex_match": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"range_match": {
"start": 123,
"end": 123
},
"present_match": True,
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"invert_match": True,
"treat_missing_header_as_empty": True
}
],
"query_parameters": [
{
"name": "<string>",
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"present_match": True
}
],
"grpc": {
"presented": True,
"validated": True
},
"tls_context": {
"presented": True,
"validated": True
},
"dynamic_metadata": [
{
"filter": "<string>",
"path": [{ "key": "<string>" }],
"value": {
"null_match": {},
"double_match": {
"range": {
"start": 123,
"end": 123
},
"exact": 123
},
"string_match": {
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
},
"bool_match": True,
"present_match": True
},
"invert": True
}
]
},
"port": 123,
"svcPort": 123
}
],
"http": [
{
"priority": 123,
"excludedWorkloads": ["<string>"],
"name": "envoy.filters.http.ext_authz",
"typed_config": {
"grpc_service": {
"envoy_grpc": {
"cluster_name": "<string>",
"authority": {
"adjust": None,
"in": False,
"iterables": None,
"map": None,
"separator": ".",
"type": "value",
"ancestor": 1,
"path": ["cluster_name"],
"depth": 1,
"key": "cluster_name",
"root": "cluster_name",
"display": "ref:cluster_name"
},
"retry_policy": {
"retry_back_off": {
"base_interval": "<string>",
"max_interval": "<string>"
},
"num_retries": 123
}
},
"google_grpc": {
"target_uri": "<string>",
"channel_credentials": {
"ssl_credentials": {
"root_certs": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"private_key": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
},
"cert_chain": {
"filename": "<string>",
"inline_bytes": "<unknown>",
"inline_string": "<string>",
"environment_variable": "<string>"
}
},
"google_default": {}
},
"call_credentials": [
{
"access_token": "<string>",
"google_compute_engine": {},
"google_refresh_token": "<string>",
"service_account_jwt_access": {
"json_key": "<string>",
"token_lifetime_seconds": 123
},
"google_iam": {
"authorization_token": "<string>",
"authority_selector": "<string>"
},
"from_plugin": {
"name": "<string>",
"typed_config": {}
},
"sts_service": {
"token_exchange_service_uri": "<string>",
"resource": "<string>",
"audience": "<string>",
"scope": "<string>",
"requested_token_type": "<string>",
"subject_token_path": "<string>",
"subject_token_type": "<string>",
"actor_token_path": "<string>",
"actor_token_type": "<string>"
}
}
],
"stat_prefix": "<string>",
"credentials_factory_name": "<string>",
"config": {}
},
"timeout": "<string>",
"initial_metadata": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"http_service": {
"server_uri": {
"uri": "<string>",
"cluster": "<string>",
"timeout": "<string>"
},
"path_prefix": "<string>",
"authorization_request": {
"allowed_headers": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"headers_to_add": [
{
"key": "<string>",
"value": "<string>",
"raw_value": "<unknown>"
}
]
},
"authorization_response": {
"allowed_upstream_headers": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"allowed_upstream_headers_to_append": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"allowed_client_headers": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"allowed_client_headers_on_success": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"dynamic_metadata_from_headers": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] }
}
},
"failure_mode_allow": True,
"failure_mode_allow_header_add": True,
"with_request_body": {
"max_request_bytes": 123,
"allow_partial_message": True,
"pack_as_bytes": True
},
"clear_route_cache": True,
"status_on_error": {},
"metadata_context_namespaces": ["<string>"],
"typed_metadata_context_namespaces": ["<string>"],
"route_metadata_context_namespaces": ["<string>"],
"route_typed_metadata_context_namespaces": ["<string>"],
"filter_enabled": {
"numerator": 123,
"denominator": 123
},
"deny_at_disable": {
"default_value": True,
"runtime_key": "<string>"
},
"include_peer_certificate": True,
"stat_prefix": "<string>",
"bootstrap_metadata_labels_key": "<string>",
"allowed_headers": { "patterns": [
{
"exact": "<string>",
"prefix": "<string>",
"suffix": "<string>",
"safe_regex": {
"google_re2": { "max_program_size": 123 },
"regex": "<string>"
},
"contains": "<string>",
"ignore_case": True
}
] },
"include_tls_session": True,
"charge_cluster_response_stats": True,
"@type": "type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz"
}
}
],
"network": [{}],
"volumes": [
{
"uri": "<string>",
"recoveryPolicy": "retain",
"path": "<string>",
"name": "<string>",
"bootOrder": 123
}
]
} },
"env": [
{
"name": "<string>",
"value": "<string>"
}
],
"loadBalancer": {
"dedicated": True,
"multiZone": { "enabled": True },
"trustedProxies": 123,
"redirect": { "class": {
"status5xx": "<string>",
"status401": "<string>"
} },
"ipSet": "<string>"
},
"keda": {
"enabled": True,
"identityLink": "<string>",
"secrets": ["<string>"]
}
}
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
tags: {},
spec: {
staticPlacement: {
locationLinks: ['<string>'],
locationQuery: {
kind: '<string>',
spec: {
match: 'all',
terms: [
{
op: '=',
property: '<string>',
rel: '<string>',
tag: '<string>',
value: '<string>'
}
],
sort: {by: '<string>', order: 'asc'}
}
},
locationOptions: [
{
locationLink: '<string>',
routingTier: 123,
latencyOffsetMs: 123,
latencyToleranceMs: 123
}
]
},
pullSecretLinks: ['<string>'],
domain: '<string>',
aliasWorkloadLink: '<string>',
tracing: {
sampling: 123,
lightstep: {endpoint: '<string>', credentials: '<string>'},
customTags: {},
provider: {
otel: {endpoint: '<string>'},
lightstep: {endpoint: '<string>', credentials: '<string>'},
controlplane: {}
}
},
sidecar: {
envoy: {
accessLog: [
{
priority: 123,
name: 'envoy.http_grpc_access_log',
excludedWorkloads: ['<string>'],
typed_config: {
'@type': {},
common_config: {
log_name: '<string>',
grpc_service: {
envoy_grpc: {
cluster_name: '<string>',
authority: {
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: {
retry_back_off: {base_interval: '<string>', max_interval: '<string>'},
num_retries: 123
}
},
google_grpc: {
target_uri: '<string>',
channel_credentials: {
ssl_credentials: {
root_certs: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
},
private_key: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
},
cert_chain: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
}
},
google_default: {}
},
call_credentials: [
{
access_token: '<string>',
google_compute_engine: {},
google_refresh_token: '<string>',
service_account_jwt_access: {json_key: '<string>', token_lifetime_seconds: 123},
google_iam: {authorization_token: '<string>', authority_selector: '<string>'},
from_plugin: {name: '<string>', typed_config: {}},
sts_service: {
token_exchange_service_uri: '<string>',
resource: '<string>',
audience: '<string>',
scope: '<string>',
requested_token_type: '<string>',
subject_token_path: '<string>',
subject_token_type: '<string>',
actor_token_path: '<string>',
actor_token_type: '<string>'
}
}
],
stat_prefix: '<string>',
credentials_factory_name: '<string>',
config: {}
},
timeout: '<string>',
initial_metadata: [{key: '<string>', value: '<string>', raw_value: '<unknown>'}]
},
buffer_flush_interval: '<string>',
buffer_size_bytes: 123,
filter_state_objects_to_log: ['<string>'],
grpc_stream_retry_policy: {
retry_back_off: {base_interval: '<string>', max_interval: '<string>'},
num_retries: 123
}
},
additional_request_headers_to_log: ['<string>'],
additional_response_headers_to_log: ['<string>'],
additional_response_trailers_to_log: ['<string>']
}
}
],
clusters: [
{
name: '<string>',
excludedWorkloads: ['<string>'],
transport_socket_matches: {},
alt_stat_name: {},
cluster_type: {},
eds_cluster_config: {},
connect_timeout: {},
per_connection_buffer_limit_bytes: {},
lb_policy: {},
load_assignment: {cluster_name: '<string>', endpoints: {}, policy: {}},
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: {}
}
],
excludedExternalAuth: [
{
match: {
prefix: '<string>',
path: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
path_separated_prefix: '<string>',
path_match_policy: {name: '<string>', typed_config: {}},
case_sensitive: true,
runtime_fraction: {default_value: {numerator: 123, denominator: 123}, runtime_key: '<string>'},
headers: [
{
name: '<string>',
safe_regex_match: {google_re2: {max_program_size: 123}, regex: '<string>'},
range_match: {start: 123, end: 123},
present_match: true,
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
invert_match: true,
treat_missing_header_as_empty: true
}
],
query_parameters: [
{
name: '<string>',
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
present_match: true
}
],
grpc: {presented: true, validated: true},
tls_context: {presented: true, validated: true},
dynamic_metadata: [
{
filter: '<string>',
path: [{key: '<string>'}],
value: {
null_match: {},
double_match: {range: {start: 123, end: 123}, exact: 123},
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
bool_match: true,
present_match: true
},
invert: true
}
]
},
port: 123,
svcPort: 123
}
],
excludedRateLimit: [
{
match: {
prefix: '<string>',
path: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
path_separated_prefix: '<string>',
path_match_policy: {name: '<string>', typed_config: {}},
case_sensitive: true,
runtime_fraction: {default_value: {numerator: 123, denominator: 123}, runtime_key: '<string>'},
headers: [
{
name: '<string>',
safe_regex_match: {google_re2: {max_program_size: 123}, regex: '<string>'},
range_match: {start: 123, end: 123},
present_match: true,
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
invert_match: true,
treat_missing_header_as_empty: true
}
],
query_parameters: [
{
name: '<string>',
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
present_match: true
}
],
grpc: {presented: true, validated: true},
tls_context: {presented: true, validated: true},
dynamic_metadata: [
{
filter: '<string>',
path: [{key: '<string>'}],
value: {
null_match: {},
double_match: {range: {start: 123, end: 123}, exact: 123},
string_match: {
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
},
bool_match: true,
present_match: true
},
invert: true
}
]
},
port: 123,
svcPort: 123
}
],
http: [
{
priority: 123,
excludedWorkloads: ['<string>'],
name: 'envoy.filters.http.ext_authz',
typed_config: {
grpc_service: {
envoy_grpc: {
cluster_name: '<string>',
authority: {
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: {
retry_back_off: {base_interval: '<string>', max_interval: '<string>'},
num_retries: 123
}
},
google_grpc: {
target_uri: '<string>',
channel_credentials: {
ssl_credentials: {
root_certs: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
},
private_key: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
},
cert_chain: {
filename: '<string>',
inline_bytes: '<unknown>',
inline_string: '<string>',
environment_variable: '<string>'
}
},
google_default: {}
},
call_credentials: [
{
access_token: '<string>',
google_compute_engine: {},
google_refresh_token: '<string>',
service_account_jwt_access: {json_key: '<string>', token_lifetime_seconds: 123},
google_iam: {authorization_token: '<string>', authority_selector: '<string>'},
from_plugin: {name: '<string>', typed_config: {}},
sts_service: {
token_exchange_service_uri: '<string>',
resource: '<string>',
audience: '<string>',
scope: '<string>',
requested_token_type: '<string>',
subject_token_path: '<string>',
subject_token_type: '<string>',
actor_token_path: '<string>',
actor_token_type: '<string>'
}
}
],
stat_prefix: '<string>',
credentials_factory_name: '<string>',
config: {}
},
timeout: '<string>',
initial_metadata: [{key: '<string>', value: '<string>', raw_value: '<unknown>'}]
},
http_service: {
server_uri: {uri: '<string>', cluster: '<string>', timeout: '<string>'},
path_prefix: '<string>',
authorization_request: {
allowed_headers: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
headers_to_add: [{key: '<string>', value: '<string>', raw_value: '<unknown>'}]
},
authorization_response: {
allowed_upstream_headers: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
allowed_upstream_headers_to_append: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
allowed_client_headers: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
allowed_client_headers_on_success: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
dynamic_metadata_from_headers: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
}
}
},
failure_mode_allow: true,
failure_mode_allow_header_add: true,
with_request_body: {max_request_bytes: 123, allow_partial_message: true, pack_as_bytes: true},
clear_route_cache: true,
status_on_error: {},
metadata_context_namespaces: ['<string>'],
typed_metadata_context_namespaces: ['<string>'],
route_metadata_context_namespaces: ['<string>'],
route_typed_metadata_context_namespaces: ['<string>'],
filter_enabled: {numerator: 123, denominator: 123},
deny_at_disable: {default_value: true, runtime_key: '<string>'},
include_peer_certificate: true,
stat_prefix: '<string>',
bootstrap_metadata_labels_key: '<string>',
allowed_headers: {
patterns: [
{
exact: '<string>',
prefix: '<string>',
suffix: '<string>',
safe_regex: {google_re2: {max_program_size: 123}, regex: '<string>'},
contains: '<string>',
ignore_case: true
}
]
},
include_tls_session: true,
charge_cluster_response_stats: true,
'@type': 'type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz'
}
}
],
network: [{}],
volumes: [
{
uri: '<string>',
recoveryPolicy: 'retain',
path: '<string>',
name: '<string>',
bootOrder: 123
}
]
}
},
env: [{name: '<string>', value: '<string>'}],
loadBalancer: {
dedicated: true,
multiZone: {enabled: true},
trustedProxies: 123,
redirect: {class: {status5xx: '<string>', status401: '<string>'}},
ipSet: '<string>'
},
keda: {enabled: true, identityLink: '<string>', secrets: ['<string>']}
}
})
};
fetch('https://api.cpln.io/org/{org}/gvc', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cpln.io/org/{org}/gvc",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'tags' => [
],
'spec' => [
'staticPlacement' => [
'locationLinks' => [
'<string>'
],
'locationQuery' => [
'kind' => '<string>',
'spec' => [
'match' => 'all',
'terms' => [
[
'op' => '=',
'property' => '<string>',
'rel' => '<string>',
'tag' => '<string>',
'value' => '<string>'
]
],
'sort' => [
'by' => '<string>',
'order' => 'asc'
]
]
],
'locationOptions' => [
[
'locationLink' => '<string>',
'routingTier' => 123,
'latencyOffsetMs' => 123,
'latencyToleranceMs' => 123
]
]
],
'pullSecretLinks' => [
'<string>'
],
'domain' => '<string>',
'aliasWorkloadLink' => '<string>',
'tracing' => [
'sampling' => 123,
'lightstep' => [
'endpoint' => '<string>',
'credentials' => '<string>'
],
'customTags' => [
],
'provider' => [
'otel' => [
'endpoint' => '<string>'
],
'lightstep' => [
'endpoint' => '<string>',
'credentials' => '<string>'
],
'controlplane' => [
]
]
],
'sidecar' => [
'envoy' => [
'accessLog' => [
[
'priority' => 123,
'name' => 'envoy.http_grpc_access_log',
'excludedWorkloads' => [
'<string>'
],
'typed_config' => [
'@type' => [
],
'common_config' => [
'log_name' => '<string>',
'grpc_service' => [
'envoy_grpc' => [
'cluster_name' => '<string>',
'authority' => [
'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' => [
'retry_back_off' => [
'base_interval' => '<string>',
'max_interval' => '<string>'
],
'num_retries' => 123
]
],
'google_grpc' => [
'target_uri' => '<string>',
'channel_credentials' => [
'ssl_credentials' => [
'root_certs' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
],
'private_key' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
],
'cert_chain' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
]
],
'google_default' => [
]
],
'call_credentials' => [
[
'access_token' => '<string>',
'google_compute_engine' => [
],
'google_refresh_token' => '<string>',
'service_account_jwt_access' => [
'json_key' => '<string>',
'token_lifetime_seconds' => 123
],
'google_iam' => [
'authorization_token' => '<string>',
'authority_selector' => '<string>'
],
'from_plugin' => [
'name' => '<string>',
'typed_config' => [
]
],
'sts_service' => [
'token_exchange_service_uri' => '<string>',
'resource' => '<string>',
'audience' => '<string>',
'scope' => '<string>',
'requested_token_type' => '<string>',
'subject_token_path' => '<string>',
'subject_token_type' => '<string>',
'actor_token_path' => '<string>',
'actor_token_type' => '<string>'
]
]
],
'stat_prefix' => '<string>',
'credentials_factory_name' => '<string>',
'config' => [
]
],
'timeout' => '<string>',
'initial_metadata' => [
[
'key' => '<string>',
'value' => '<string>',
'raw_value' => '<unknown>'
]
]
],
'buffer_flush_interval' => '<string>',
'buffer_size_bytes' => 123,
'filter_state_objects_to_log' => [
'<string>'
],
'grpc_stream_retry_policy' => [
'retry_back_off' => [
'base_interval' => '<string>',
'max_interval' => '<string>'
],
'num_retries' => 123
]
],
'additional_request_headers_to_log' => [
'<string>'
],
'additional_response_headers_to_log' => [
'<string>'
],
'additional_response_trailers_to_log' => [
'<string>'
]
]
]
],
'clusters' => [
[
'name' => '<string>',
'excludedWorkloads' => [
'<string>'
],
'transport_socket_matches' => [
],
'alt_stat_name' => [
],
'cluster_type' => [
],
'eds_cluster_config' => [
],
'connect_timeout' => [
],
'per_connection_buffer_limit_bytes' => [
],
'lb_policy' => [
],
'load_assignment' => [
'cluster_name' => '<string>',
'endpoints' => [
],
'policy' => [
]
],
'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' => [
]
]
],
'excludedExternalAuth' => [
[
'match' => [
'prefix' => '<string>',
'path' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'path_separated_prefix' => '<string>',
'path_match_policy' => [
'name' => '<string>',
'typed_config' => [
]
],
'case_sensitive' => true,
'runtime_fraction' => [
'default_value' => [
'numerator' => 123,
'denominator' => 123
],
'runtime_key' => '<string>'
],
'headers' => [
[
'name' => '<string>',
'safe_regex_match' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'range_match' => [
'start' => 123,
'end' => 123
],
'present_match' => true,
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'invert_match' => true,
'treat_missing_header_as_empty' => true
]
],
'query_parameters' => [
[
'name' => '<string>',
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'present_match' => true
]
],
'grpc' => [
'presented' => true,
'validated' => true
],
'tls_context' => [
'presented' => true,
'validated' => true
],
'dynamic_metadata' => [
[
'filter' => '<string>',
'path' => [
[
'key' => '<string>'
]
],
'value' => [
'null_match' => [
],
'double_match' => [
'range' => [
'start' => 123,
'end' => 123
],
'exact' => 123
],
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'bool_match' => true,
'present_match' => true
],
'invert' => true
]
]
],
'port' => 123,
'svcPort' => 123
]
],
'excludedRateLimit' => [
[
'match' => [
'prefix' => '<string>',
'path' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'path_separated_prefix' => '<string>',
'path_match_policy' => [
'name' => '<string>',
'typed_config' => [
]
],
'case_sensitive' => true,
'runtime_fraction' => [
'default_value' => [
'numerator' => 123,
'denominator' => 123
],
'runtime_key' => '<string>'
],
'headers' => [
[
'name' => '<string>',
'safe_regex_match' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'range_match' => [
'start' => 123,
'end' => 123
],
'present_match' => true,
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'invert_match' => true,
'treat_missing_header_as_empty' => true
]
],
'query_parameters' => [
[
'name' => '<string>',
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'present_match' => true
]
],
'grpc' => [
'presented' => true,
'validated' => true
],
'tls_context' => [
'presented' => true,
'validated' => true
],
'dynamic_metadata' => [
[
'filter' => '<string>',
'path' => [
[
'key' => '<string>'
]
],
'value' => [
'null_match' => [
],
'double_match' => [
'range' => [
'start' => 123,
'end' => 123
],
'exact' => 123
],
'string_match' => [
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
],
'bool_match' => true,
'present_match' => true
],
'invert' => true
]
]
],
'port' => 123,
'svcPort' => 123
]
],
'http' => [
[
'priority' => 123,
'excludedWorkloads' => [
'<string>'
],
'name' => 'envoy.filters.http.ext_authz',
'typed_config' => [
'grpc_service' => [
'envoy_grpc' => [
'cluster_name' => '<string>',
'authority' => [
'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' => [
'retry_back_off' => [
'base_interval' => '<string>',
'max_interval' => '<string>'
],
'num_retries' => 123
]
],
'google_grpc' => [
'target_uri' => '<string>',
'channel_credentials' => [
'ssl_credentials' => [
'root_certs' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
],
'private_key' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
],
'cert_chain' => [
'filename' => '<string>',
'inline_bytes' => '<unknown>',
'inline_string' => '<string>',
'environment_variable' => '<string>'
]
],
'google_default' => [
]
],
'call_credentials' => [
[
'access_token' => '<string>',
'google_compute_engine' => [
],
'google_refresh_token' => '<string>',
'service_account_jwt_access' => [
'json_key' => '<string>',
'token_lifetime_seconds' => 123
],
'google_iam' => [
'authorization_token' => '<string>',
'authority_selector' => '<string>'
],
'from_plugin' => [
'name' => '<string>',
'typed_config' => [
]
],
'sts_service' => [
'token_exchange_service_uri' => '<string>',
'resource' => '<string>',
'audience' => '<string>',
'scope' => '<string>',
'requested_token_type' => '<string>',
'subject_token_path' => '<string>',
'subject_token_type' => '<string>',
'actor_token_path' => '<string>',
'actor_token_type' => '<string>'
]
]
],
'stat_prefix' => '<string>',
'credentials_factory_name' => '<string>',
'config' => [
]
],
'timeout' => '<string>',
'initial_metadata' => [
[
'key' => '<string>',
'value' => '<string>',
'raw_value' => '<unknown>'
]
]
],
'http_service' => [
'server_uri' => [
'uri' => '<string>',
'cluster' => '<string>',
'timeout' => '<string>'
],
'path_prefix' => '<string>',
'authorization_request' => [
'allowed_headers' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'headers_to_add' => [
[
'key' => '<string>',
'value' => '<string>',
'raw_value' => '<unknown>'
]
]
],
'authorization_response' => [
'allowed_upstream_headers' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'allowed_upstream_headers_to_append' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'allowed_client_headers' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'allowed_client_headers_on_success' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'dynamic_metadata_from_headers' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
]
]
],
'failure_mode_allow' => true,
'failure_mode_allow_header_add' => true,
'with_request_body' => [
'max_request_bytes' => 123,
'allow_partial_message' => true,
'pack_as_bytes' => true
],
'clear_route_cache' => true,
'status_on_error' => [
],
'metadata_context_namespaces' => [
'<string>'
],
'typed_metadata_context_namespaces' => [
'<string>'
],
'route_metadata_context_namespaces' => [
'<string>'
],
'route_typed_metadata_context_namespaces' => [
'<string>'
],
'filter_enabled' => [
'numerator' => 123,
'denominator' => 123
],
'deny_at_disable' => [
'default_value' => true,
'runtime_key' => '<string>'
],
'include_peer_certificate' => true,
'stat_prefix' => '<string>',
'bootstrap_metadata_labels_key' => '<string>',
'allowed_headers' => [
'patterns' => [
[
'exact' => '<string>',
'prefix' => '<string>',
'suffix' => '<string>',
'safe_regex' => [
'google_re2' => [
'max_program_size' => 123
],
'regex' => '<string>'
],
'contains' => '<string>',
'ignore_case' => true
]
]
],
'include_tls_session' => true,
'charge_cluster_response_stats' => true,
'@type' => 'type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz'
]
]
],
'network' => [
[
]
],
'volumes' => [
[
'uri' => '<string>',
'recoveryPolicy' => 'retain',
'path' => '<string>',
'name' => '<string>',
'bootOrder' => 123
]
]
]
],
'env' => [
[
'name' => '<string>',
'value' => '<string>'
]
],
'loadBalancer' => [
'dedicated' => true,
'multiZone' => [
'enabled' => true
],
'trustedProxies' => 123,
'redirect' => [
'class' => [
'status5xx' => '<string>',
'status401' => '<string>'
]
],
'ipSet' => '<string>'
],
'keda' => [
'enabled' => true,
'identityLink' => '<string>',
'secrets' => [
'<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cpln.io/org/{org}/gvc"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": {},\n \"spec\": {\n \"staticPlacement\": {\n \"locationLinks\": [\n \"<string>\"\n ],\n \"locationQuery\": {\n \"kind\": \"<string>\",\n \"spec\": {\n \"match\": \"all\",\n \"terms\": [\n {\n \"op\": \"=\",\n \"property\": \"<string>\",\n \"rel\": \"<string>\",\n \"tag\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"sort\": {\n \"by\": \"<string>\",\n \"order\": \"asc\"\n }\n }\n },\n \"locationOptions\": [\n {\n \"locationLink\": \"<string>\",\n \"routingTier\": 123,\n \"latencyOffsetMs\": 123,\n \"latencyToleranceMs\": 123\n }\n ]\n },\n \"pullSecretLinks\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"aliasWorkloadLink\": \"<string>\",\n \"tracing\": {\n \"sampling\": 123,\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"customTags\": {},\n \"provider\": {\n \"otel\": {\n \"endpoint\": \"<string>\"\n },\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"controlplane\": {}\n }\n },\n \"sidecar\": {\n \"envoy\": {\n \"accessLog\": [\n {\n \"priority\": 123,\n \"name\": \"envoy.http_grpc_access_log\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"typed_config\": {\n \"@type\": {},\n \"common_config\": {\n \"log_name\": \"<string>\",\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"buffer_flush_interval\": \"<string>\",\n \"buffer_size_bytes\": 123,\n \"filter_state_objects_to_log\": [\n \"<string>\"\n ],\n \"grpc_stream_retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"additional_request_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_trailers_to_log\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"clusters\": [\n {\n \"name\": \"<string>\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"transport_socket_matches\": {},\n \"alt_stat_name\": {},\n \"cluster_type\": {},\n \"eds_cluster_config\": {},\n \"connect_timeout\": {},\n \"per_connection_buffer_limit_bytes\": {},\n \"lb_policy\": {},\n \"load_assignment\": {\n \"cluster_name\": \"<string>\",\n \"endpoints\": {},\n \"policy\": {}\n },\n \"health_checks\": {},\n \"max_requests_per_connection\": {},\n \"circuit_breakers\": {},\n \"upstream_http_protocol_options\": {},\n \"common_http_protocol_options\": {},\n \"http_protocol_options\": {},\n \"http2_protocol_options\": {},\n \"typed_extension_protocol_options\": {},\n \"dns_refresh_rate\": {},\n \"dns_failure_refresh_rate\": {},\n \"respect_dns_ttl\": {},\n \"dns_lookup_family\": {},\n \"dns_resolvers\": {},\n \"use_tcp_for_dns_lookups\": {},\n \"dns_resolution_config\": {},\n \"typed_dns_resolver_config\": {},\n \"wait_for_warm_on_init\": {},\n \"outlier_detection\": {},\n \"cleanup_interval\": {},\n \"upstream_bind_config\": {},\n \"lb_subset_config\": {},\n \"ring_hash_lb_config\": {},\n \"maglev_lb_config\": {},\n \"least_request_lb_config\": {},\n \"common_lb_config\": {},\n \"transport_socket\": {},\n \"metadata\": {},\n \"protocol_selection\": {},\n \"upstream_connection_options\": {},\n \"close_connections_on_host_health_failure\": {},\n \"ignore_health_on_host_removal\": {},\n \"filters\": {},\n \"load_balancing_policy\": {},\n \"track_timeout_budgets\": {},\n \"upstream_config\": {},\n \"track_cluster_stats\": {},\n \"preconnect_policy\": {},\n \"connection_pool_per_downstream_connection\": {}\n }\n ],\n \"excludedExternalAuth\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"excludedRateLimit\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"http\": [\n {\n \"priority\": 123,\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"name\": \"envoy.filters.http.ext_authz\",\n \"typed_config\": {\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"http_service\": {\n \"server_uri\": {\n \"uri\": \"<string>\",\n \"cluster\": \"<string>\",\n \"timeout\": \"<string>\"\n },\n \"path_prefix\": \"<string>\",\n \"authorization_request\": {\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"headers_to_add\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"authorization_response\": {\n \"allowed_upstream_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_upstream_headers_to_append\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers_on_success\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"dynamic_metadata_from_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n }\n }\n },\n \"failure_mode_allow\": true,\n \"failure_mode_allow_header_add\": true,\n \"with_request_body\": {\n \"max_request_bytes\": 123,\n \"allow_partial_message\": true,\n \"pack_as_bytes\": true\n },\n \"clear_route_cache\": true,\n \"status_on_error\": {},\n \"metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"filter_enabled\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"deny_at_disable\": {\n \"default_value\": true,\n \"runtime_key\": \"<string>\"\n },\n \"include_peer_certificate\": true,\n \"stat_prefix\": \"<string>\",\n \"bootstrap_metadata_labels_key\": \"<string>\",\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"include_tls_session\": true,\n \"charge_cluster_response_stats\": true,\n \"@type\": \"type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz\"\n }\n }\n ],\n \"network\": [\n {}\n ],\n \"volumes\": [\n {\n \"uri\": \"<string>\",\n \"recoveryPolicy\": \"retain\",\n \"path\": \"<string>\",\n \"name\": \"<string>\",\n \"bootOrder\": 123\n }\n ]\n }\n },\n \"env\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"loadBalancer\": {\n \"dedicated\": true,\n \"multiZone\": {\n \"enabled\": true\n },\n \"trustedProxies\": 123,\n \"redirect\": {\n \"class\": {\n \"status5xx\": \"<string>\",\n \"status401\": \"<string>\"\n }\n },\n \"ipSet\": \"<string>\"\n },\n \"keda\": {\n \"enabled\": true,\n \"identityLink\": \"<string>\",\n \"secrets\": [\n \"<string>\"\n ]\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.cpln.io/org/{org}/gvc")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": {},\n \"spec\": {\n \"staticPlacement\": {\n \"locationLinks\": [\n \"<string>\"\n ],\n \"locationQuery\": {\n \"kind\": \"<string>\",\n \"spec\": {\n \"match\": \"all\",\n \"terms\": [\n {\n \"op\": \"=\",\n \"property\": \"<string>\",\n \"rel\": \"<string>\",\n \"tag\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"sort\": {\n \"by\": \"<string>\",\n \"order\": \"asc\"\n }\n }\n },\n \"locationOptions\": [\n {\n \"locationLink\": \"<string>\",\n \"routingTier\": 123,\n \"latencyOffsetMs\": 123,\n \"latencyToleranceMs\": 123\n }\n ]\n },\n \"pullSecretLinks\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"aliasWorkloadLink\": \"<string>\",\n \"tracing\": {\n \"sampling\": 123,\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"customTags\": {},\n \"provider\": {\n \"otel\": {\n \"endpoint\": \"<string>\"\n },\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"controlplane\": {}\n }\n },\n \"sidecar\": {\n \"envoy\": {\n \"accessLog\": [\n {\n \"priority\": 123,\n \"name\": \"envoy.http_grpc_access_log\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"typed_config\": {\n \"@type\": {},\n \"common_config\": {\n \"log_name\": \"<string>\",\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"buffer_flush_interval\": \"<string>\",\n \"buffer_size_bytes\": 123,\n \"filter_state_objects_to_log\": [\n \"<string>\"\n ],\n \"grpc_stream_retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"additional_request_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_trailers_to_log\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"clusters\": [\n {\n \"name\": \"<string>\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"transport_socket_matches\": {},\n \"alt_stat_name\": {},\n \"cluster_type\": {},\n \"eds_cluster_config\": {},\n \"connect_timeout\": {},\n \"per_connection_buffer_limit_bytes\": {},\n \"lb_policy\": {},\n \"load_assignment\": {\n \"cluster_name\": \"<string>\",\n \"endpoints\": {},\n \"policy\": {}\n },\n \"health_checks\": {},\n \"max_requests_per_connection\": {},\n \"circuit_breakers\": {},\n \"upstream_http_protocol_options\": {},\n \"common_http_protocol_options\": {},\n \"http_protocol_options\": {},\n \"http2_protocol_options\": {},\n \"typed_extension_protocol_options\": {},\n \"dns_refresh_rate\": {},\n \"dns_failure_refresh_rate\": {},\n \"respect_dns_ttl\": {},\n \"dns_lookup_family\": {},\n \"dns_resolvers\": {},\n \"use_tcp_for_dns_lookups\": {},\n \"dns_resolution_config\": {},\n \"typed_dns_resolver_config\": {},\n \"wait_for_warm_on_init\": {},\n \"outlier_detection\": {},\n \"cleanup_interval\": {},\n \"upstream_bind_config\": {},\n \"lb_subset_config\": {},\n \"ring_hash_lb_config\": {},\n \"maglev_lb_config\": {},\n \"least_request_lb_config\": {},\n \"common_lb_config\": {},\n \"transport_socket\": {},\n \"metadata\": {},\n \"protocol_selection\": {},\n \"upstream_connection_options\": {},\n \"close_connections_on_host_health_failure\": {},\n \"ignore_health_on_host_removal\": {},\n \"filters\": {},\n \"load_balancing_policy\": {},\n \"track_timeout_budgets\": {},\n \"upstream_config\": {},\n \"track_cluster_stats\": {},\n \"preconnect_policy\": {},\n \"connection_pool_per_downstream_connection\": {}\n }\n ],\n \"excludedExternalAuth\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"excludedRateLimit\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"http\": [\n {\n \"priority\": 123,\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"name\": \"envoy.filters.http.ext_authz\",\n \"typed_config\": {\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"http_service\": {\n \"server_uri\": {\n \"uri\": \"<string>\",\n \"cluster\": \"<string>\",\n \"timeout\": \"<string>\"\n },\n \"path_prefix\": \"<string>\",\n \"authorization_request\": {\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"headers_to_add\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"authorization_response\": {\n \"allowed_upstream_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_upstream_headers_to_append\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers_on_success\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"dynamic_metadata_from_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n }\n }\n },\n \"failure_mode_allow\": true,\n \"failure_mode_allow_header_add\": true,\n \"with_request_body\": {\n \"max_request_bytes\": 123,\n \"allow_partial_message\": true,\n \"pack_as_bytes\": true\n },\n \"clear_route_cache\": true,\n \"status_on_error\": {},\n \"metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"filter_enabled\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"deny_at_disable\": {\n \"default_value\": true,\n \"runtime_key\": \"<string>\"\n },\n \"include_peer_certificate\": true,\n \"stat_prefix\": \"<string>\",\n \"bootstrap_metadata_labels_key\": \"<string>\",\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"include_tls_session\": true,\n \"charge_cluster_response_stats\": true,\n \"@type\": \"type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz\"\n }\n }\n ],\n \"network\": [\n {}\n ],\n \"volumes\": [\n {\n \"uri\": \"<string>\",\n \"recoveryPolicy\": \"retain\",\n \"path\": \"<string>\",\n \"name\": \"<string>\",\n \"bootOrder\": 123\n }\n ]\n }\n },\n \"env\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"loadBalancer\": {\n \"dedicated\": true,\n \"multiZone\": {\n \"enabled\": true\n },\n \"trustedProxies\": 123,\n \"redirect\": {\n \"class\": {\n \"status5xx\": \"<string>\",\n \"status401\": \"<string>\"\n }\n },\n \"ipSet\": \"<string>\"\n },\n \"keda\": {\n \"enabled\": true,\n \"identityLink\": \"<string>\",\n \"secrets\": [\n \"<string>\"\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cpln.io/org/{org}/gvc")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": {},\n \"spec\": {\n \"staticPlacement\": {\n \"locationLinks\": [\n \"<string>\"\n ],\n \"locationQuery\": {\n \"kind\": \"<string>\",\n \"spec\": {\n \"match\": \"all\",\n \"terms\": [\n {\n \"op\": \"=\",\n \"property\": \"<string>\",\n \"rel\": \"<string>\",\n \"tag\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"sort\": {\n \"by\": \"<string>\",\n \"order\": \"asc\"\n }\n }\n },\n \"locationOptions\": [\n {\n \"locationLink\": \"<string>\",\n \"routingTier\": 123,\n \"latencyOffsetMs\": 123,\n \"latencyToleranceMs\": 123\n }\n ]\n },\n \"pullSecretLinks\": [\n \"<string>\"\n ],\n \"domain\": \"<string>\",\n \"aliasWorkloadLink\": \"<string>\",\n \"tracing\": {\n \"sampling\": 123,\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"customTags\": {},\n \"provider\": {\n \"otel\": {\n \"endpoint\": \"<string>\"\n },\n \"lightstep\": {\n \"endpoint\": \"<string>\",\n \"credentials\": \"<string>\"\n },\n \"controlplane\": {}\n }\n },\n \"sidecar\": {\n \"envoy\": {\n \"accessLog\": [\n {\n \"priority\": 123,\n \"name\": \"envoy.http_grpc_access_log\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"typed_config\": {\n \"@type\": {},\n \"common_config\": {\n \"log_name\": \"<string>\",\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"buffer_flush_interval\": \"<string>\",\n \"buffer_size_bytes\": 123,\n \"filter_state_objects_to_log\": [\n \"<string>\"\n ],\n \"grpc_stream_retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"additional_request_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_headers_to_log\": [\n \"<string>\"\n ],\n \"additional_response_trailers_to_log\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"clusters\": [\n {\n \"name\": \"<string>\",\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"transport_socket_matches\": {},\n \"alt_stat_name\": {},\n \"cluster_type\": {},\n \"eds_cluster_config\": {},\n \"connect_timeout\": {},\n \"per_connection_buffer_limit_bytes\": {},\n \"lb_policy\": {},\n \"load_assignment\": {\n \"cluster_name\": \"<string>\",\n \"endpoints\": {},\n \"policy\": {}\n },\n \"health_checks\": {},\n \"max_requests_per_connection\": {},\n \"circuit_breakers\": {},\n \"upstream_http_protocol_options\": {},\n \"common_http_protocol_options\": {},\n \"http_protocol_options\": {},\n \"http2_protocol_options\": {},\n \"typed_extension_protocol_options\": {},\n \"dns_refresh_rate\": {},\n \"dns_failure_refresh_rate\": {},\n \"respect_dns_ttl\": {},\n \"dns_lookup_family\": {},\n \"dns_resolvers\": {},\n \"use_tcp_for_dns_lookups\": {},\n \"dns_resolution_config\": {},\n \"typed_dns_resolver_config\": {},\n \"wait_for_warm_on_init\": {},\n \"outlier_detection\": {},\n \"cleanup_interval\": {},\n \"upstream_bind_config\": {},\n \"lb_subset_config\": {},\n \"ring_hash_lb_config\": {},\n \"maglev_lb_config\": {},\n \"least_request_lb_config\": {},\n \"common_lb_config\": {},\n \"transport_socket\": {},\n \"metadata\": {},\n \"protocol_selection\": {},\n \"upstream_connection_options\": {},\n \"close_connections_on_host_health_failure\": {},\n \"ignore_health_on_host_removal\": {},\n \"filters\": {},\n \"load_balancing_policy\": {},\n \"track_timeout_budgets\": {},\n \"upstream_config\": {},\n \"track_cluster_stats\": {},\n \"preconnect_policy\": {},\n \"connection_pool_per_downstream_connection\": {}\n }\n ],\n \"excludedExternalAuth\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"excludedRateLimit\": [\n {\n \"match\": {\n \"prefix\": \"<string>\",\n \"path\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"path_separated_prefix\": \"<string>\",\n \"path_match_policy\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"case_sensitive\": true,\n \"runtime_fraction\": {\n \"default_value\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"runtime_key\": \"<string>\"\n },\n \"headers\": [\n {\n \"name\": \"<string>\",\n \"safe_regex_match\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"range_match\": {\n \"start\": 123,\n \"end\": 123\n },\n \"present_match\": true,\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"invert_match\": true,\n \"treat_missing_header_as_empty\": true\n }\n ],\n \"query_parameters\": [\n {\n \"name\": \"<string>\",\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"present_match\": true\n }\n ],\n \"grpc\": {\n \"presented\": true,\n \"validated\": true\n },\n \"tls_context\": {\n \"presented\": true,\n \"validated\": true\n },\n \"dynamic_metadata\": [\n {\n \"filter\": \"<string>\",\n \"path\": [\n {\n \"key\": \"<string>\"\n }\n ],\n \"value\": {\n \"null_match\": {},\n \"double_match\": {\n \"range\": {\n \"start\": 123,\n \"end\": 123\n },\n \"exact\": 123\n },\n \"string_match\": {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n },\n \"bool_match\": true,\n \"present_match\": true\n },\n \"invert\": true\n }\n ]\n },\n \"port\": 123,\n \"svcPort\": 123\n }\n ],\n \"http\": [\n {\n \"priority\": 123,\n \"excludedWorkloads\": [\n \"<string>\"\n ],\n \"name\": \"envoy.filters.http.ext_authz\",\n \"typed_config\": {\n \"grpc_service\": {\n \"envoy_grpc\": {\n \"cluster_name\": \"<string>\",\n \"authority\": {\n \"adjust\": null,\n \"in\": false,\n \"iterables\": null,\n \"map\": null,\n \"separator\": \".\",\n \"type\": \"value\",\n \"ancestor\": 1,\n \"path\": [\n \"cluster_name\"\n ],\n \"depth\": 1,\n \"key\": \"cluster_name\",\n \"root\": \"cluster_name\",\n \"display\": \"ref:cluster_name\"\n },\n \"retry_policy\": {\n \"retry_back_off\": {\n \"base_interval\": \"<string>\",\n \"max_interval\": \"<string>\"\n },\n \"num_retries\": 123\n }\n },\n \"google_grpc\": {\n \"target_uri\": \"<string>\",\n \"channel_credentials\": {\n \"ssl_credentials\": {\n \"root_certs\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"private_key\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n },\n \"cert_chain\": {\n \"filename\": \"<string>\",\n \"inline_bytes\": \"<unknown>\",\n \"inline_string\": \"<string>\",\n \"environment_variable\": \"<string>\"\n }\n },\n \"google_default\": {}\n },\n \"call_credentials\": [\n {\n \"access_token\": \"<string>\",\n \"google_compute_engine\": {},\n \"google_refresh_token\": \"<string>\",\n \"service_account_jwt_access\": {\n \"json_key\": \"<string>\",\n \"token_lifetime_seconds\": 123\n },\n \"google_iam\": {\n \"authorization_token\": \"<string>\",\n \"authority_selector\": \"<string>\"\n },\n \"from_plugin\": {\n \"name\": \"<string>\",\n \"typed_config\": {}\n },\n \"sts_service\": {\n \"token_exchange_service_uri\": \"<string>\",\n \"resource\": \"<string>\",\n \"audience\": \"<string>\",\n \"scope\": \"<string>\",\n \"requested_token_type\": \"<string>\",\n \"subject_token_path\": \"<string>\",\n \"subject_token_type\": \"<string>\",\n \"actor_token_path\": \"<string>\",\n \"actor_token_type\": \"<string>\"\n }\n }\n ],\n \"stat_prefix\": \"<string>\",\n \"credentials_factory_name\": \"<string>\",\n \"config\": {}\n },\n \"timeout\": \"<string>\",\n \"initial_metadata\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"http_service\": {\n \"server_uri\": {\n \"uri\": \"<string>\",\n \"cluster\": \"<string>\",\n \"timeout\": \"<string>\"\n },\n \"path_prefix\": \"<string>\",\n \"authorization_request\": {\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"headers_to_add\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\",\n \"raw_value\": \"<unknown>\"\n }\n ]\n },\n \"authorization_response\": {\n \"allowed_upstream_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_upstream_headers_to_append\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"allowed_client_headers_on_success\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"dynamic_metadata_from_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n }\n }\n },\n \"failure_mode_allow\": true,\n \"failure_mode_allow_header_add\": true,\n \"with_request_body\": {\n \"max_request_bytes\": 123,\n \"allow_partial_message\": true,\n \"pack_as_bytes\": true\n },\n \"clear_route_cache\": true,\n \"status_on_error\": {},\n \"metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"route_typed_metadata_context_namespaces\": [\n \"<string>\"\n ],\n \"filter_enabled\": {\n \"numerator\": 123,\n \"denominator\": 123\n },\n \"deny_at_disable\": {\n \"default_value\": true,\n \"runtime_key\": \"<string>\"\n },\n \"include_peer_certificate\": true,\n \"stat_prefix\": \"<string>\",\n \"bootstrap_metadata_labels_key\": \"<string>\",\n \"allowed_headers\": {\n \"patterns\": [\n {\n \"exact\": \"<string>\",\n \"prefix\": \"<string>\",\n \"suffix\": \"<string>\",\n \"safe_regex\": {\n \"google_re2\": {\n \"max_program_size\": 123\n },\n \"regex\": \"<string>\"\n },\n \"contains\": \"<string>\",\n \"ignore_case\": true\n }\n ]\n },\n \"include_tls_session\": true,\n \"charge_cluster_response_stats\": true,\n \"@type\": \"type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz\"\n }\n }\n ],\n \"network\": [\n {}\n ],\n \"volumes\": [\n {\n \"uri\": \"<string>\",\n \"recoveryPolicy\": \"retain\",\n \"path\": \"<string>\",\n \"name\": \"<string>\",\n \"bootOrder\": 123\n }\n ]\n }\n },\n \"env\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"loadBalancer\": {\n \"dedicated\": true,\n \"multiZone\": {\n \"enabled\": true\n },\n \"trustedProxies\": 123,\n \"redirect\": {\n \"class\": {\n \"status5xx\": \"<string>\",\n \"status401\": \"<string>\"\n }\n },\n \"ipSet\": \"<string>\"\n },\n \"keda\": {\n \"enabled\": true,\n \"identityLink\": \"<string>\",\n \"secrets\": [\n \"<string>\"\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"status": 123,
"message": "<string>",
"code": "<string>",
"details": {},
"id": "<string>"
}{
"status": 123,
"message": "<string>",
"code": "<string>",
"details": {},
"id": "<string>"
}Authorizations
serviceAccountKeyjwt
Service account key can be used as API keys
Path Parameters
Body
application/json
Response
GVC was created successfully
⌘I