kuadrant_io_v1beta2

package
v0.0.0-...-6209148 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2024 License: 0BSD Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewKuadrantIoAuthPolicyV1Beta2Manifest

func NewKuadrantIoAuthPolicyV1Beta2Manifest() datasource.DataSource

func NewKuadrantIoRateLimitPolicyV1Beta2Manifest

func NewKuadrantIoRateLimitPolicyV1Beta2Manifest() datasource.DataSource

Types

type KuadrantIoAuthPolicyV1Beta2Manifest

type KuadrantIoAuthPolicyV1Beta2Manifest struct{}

func (*KuadrantIoAuthPolicyV1Beta2Manifest) Metadata

func (*KuadrantIoAuthPolicyV1Beta2Manifest) Read

func (*KuadrantIoAuthPolicyV1Beta2Manifest) Schema

type KuadrantIoAuthPolicyV1Beta2ManifestData

type KuadrantIoAuthPolicyV1Beta2ManifestData struct {
	YAML types.String `tfsdk:"yaml" json:"-"`

	ApiVersion *string `tfsdk:"-" json:"apiVersion"`
	Kind       *string `tfsdk:"-" json:"kind"`

	Metadata struct {
		Name        string            `tfsdk:"name" json:"name"`
		Namespace   string            `tfsdk:"namespace" json:"namespace"`
		Labels      map[string]string `tfsdk:"labels" json:"labels,omitempty"`
		Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"`
	} `tfsdk:"metadata" json:"metadata"`

	Spec *struct {
		Defaults *struct {
			Patterns       *map[string]string `tfsdk:"patterns" json:"patterns,omitempty"`
			RouteSelectors *[]struct {
				Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
				Matches   *[]struct {
					Headers *[]struct {
						Name  *string `tfsdk:"name" json:"name,omitempty"`
						Type  *string `tfsdk:"type" json:"type,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"headers" json:"headers,omitempty"`
					Method *string `tfsdk:"method" json:"method,omitempty"`
					Path   *struct {
						Type  *string `tfsdk:"type" json:"type,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"path" json:"path,omitempty"`
					QueryParams *[]struct {
						Name  *string `tfsdk:"name" json:"name,omitempty"`
						Type  *string `tfsdk:"type" json:"type,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"query_params" json:"queryParams,omitempty"`
				} `tfsdk:"matches" json:"matches,omitempty"`
			} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
			Rules *struct {
				Authentication *struct {
					Anonymous *map[string]string `tfsdk:"anonymous" json:"anonymous,omitempty"`
					ApiKey    *struct {
						AllNamespaces *bool `tfsdk:"all_namespaces" json:"allNamespaces,omitempty"`
						Selector      *struct {
							MatchExpressions *[]struct {
								Key      *string   `tfsdk:"key" json:"key,omitempty"`
								Operator *string   `tfsdk:"operator" json:"operator,omitempty"`
								Values   *[]string `tfsdk:"values" json:"values,omitempty"`
							} `tfsdk:"match_expressions" json:"matchExpressions,omitempty"`
							MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"`
						} `tfsdk:"selector" json:"selector,omitempty"`
					} `tfsdk:"api_key" json:"apiKey,omitempty"`
					Cache *struct {
						Key *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"key" json:"key,omitempty"`
						Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
					} `tfsdk:"cache" json:"cache,omitempty"`
					Credentials *struct {
						AuthorizationHeader *struct {
							Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
						} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
						Cookie *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"cookie" json:"cookie,omitempty"`
						CustomHeader *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"custom_header" json:"customHeader,omitempty"`
						QueryString *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"query_string" json:"queryString,omitempty"`
					} `tfsdk:"credentials" json:"credentials,omitempty"`
					Defaults *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"defaults" json:"defaults,omitempty"`
					Jwt *struct {
						IssuerUrl *string `tfsdk:"issuer_url" json:"issuerUrl,omitempty"`
						Ttl       *int64  `tfsdk:"ttl" json:"ttl,omitempty"`
					} `tfsdk:"jwt" json:"jwt,omitempty"`
					KubernetesTokenReview *struct {
						Audiences *[]string `tfsdk:"audiences" json:"audiences,omitempty"`
					} `tfsdk:"kubernetes_token_review" json:"kubernetesTokenReview,omitempty"`
					Metrics             *bool `tfsdk:"metrics" json:"metrics,omitempty"`
					Oauth2Introspection *struct {
						CredentialsRef *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"credentials_ref" json:"credentialsRef,omitempty"`
						Endpoint      *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
						TokenTypeHint *string `tfsdk:"token_type_hint" json:"tokenTypeHint,omitempty"`
					} `tfsdk:"oauth2_introspection" json:"oauth2Introspection,omitempty"`
					Overrides *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"overrides" json:"overrides,omitempty"`
					Plain *struct {
						Selector *string `tfsdk:"selector" json:"selector,omitempty"`
					} `tfsdk:"plain" json:"plain,omitempty"`
					Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
					RouteSelectors *[]struct {
						Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
						Matches   *[]struct {
							Headers *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							Method *string `tfsdk:"method" json:"method,omitempty"`
							Path   *struct {
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"path" json:"path,omitempty"`
							QueryParams *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"query_params" json:"queryParams,omitempty"`
						} `tfsdk:"matches" json:"matches,omitempty"`
					} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
					When *[]struct {
						All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
						Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
						Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
						PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
						Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
						Value      *string              `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"when" json:"when,omitempty"`
					X509 *struct {
						AllNamespaces *bool `tfsdk:"all_namespaces" json:"allNamespaces,omitempty"`
						Selector      *struct {
							MatchExpressions *[]struct {
								Key      *string   `tfsdk:"key" json:"key,omitempty"`
								Operator *string   `tfsdk:"operator" json:"operator,omitempty"`
								Values   *[]string `tfsdk:"values" json:"values,omitempty"`
							} `tfsdk:"match_expressions" json:"matchExpressions,omitempty"`
							MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"`
						} `tfsdk:"selector" json:"selector,omitempty"`
					} `tfsdk:"x509" json:"x509,omitempty"`
				} `tfsdk:"authentication" json:"authentication,omitempty"`
				Authorization *struct {
					Cache *struct {
						Key *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"key" json:"key,omitempty"`
						Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
					} `tfsdk:"cache" json:"cache,omitempty"`
					KubernetesSubjectAccessReview *struct {
						Groups             *[]string `tfsdk:"groups" json:"groups,omitempty"`
						ResourceAttributes *struct {
							Group *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"group" json:"group,omitempty"`
							Name *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"name" json:"name,omitempty"`
							Namespace *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"namespace" json:"namespace,omitempty"`
							Resource *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"resource" json:"resource,omitempty"`
							Subresource *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"subresource" json:"subresource,omitempty"`
							Verb *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"verb" json:"verb,omitempty"`
						} `tfsdk:"resource_attributes" json:"resourceAttributes,omitempty"`
						User *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"user" json:"user,omitempty"`
					} `tfsdk:"kubernetes_subject_access_review" json:"kubernetesSubjectAccessReview,omitempty"`
					Metrics *bool `tfsdk:"metrics" json:"metrics,omitempty"`
					Opa     *struct {
						AllValues      *bool `tfsdk:"all_values" json:"allValues,omitempty"`
						ExternalPolicy *struct {
							Body *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"body" json:"body,omitempty"`
							BodyParameters *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"body_parameters" json:"bodyParameters,omitempty"`
							ContentType *string `tfsdk:"content_type" json:"contentType,omitempty"`
							Credentials *struct {
								AuthorizationHeader *struct {
									Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
								} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
								Cookie *struct {
									Name *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"cookie" json:"cookie,omitempty"`
								CustomHeader *struct {
									Name *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"custom_header" json:"customHeader,omitempty"`
								QueryString *struct {
									Name *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"query_string" json:"queryString,omitempty"`
							} `tfsdk:"credentials" json:"credentials,omitempty"`
							Headers *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							Method *string `tfsdk:"method" json:"method,omitempty"`
							Oauth2 *struct {
								Cache           *bool   `tfsdk:"cache" json:"cache,omitempty"`
								ClientId        *string `tfsdk:"client_id" json:"clientId,omitempty"`
								ClientSecretRef *struct {
									Key  *string `tfsdk:"key" json:"key,omitempty"`
									Name *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"client_secret_ref" json:"clientSecretRef,omitempty"`
								ExtraParams *map[string]string `tfsdk:"extra_params" json:"extraParams,omitempty"`
								Scopes      *[]string          `tfsdk:"scopes" json:"scopes,omitempty"`
								TokenUrl    *string            `tfsdk:"token_url" json:"tokenUrl,omitempty"`
							} `tfsdk:"oauth2" json:"oauth2,omitempty"`
							SharedSecretRef *struct {
								Key  *string `tfsdk:"key" json:"key,omitempty"`
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
							Ttl *int64  `tfsdk:"ttl" json:"ttl,omitempty"`
							Url *string `tfsdk:"url" json:"url,omitempty"`
						} `tfsdk:"external_policy" json:"externalPolicy,omitempty"`
						Rego *string `tfsdk:"rego" json:"rego,omitempty"`
					} `tfsdk:"opa" json:"opa,omitempty"`
					PatternMatching *struct {
						Patterns *[]struct {
							All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
							Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
							Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
							PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
							Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
							Value      *string              `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"patterns" json:"patterns,omitempty"`
					} `tfsdk:"pattern_matching" json:"patternMatching,omitempty"`
					Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
					RouteSelectors *[]struct {
						Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
						Matches   *[]struct {
							Headers *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							Method *string `tfsdk:"method" json:"method,omitempty"`
							Path   *struct {
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"path" json:"path,omitempty"`
							QueryParams *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"query_params" json:"queryParams,omitempty"`
						} `tfsdk:"matches" json:"matches,omitempty"`
					} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
					Spicedb *struct {
						Endpoint   *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
						Insecure   *bool   `tfsdk:"insecure" json:"insecure,omitempty"`
						Permission *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"permission" json:"permission,omitempty"`
						Resource *struct {
							Kind *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"kind" json:"kind,omitempty"`
							Name *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"resource" json:"resource,omitempty"`
						SharedSecretRef *struct {
							Key  *string `tfsdk:"key" json:"key,omitempty"`
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
						Subject *struct {
							Kind *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"kind" json:"kind,omitempty"`
							Name *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"subject" json:"subject,omitempty"`
					} `tfsdk:"spicedb" json:"spicedb,omitempty"`
					When *[]struct {
						All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
						Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
						Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
						PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
						Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
						Value      *string              `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"when" json:"when,omitempty"`
				} `tfsdk:"authorization" json:"authorization,omitempty"`
				Callbacks *struct {
					Cache *struct {
						Key *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"key" json:"key,omitempty"`
						Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
					} `tfsdk:"cache" json:"cache,omitempty"`
					Http *struct {
						Body *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						BodyParameters *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body_parameters" json:"bodyParameters,omitempty"`
						ContentType *string `tfsdk:"content_type" json:"contentType,omitempty"`
						Credentials *struct {
							AuthorizationHeader *struct {
								Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
							} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
							Cookie *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"cookie" json:"cookie,omitempty"`
							CustomHeader *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"custom_header" json:"customHeader,omitempty"`
							QueryString *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"query_string" json:"queryString,omitempty"`
						} `tfsdk:"credentials" json:"credentials,omitempty"`
						Headers *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Oauth2 *struct {
							Cache           *bool   `tfsdk:"cache" json:"cache,omitempty"`
							ClientId        *string `tfsdk:"client_id" json:"clientId,omitempty"`
							ClientSecretRef *struct {
								Key  *string `tfsdk:"key" json:"key,omitempty"`
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"client_secret_ref" json:"clientSecretRef,omitempty"`
							ExtraParams *map[string]string `tfsdk:"extra_params" json:"extraParams,omitempty"`
							Scopes      *[]string          `tfsdk:"scopes" json:"scopes,omitempty"`
							TokenUrl    *string            `tfsdk:"token_url" json:"tokenUrl,omitempty"`
						} `tfsdk:"oauth2" json:"oauth2,omitempty"`
						SharedSecretRef *struct {
							Key  *string `tfsdk:"key" json:"key,omitempty"`
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
						Url *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"http" json:"http,omitempty"`
					Metrics        *bool  `tfsdk:"metrics" json:"metrics,omitempty"`
					Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
					RouteSelectors *[]struct {
						Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
						Matches   *[]struct {
							Headers *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							Method *string `tfsdk:"method" json:"method,omitempty"`
							Path   *struct {
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"path" json:"path,omitempty"`
							QueryParams *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"query_params" json:"queryParams,omitempty"`
						} `tfsdk:"matches" json:"matches,omitempty"`
					} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
					When *[]struct {
						All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
						Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
						Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
						PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
						Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
						Value      *string              `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"when" json:"when,omitempty"`
				} `tfsdk:"callbacks" json:"callbacks,omitempty"`
				Metadata *struct {
					Cache *struct {
						Key *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"key" json:"key,omitempty"`
						Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
					} `tfsdk:"cache" json:"cache,omitempty"`
					Http *struct {
						Body *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						BodyParameters *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body_parameters" json:"bodyParameters,omitempty"`
						ContentType *string `tfsdk:"content_type" json:"contentType,omitempty"`
						Credentials *struct {
							AuthorizationHeader *struct {
								Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
							} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
							Cookie *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"cookie" json:"cookie,omitempty"`
							CustomHeader *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"custom_header" json:"customHeader,omitempty"`
							QueryString *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"query_string" json:"queryString,omitempty"`
						} `tfsdk:"credentials" json:"credentials,omitempty"`
						Headers *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Oauth2 *struct {
							Cache           *bool   `tfsdk:"cache" json:"cache,omitempty"`
							ClientId        *string `tfsdk:"client_id" json:"clientId,omitempty"`
							ClientSecretRef *struct {
								Key  *string `tfsdk:"key" json:"key,omitempty"`
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"client_secret_ref" json:"clientSecretRef,omitempty"`
							ExtraParams *map[string]string `tfsdk:"extra_params" json:"extraParams,omitempty"`
							Scopes      *[]string          `tfsdk:"scopes" json:"scopes,omitempty"`
							TokenUrl    *string            `tfsdk:"token_url" json:"tokenUrl,omitempty"`
						} `tfsdk:"oauth2" json:"oauth2,omitempty"`
						SharedSecretRef *struct {
							Key  *string `tfsdk:"key" json:"key,omitempty"`
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
						Url *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"http" json:"http,omitempty"`
					Metrics        *bool  `tfsdk:"metrics" json:"metrics,omitempty"`
					Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
					RouteSelectors *[]struct {
						Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
						Matches   *[]struct {
							Headers *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							Method *string `tfsdk:"method" json:"method,omitempty"`
							Path   *struct {
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"path" json:"path,omitempty"`
							QueryParams *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"query_params" json:"queryParams,omitempty"`
						} `tfsdk:"matches" json:"matches,omitempty"`
					} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
					Uma *struct {
						CredentialsRef *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"credentials_ref" json:"credentialsRef,omitempty"`
						Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
					} `tfsdk:"uma" json:"uma,omitempty"`
					UserInfo *struct {
						IdentitySource *string `tfsdk:"identity_source" json:"identitySource,omitempty"`
					} `tfsdk:"user_info" json:"userInfo,omitempty"`
					When *[]struct {
						All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
						Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
						Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
						PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
						Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
						Value      *string              `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"when" json:"when,omitempty"`
				} `tfsdk:"metadata" json:"metadata,omitempty"`
				Response *struct {
					Success *struct {
						DynamicMetadata *struct {
							Cache *struct {
								Key *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"key" json:"key,omitempty"`
								Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
							} `tfsdk:"cache" json:"cache,omitempty"`
							Json *struct {
								Properties *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"properties" json:"properties,omitempty"`
							} `tfsdk:"json" json:"json,omitempty"`
							Key     *string `tfsdk:"key" json:"key,omitempty"`
							Metrics *bool   `tfsdk:"metrics" json:"metrics,omitempty"`
							Plain   *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"plain" json:"plain,omitempty"`
							Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
							RouteSelectors *[]struct {
								Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
								Matches   *[]struct {
									Headers *[]struct {
										Name  *string `tfsdk:"name" json:"name,omitempty"`
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									Method *string `tfsdk:"method" json:"method,omitempty"`
									Path   *struct {
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"path" json:"path,omitempty"`
									QueryParams *[]struct {
										Name  *string `tfsdk:"name" json:"name,omitempty"`
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"query_params" json:"queryParams,omitempty"`
								} `tfsdk:"matches" json:"matches,omitempty"`
							} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
							When *[]struct {
								All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
								Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
								Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
								PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
								Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
								Value      *string              `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"when" json:"when,omitempty"`
							Wristband *struct {
								CustomClaims *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"custom_claims" json:"customClaims,omitempty"`
								Issuer         *string `tfsdk:"issuer" json:"issuer,omitempty"`
								SigningKeyRefs *[]struct {
									Algorithm *string `tfsdk:"algorithm" json:"algorithm,omitempty"`
									Name      *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"signing_key_refs" json:"signingKeyRefs,omitempty"`
								TokenDuration *int64 `tfsdk:"token_duration" json:"tokenDuration,omitempty"`
							} `tfsdk:"wristband" json:"wristband,omitempty"`
						} `tfsdk:"dynamic_metadata" json:"dynamicMetadata,omitempty"`
						Headers *struct {
							Cache *struct {
								Key *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"key" json:"key,omitempty"`
								Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
							} `tfsdk:"cache" json:"cache,omitempty"`
							Json *struct {
								Properties *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"properties" json:"properties,omitempty"`
							} `tfsdk:"json" json:"json,omitempty"`
							Key     *string `tfsdk:"key" json:"key,omitempty"`
							Metrics *bool   `tfsdk:"metrics" json:"metrics,omitempty"`
							Plain   *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"plain" json:"plain,omitempty"`
							Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
							RouteSelectors *[]struct {
								Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
								Matches   *[]struct {
									Headers *[]struct {
										Name  *string `tfsdk:"name" json:"name,omitempty"`
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									Method *string `tfsdk:"method" json:"method,omitempty"`
									Path   *struct {
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"path" json:"path,omitempty"`
									QueryParams *[]struct {
										Name  *string `tfsdk:"name" json:"name,omitempty"`
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"query_params" json:"queryParams,omitempty"`
								} `tfsdk:"matches" json:"matches,omitempty"`
							} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
							When *[]struct {
								All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
								Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
								Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
								PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
								Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
								Value      *string              `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"when" json:"when,omitempty"`
							Wristband *struct {
								CustomClaims *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"custom_claims" json:"customClaims,omitempty"`
								Issuer         *string `tfsdk:"issuer" json:"issuer,omitempty"`
								SigningKeyRefs *[]struct {
									Algorithm *string `tfsdk:"algorithm" json:"algorithm,omitempty"`
									Name      *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"signing_key_refs" json:"signingKeyRefs,omitempty"`
								TokenDuration *int64 `tfsdk:"token_duration" json:"tokenDuration,omitempty"`
							} `tfsdk:"wristband" json:"wristband,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
					} `tfsdk:"success" json:"success,omitempty"`
					Unauthenticated *struct {
						Body *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						Code    *int64 `tfsdk:"code" json:"code,omitempty"`
						Headers *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Message *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"message" json:"message,omitempty"`
					} `tfsdk:"unauthenticated" json:"unauthenticated,omitempty"`
					Unauthorized *struct {
						Body *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						Code    *int64 `tfsdk:"code" json:"code,omitempty"`
						Headers *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Message *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"message" json:"message,omitempty"`
					} `tfsdk:"unauthorized" json:"unauthorized,omitempty"`
				} `tfsdk:"response" json:"response,omitempty"`
			} `tfsdk:"rules" json:"rules,omitempty"`
			When *[]struct {
				All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
				Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
				Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
				PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
				Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
				Value      *string              `tfsdk:"value" json:"value,omitempty"`
			} `tfsdk:"when" json:"when,omitempty"`
		} `tfsdk:"defaults" json:"defaults,omitempty"`
		Overrides *struct {
			Patterns       *map[string]string `tfsdk:"patterns" json:"patterns,omitempty"`
			RouteSelectors *[]struct {
				Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
				Matches   *[]struct {
					Headers *[]struct {
						Name  *string `tfsdk:"name" json:"name,omitempty"`
						Type  *string `tfsdk:"type" json:"type,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"headers" json:"headers,omitempty"`
					Method *string `tfsdk:"method" json:"method,omitempty"`
					Path   *struct {
						Type  *string `tfsdk:"type" json:"type,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"path" json:"path,omitempty"`
					QueryParams *[]struct {
						Name  *string `tfsdk:"name" json:"name,omitempty"`
						Type  *string `tfsdk:"type" json:"type,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"query_params" json:"queryParams,omitempty"`
				} `tfsdk:"matches" json:"matches,omitempty"`
			} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
			Rules *struct {
				Authentication *struct {
					Anonymous *map[string]string `tfsdk:"anonymous" json:"anonymous,omitempty"`
					ApiKey    *struct {
						AllNamespaces *bool `tfsdk:"all_namespaces" json:"allNamespaces,omitempty"`
						Selector      *struct {
							MatchExpressions *[]struct {
								Key      *string   `tfsdk:"key" json:"key,omitempty"`
								Operator *string   `tfsdk:"operator" json:"operator,omitempty"`
								Values   *[]string `tfsdk:"values" json:"values,omitempty"`
							} `tfsdk:"match_expressions" json:"matchExpressions,omitempty"`
							MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"`
						} `tfsdk:"selector" json:"selector,omitempty"`
					} `tfsdk:"api_key" json:"apiKey,omitempty"`
					Cache *struct {
						Key *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"key" json:"key,omitempty"`
						Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
					} `tfsdk:"cache" json:"cache,omitempty"`
					Credentials *struct {
						AuthorizationHeader *struct {
							Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
						} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
						Cookie *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"cookie" json:"cookie,omitempty"`
						CustomHeader *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"custom_header" json:"customHeader,omitempty"`
						QueryString *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"query_string" json:"queryString,omitempty"`
					} `tfsdk:"credentials" json:"credentials,omitempty"`
					Defaults *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"defaults" json:"defaults,omitempty"`
					Jwt *struct {
						IssuerUrl *string `tfsdk:"issuer_url" json:"issuerUrl,omitempty"`
						Ttl       *int64  `tfsdk:"ttl" json:"ttl,omitempty"`
					} `tfsdk:"jwt" json:"jwt,omitempty"`
					KubernetesTokenReview *struct {
						Audiences *[]string `tfsdk:"audiences" json:"audiences,omitempty"`
					} `tfsdk:"kubernetes_token_review" json:"kubernetesTokenReview,omitempty"`
					Metrics             *bool `tfsdk:"metrics" json:"metrics,omitempty"`
					Oauth2Introspection *struct {
						CredentialsRef *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"credentials_ref" json:"credentialsRef,omitempty"`
						Endpoint      *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
						TokenTypeHint *string `tfsdk:"token_type_hint" json:"tokenTypeHint,omitempty"`
					} `tfsdk:"oauth2_introspection" json:"oauth2Introspection,omitempty"`
					Overrides *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"overrides" json:"overrides,omitempty"`
					Plain *struct {
						Selector *string `tfsdk:"selector" json:"selector,omitempty"`
					} `tfsdk:"plain" json:"plain,omitempty"`
					Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
					RouteSelectors *[]struct {
						Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
						Matches   *[]struct {
							Headers *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							Method *string `tfsdk:"method" json:"method,omitempty"`
							Path   *struct {
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"path" json:"path,omitempty"`
							QueryParams *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"query_params" json:"queryParams,omitempty"`
						} `tfsdk:"matches" json:"matches,omitempty"`
					} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
					When *[]struct {
						All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
						Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
						Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
						PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
						Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
						Value      *string              `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"when" json:"when,omitempty"`
					X509 *struct {
						AllNamespaces *bool `tfsdk:"all_namespaces" json:"allNamespaces,omitempty"`
						Selector      *struct {
							MatchExpressions *[]struct {
								Key      *string   `tfsdk:"key" json:"key,omitempty"`
								Operator *string   `tfsdk:"operator" json:"operator,omitempty"`
								Values   *[]string `tfsdk:"values" json:"values,omitempty"`
							} `tfsdk:"match_expressions" json:"matchExpressions,omitempty"`
							MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"`
						} `tfsdk:"selector" json:"selector,omitempty"`
					} `tfsdk:"x509" json:"x509,omitempty"`
				} `tfsdk:"authentication" json:"authentication,omitempty"`
				Authorization *struct {
					Cache *struct {
						Key *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"key" json:"key,omitempty"`
						Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
					} `tfsdk:"cache" json:"cache,omitempty"`
					KubernetesSubjectAccessReview *struct {
						Groups             *[]string `tfsdk:"groups" json:"groups,omitempty"`
						ResourceAttributes *struct {
							Group *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"group" json:"group,omitempty"`
							Name *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"name" json:"name,omitempty"`
							Namespace *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"namespace" json:"namespace,omitempty"`
							Resource *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"resource" json:"resource,omitempty"`
							Subresource *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"subresource" json:"subresource,omitempty"`
							Verb *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"verb" json:"verb,omitempty"`
						} `tfsdk:"resource_attributes" json:"resourceAttributes,omitempty"`
						User *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"user" json:"user,omitempty"`
					} `tfsdk:"kubernetes_subject_access_review" json:"kubernetesSubjectAccessReview,omitempty"`
					Metrics *bool `tfsdk:"metrics" json:"metrics,omitempty"`
					Opa     *struct {
						AllValues      *bool `tfsdk:"all_values" json:"allValues,omitempty"`
						ExternalPolicy *struct {
							Body *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"body" json:"body,omitempty"`
							BodyParameters *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"body_parameters" json:"bodyParameters,omitempty"`
							ContentType *string `tfsdk:"content_type" json:"contentType,omitempty"`
							Credentials *struct {
								AuthorizationHeader *struct {
									Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
								} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
								Cookie *struct {
									Name *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"cookie" json:"cookie,omitempty"`
								CustomHeader *struct {
									Name *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"custom_header" json:"customHeader,omitempty"`
								QueryString *struct {
									Name *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"query_string" json:"queryString,omitempty"`
							} `tfsdk:"credentials" json:"credentials,omitempty"`
							Headers *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							Method *string `tfsdk:"method" json:"method,omitempty"`
							Oauth2 *struct {
								Cache           *bool   `tfsdk:"cache" json:"cache,omitempty"`
								ClientId        *string `tfsdk:"client_id" json:"clientId,omitempty"`
								ClientSecretRef *struct {
									Key  *string `tfsdk:"key" json:"key,omitempty"`
									Name *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"client_secret_ref" json:"clientSecretRef,omitempty"`
								ExtraParams *map[string]string `tfsdk:"extra_params" json:"extraParams,omitempty"`
								Scopes      *[]string          `tfsdk:"scopes" json:"scopes,omitempty"`
								TokenUrl    *string            `tfsdk:"token_url" json:"tokenUrl,omitempty"`
							} `tfsdk:"oauth2" json:"oauth2,omitempty"`
							SharedSecretRef *struct {
								Key  *string `tfsdk:"key" json:"key,omitempty"`
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
							Ttl *int64  `tfsdk:"ttl" json:"ttl,omitempty"`
							Url *string `tfsdk:"url" json:"url,omitempty"`
						} `tfsdk:"external_policy" json:"externalPolicy,omitempty"`
						Rego *string `tfsdk:"rego" json:"rego,omitempty"`
					} `tfsdk:"opa" json:"opa,omitempty"`
					PatternMatching *struct {
						Patterns *[]struct {
							All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
							Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
							Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
							PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
							Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
							Value      *string              `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"patterns" json:"patterns,omitempty"`
					} `tfsdk:"pattern_matching" json:"patternMatching,omitempty"`
					Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
					RouteSelectors *[]struct {
						Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
						Matches   *[]struct {
							Headers *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							Method *string `tfsdk:"method" json:"method,omitempty"`
							Path   *struct {
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"path" json:"path,omitempty"`
							QueryParams *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"query_params" json:"queryParams,omitempty"`
						} `tfsdk:"matches" json:"matches,omitempty"`
					} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
					Spicedb *struct {
						Endpoint   *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
						Insecure   *bool   `tfsdk:"insecure" json:"insecure,omitempty"`
						Permission *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"permission" json:"permission,omitempty"`
						Resource *struct {
							Kind *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"kind" json:"kind,omitempty"`
							Name *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"resource" json:"resource,omitempty"`
						SharedSecretRef *struct {
							Key  *string `tfsdk:"key" json:"key,omitempty"`
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
						Subject *struct {
							Kind *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"kind" json:"kind,omitempty"`
							Name *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"subject" json:"subject,omitempty"`
					} `tfsdk:"spicedb" json:"spicedb,omitempty"`
					When *[]struct {
						All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
						Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
						Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
						PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
						Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
						Value      *string              `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"when" json:"when,omitempty"`
				} `tfsdk:"authorization" json:"authorization,omitempty"`
				Callbacks *struct {
					Cache *struct {
						Key *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"key" json:"key,omitempty"`
						Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
					} `tfsdk:"cache" json:"cache,omitempty"`
					Http *struct {
						Body *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						BodyParameters *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body_parameters" json:"bodyParameters,omitempty"`
						ContentType *string `tfsdk:"content_type" json:"contentType,omitempty"`
						Credentials *struct {
							AuthorizationHeader *struct {
								Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
							} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
							Cookie *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"cookie" json:"cookie,omitempty"`
							CustomHeader *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"custom_header" json:"customHeader,omitempty"`
							QueryString *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"query_string" json:"queryString,omitempty"`
						} `tfsdk:"credentials" json:"credentials,omitempty"`
						Headers *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Oauth2 *struct {
							Cache           *bool   `tfsdk:"cache" json:"cache,omitempty"`
							ClientId        *string `tfsdk:"client_id" json:"clientId,omitempty"`
							ClientSecretRef *struct {
								Key  *string `tfsdk:"key" json:"key,omitempty"`
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"client_secret_ref" json:"clientSecretRef,omitempty"`
							ExtraParams *map[string]string `tfsdk:"extra_params" json:"extraParams,omitempty"`
							Scopes      *[]string          `tfsdk:"scopes" json:"scopes,omitempty"`
							TokenUrl    *string            `tfsdk:"token_url" json:"tokenUrl,omitempty"`
						} `tfsdk:"oauth2" json:"oauth2,omitempty"`
						SharedSecretRef *struct {
							Key  *string `tfsdk:"key" json:"key,omitempty"`
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
						Url *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"http" json:"http,omitempty"`
					Metrics        *bool  `tfsdk:"metrics" json:"metrics,omitempty"`
					Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
					RouteSelectors *[]struct {
						Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
						Matches   *[]struct {
							Headers *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							Method *string `tfsdk:"method" json:"method,omitempty"`
							Path   *struct {
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"path" json:"path,omitempty"`
							QueryParams *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"query_params" json:"queryParams,omitempty"`
						} `tfsdk:"matches" json:"matches,omitempty"`
					} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
					When *[]struct {
						All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
						Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
						Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
						PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
						Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
						Value      *string              `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"when" json:"when,omitempty"`
				} `tfsdk:"callbacks" json:"callbacks,omitempty"`
				Metadata *struct {
					Cache *struct {
						Key *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"key" json:"key,omitempty"`
						Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
					} `tfsdk:"cache" json:"cache,omitempty"`
					Http *struct {
						Body *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						BodyParameters *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body_parameters" json:"bodyParameters,omitempty"`
						ContentType *string `tfsdk:"content_type" json:"contentType,omitempty"`
						Credentials *struct {
							AuthorizationHeader *struct {
								Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
							} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
							Cookie *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"cookie" json:"cookie,omitempty"`
							CustomHeader *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"custom_header" json:"customHeader,omitempty"`
							QueryString *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"query_string" json:"queryString,omitempty"`
						} `tfsdk:"credentials" json:"credentials,omitempty"`
						Headers *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Oauth2 *struct {
							Cache           *bool   `tfsdk:"cache" json:"cache,omitempty"`
							ClientId        *string `tfsdk:"client_id" json:"clientId,omitempty"`
							ClientSecretRef *struct {
								Key  *string `tfsdk:"key" json:"key,omitempty"`
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"client_secret_ref" json:"clientSecretRef,omitempty"`
							ExtraParams *map[string]string `tfsdk:"extra_params" json:"extraParams,omitempty"`
							Scopes      *[]string          `tfsdk:"scopes" json:"scopes,omitempty"`
							TokenUrl    *string            `tfsdk:"token_url" json:"tokenUrl,omitempty"`
						} `tfsdk:"oauth2" json:"oauth2,omitempty"`
						SharedSecretRef *struct {
							Key  *string `tfsdk:"key" json:"key,omitempty"`
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
						Url *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"http" json:"http,omitempty"`
					Metrics        *bool  `tfsdk:"metrics" json:"metrics,omitempty"`
					Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
					RouteSelectors *[]struct {
						Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
						Matches   *[]struct {
							Headers *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							Method *string `tfsdk:"method" json:"method,omitempty"`
							Path   *struct {
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"path" json:"path,omitempty"`
							QueryParams *[]struct {
								Name  *string `tfsdk:"name" json:"name,omitempty"`
								Type  *string `tfsdk:"type" json:"type,omitempty"`
								Value *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"query_params" json:"queryParams,omitempty"`
						} `tfsdk:"matches" json:"matches,omitempty"`
					} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
					Uma *struct {
						CredentialsRef *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"credentials_ref" json:"credentialsRef,omitempty"`
						Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
					} `tfsdk:"uma" json:"uma,omitempty"`
					UserInfo *struct {
						IdentitySource *string `tfsdk:"identity_source" json:"identitySource,omitempty"`
					} `tfsdk:"user_info" json:"userInfo,omitempty"`
					When *[]struct {
						All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
						Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
						Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
						PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
						Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
						Value      *string              `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"when" json:"when,omitempty"`
				} `tfsdk:"metadata" json:"metadata,omitempty"`
				Response *struct {
					Success *struct {
						DynamicMetadata *struct {
							Cache *struct {
								Key *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"key" json:"key,omitempty"`
								Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
							} `tfsdk:"cache" json:"cache,omitempty"`
							Json *struct {
								Properties *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"properties" json:"properties,omitempty"`
							} `tfsdk:"json" json:"json,omitempty"`
							Key     *string `tfsdk:"key" json:"key,omitempty"`
							Metrics *bool   `tfsdk:"metrics" json:"metrics,omitempty"`
							Plain   *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"plain" json:"plain,omitempty"`
							Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
							RouteSelectors *[]struct {
								Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
								Matches   *[]struct {
									Headers *[]struct {
										Name  *string `tfsdk:"name" json:"name,omitempty"`
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									Method *string `tfsdk:"method" json:"method,omitempty"`
									Path   *struct {
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"path" json:"path,omitempty"`
									QueryParams *[]struct {
										Name  *string `tfsdk:"name" json:"name,omitempty"`
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"query_params" json:"queryParams,omitempty"`
								} `tfsdk:"matches" json:"matches,omitempty"`
							} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
							When *[]struct {
								All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
								Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
								Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
								PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
								Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
								Value      *string              `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"when" json:"when,omitempty"`
							Wristband *struct {
								CustomClaims *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"custom_claims" json:"customClaims,omitempty"`
								Issuer         *string `tfsdk:"issuer" json:"issuer,omitempty"`
								SigningKeyRefs *[]struct {
									Algorithm *string `tfsdk:"algorithm" json:"algorithm,omitempty"`
									Name      *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"signing_key_refs" json:"signingKeyRefs,omitempty"`
								TokenDuration *int64 `tfsdk:"token_duration" json:"tokenDuration,omitempty"`
							} `tfsdk:"wristband" json:"wristband,omitempty"`
						} `tfsdk:"dynamic_metadata" json:"dynamicMetadata,omitempty"`
						Headers *struct {
							Cache *struct {
								Key *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"key" json:"key,omitempty"`
								Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
							} `tfsdk:"cache" json:"cache,omitempty"`
							Json *struct {
								Properties *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"properties" json:"properties,omitempty"`
							} `tfsdk:"json" json:"json,omitempty"`
							Key     *string `tfsdk:"key" json:"key,omitempty"`
							Metrics *bool   `tfsdk:"metrics" json:"metrics,omitempty"`
							Plain   *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"plain" json:"plain,omitempty"`
							Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
							RouteSelectors *[]struct {
								Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
								Matches   *[]struct {
									Headers *[]struct {
										Name  *string `tfsdk:"name" json:"name,omitempty"`
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									Method *string `tfsdk:"method" json:"method,omitempty"`
									Path   *struct {
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"path" json:"path,omitempty"`
									QueryParams *[]struct {
										Name  *string `tfsdk:"name" json:"name,omitempty"`
										Type  *string `tfsdk:"type" json:"type,omitempty"`
										Value *string `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"query_params" json:"queryParams,omitempty"`
								} `tfsdk:"matches" json:"matches,omitempty"`
							} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
							When *[]struct {
								All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
								Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
								Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
								PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
								Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
								Value      *string              `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"when" json:"when,omitempty"`
							Wristband *struct {
								CustomClaims *struct {
									Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
									Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"custom_claims" json:"customClaims,omitempty"`
								Issuer         *string `tfsdk:"issuer" json:"issuer,omitempty"`
								SigningKeyRefs *[]struct {
									Algorithm *string `tfsdk:"algorithm" json:"algorithm,omitempty"`
									Name      *string `tfsdk:"name" json:"name,omitempty"`
								} `tfsdk:"signing_key_refs" json:"signingKeyRefs,omitempty"`
								TokenDuration *int64 `tfsdk:"token_duration" json:"tokenDuration,omitempty"`
							} `tfsdk:"wristband" json:"wristband,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
					} `tfsdk:"success" json:"success,omitempty"`
					Unauthenticated *struct {
						Body *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						Code    *int64 `tfsdk:"code" json:"code,omitempty"`
						Headers *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Message *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"message" json:"message,omitempty"`
					} `tfsdk:"unauthenticated" json:"unauthenticated,omitempty"`
					Unauthorized *struct {
						Body *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						Code    *int64 `tfsdk:"code" json:"code,omitempty"`
						Headers *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Message *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"message" json:"message,omitempty"`
					} `tfsdk:"unauthorized" json:"unauthorized,omitempty"`
				} `tfsdk:"response" json:"response,omitempty"`
			} `tfsdk:"rules" json:"rules,omitempty"`
			When *[]struct {
				All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
				Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
				Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
				PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
				Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
				Value      *string              `tfsdk:"value" json:"value,omitempty"`
			} `tfsdk:"when" json:"when,omitempty"`
		} `tfsdk:"overrides" json:"overrides,omitempty"`
		Patterns       *map[string]string `tfsdk:"patterns" json:"patterns,omitempty"`
		RouteSelectors *[]struct {
			Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
			Matches   *[]struct {
				Headers *[]struct {
					Name  *string `tfsdk:"name" json:"name,omitempty"`
					Type  *string `tfsdk:"type" json:"type,omitempty"`
					Value *string `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"headers" json:"headers,omitempty"`
				Method *string `tfsdk:"method" json:"method,omitempty"`
				Path   *struct {
					Type  *string `tfsdk:"type" json:"type,omitempty"`
					Value *string `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"path" json:"path,omitempty"`
				QueryParams *[]struct {
					Name  *string `tfsdk:"name" json:"name,omitempty"`
					Type  *string `tfsdk:"type" json:"type,omitempty"`
					Value *string `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"query_params" json:"queryParams,omitempty"`
			} `tfsdk:"matches" json:"matches,omitempty"`
		} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
		Rules *struct {
			Authentication *struct {
				Anonymous *map[string]string `tfsdk:"anonymous" json:"anonymous,omitempty"`
				ApiKey    *struct {
					AllNamespaces *bool `tfsdk:"all_namespaces" json:"allNamespaces,omitempty"`
					Selector      *struct {
						MatchExpressions *[]struct {
							Key      *string   `tfsdk:"key" json:"key,omitempty"`
							Operator *string   `tfsdk:"operator" json:"operator,omitempty"`
							Values   *[]string `tfsdk:"values" json:"values,omitempty"`
						} `tfsdk:"match_expressions" json:"matchExpressions,omitempty"`
						MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"`
					} `tfsdk:"selector" json:"selector,omitempty"`
				} `tfsdk:"api_key" json:"apiKey,omitempty"`
				Cache *struct {
					Key *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"key" json:"key,omitempty"`
					Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
				} `tfsdk:"cache" json:"cache,omitempty"`
				Credentials *struct {
					AuthorizationHeader *struct {
						Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
					} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
					Cookie *struct {
						Name *string `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"cookie" json:"cookie,omitempty"`
					CustomHeader *struct {
						Name *string `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"custom_header" json:"customHeader,omitempty"`
					QueryString *struct {
						Name *string `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"query_string" json:"queryString,omitempty"`
				} `tfsdk:"credentials" json:"credentials,omitempty"`
				Defaults *struct {
					Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
					Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"defaults" json:"defaults,omitempty"`
				Jwt *struct {
					IssuerUrl *string `tfsdk:"issuer_url" json:"issuerUrl,omitempty"`
					Ttl       *int64  `tfsdk:"ttl" json:"ttl,omitempty"`
				} `tfsdk:"jwt" json:"jwt,omitempty"`
				KubernetesTokenReview *struct {
					Audiences *[]string `tfsdk:"audiences" json:"audiences,omitempty"`
				} `tfsdk:"kubernetes_token_review" json:"kubernetesTokenReview,omitempty"`
				Metrics             *bool `tfsdk:"metrics" json:"metrics,omitempty"`
				Oauth2Introspection *struct {
					CredentialsRef *struct {
						Name *string `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"credentials_ref" json:"credentialsRef,omitempty"`
					Endpoint      *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
					TokenTypeHint *string `tfsdk:"token_type_hint" json:"tokenTypeHint,omitempty"`
				} `tfsdk:"oauth2_introspection" json:"oauth2Introspection,omitempty"`
				Overrides *struct {
					Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
					Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"overrides" json:"overrides,omitempty"`
				Plain *struct {
					Selector *string `tfsdk:"selector" json:"selector,omitempty"`
				} `tfsdk:"plain" json:"plain,omitempty"`
				Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
				RouteSelectors *[]struct {
					Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
					Matches   *[]struct {
						Headers *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Path   *struct {
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"path" json:"path,omitempty"`
						QueryParams *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"query_params" json:"queryParams,omitempty"`
					} `tfsdk:"matches" json:"matches,omitempty"`
				} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
				When *[]struct {
					All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
					Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
					Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
					PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
					Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
					Value      *string              `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"when" json:"when,omitempty"`
				X509 *struct {
					AllNamespaces *bool `tfsdk:"all_namespaces" json:"allNamespaces,omitempty"`
					Selector      *struct {
						MatchExpressions *[]struct {
							Key      *string   `tfsdk:"key" json:"key,omitempty"`
							Operator *string   `tfsdk:"operator" json:"operator,omitempty"`
							Values   *[]string `tfsdk:"values" json:"values,omitempty"`
						} `tfsdk:"match_expressions" json:"matchExpressions,omitempty"`
						MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"`
					} `tfsdk:"selector" json:"selector,omitempty"`
				} `tfsdk:"x509" json:"x509,omitempty"`
			} `tfsdk:"authentication" json:"authentication,omitempty"`
			Authorization *struct {
				Cache *struct {
					Key *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"key" json:"key,omitempty"`
					Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
				} `tfsdk:"cache" json:"cache,omitempty"`
				KubernetesSubjectAccessReview *struct {
					Groups             *[]string `tfsdk:"groups" json:"groups,omitempty"`
					ResourceAttributes *struct {
						Group *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"group" json:"group,omitempty"`
						Name *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"name" json:"name,omitempty"`
						Namespace *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"namespace" json:"namespace,omitempty"`
						Resource *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"resource" json:"resource,omitempty"`
						Subresource *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"subresource" json:"subresource,omitempty"`
						Verb *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"verb" json:"verb,omitempty"`
					} `tfsdk:"resource_attributes" json:"resourceAttributes,omitempty"`
					User *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"user" json:"user,omitempty"`
				} `tfsdk:"kubernetes_subject_access_review" json:"kubernetesSubjectAccessReview,omitempty"`
				Metrics *bool `tfsdk:"metrics" json:"metrics,omitempty"`
				Opa     *struct {
					AllValues      *bool `tfsdk:"all_values" json:"allValues,omitempty"`
					ExternalPolicy *struct {
						Body *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						BodyParameters *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"body_parameters" json:"bodyParameters,omitempty"`
						ContentType *string `tfsdk:"content_type" json:"contentType,omitempty"`
						Credentials *struct {
							AuthorizationHeader *struct {
								Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
							} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
							Cookie *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"cookie" json:"cookie,omitempty"`
							CustomHeader *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"custom_header" json:"customHeader,omitempty"`
							QueryString *struct {
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"query_string" json:"queryString,omitempty"`
						} `tfsdk:"credentials" json:"credentials,omitempty"`
						Headers *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Oauth2 *struct {
							Cache           *bool   `tfsdk:"cache" json:"cache,omitempty"`
							ClientId        *string `tfsdk:"client_id" json:"clientId,omitempty"`
							ClientSecretRef *struct {
								Key  *string `tfsdk:"key" json:"key,omitempty"`
								Name *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"client_secret_ref" json:"clientSecretRef,omitempty"`
							ExtraParams *map[string]string `tfsdk:"extra_params" json:"extraParams,omitempty"`
							Scopes      *[]string          `tfsdk:"scopes" json:"scopes,omitempty"`
							TokenUrl    *string            `tfsdk:"token_url" json:"tokenUrl,omitempty"`
						} `tfsdk:"oauth2" json:"oauth2,omitempty"`
						SharedSecretRef *struct {
							Key  *string `tfsdk:"key" json:"key,omitempty"`
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
						Ttl *int64  `tfsdk:"ttl" json:"ttl,omitempty"`
						Url *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"external_policy" json:"externalPolicy,omitempty"`
					Rego *string `tfsdk:"rego" json:"rego,omitempty"`
				} `tfsdk:"opa" json:"opa,omitempty"`
				PatternMatching *struct {
					Patterns *[]struct {
						All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
						Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
						Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
						PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
						Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
						Value      *string              `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"patterns" json:"patterns,omitempty"`
				} `tfsdk:"pattern_matching" json:"patternMatching,omitempty"`
				Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
				RouteSelectors *[]struct {
					Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
					Matches   *[]struct {
						Headers *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Path   *struct {
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"path" json:"path,omitempty"`
						QueryParams *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"query_params" json:"queryParams,omitempty"`
					} `tfsdk:"matches" json:"matches,omitempty"`
				} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
				Spicedb *struct {
					Endpoint   *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
					Insecure   *bool   `tfsdk:"insecure" json:"insecure,omitempty"`
					Permission *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"permission" json:"permission,omitempty"`
					Resource *struct {
						Kind *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"kind" json:"kind,omitempty"`
						Name *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"resource" json:"resource,omitempty"`
					SharedSecretRef *struct {
						Key  *string `tfsdk:"key" json:"key,omitempty"`
						Name *string `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
					Subject *struct {
						Kind *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"kind" json:"kind,omitempty"`
						Name *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"subject" json:"subject,omitempty"`
				} `tfsdk:"spicedb" json:"spicedb,omitempty"`
				When *[]struct {
					All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
					Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
					Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
					PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
					Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
					Value      *string              `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"when" json:"when,omitempty"`
			} `tfsdk:"authorization" json:"authorization,omitempty"`
			Callbacks *struct {
				Cache *struct {
					Key *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"key" json:"key,omitempty"`
					Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
				} `tfsdk:"cache" json:"cache,omitempty"`
				Http *struct {
					Body *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"body" json:"body,omitempty"`
					BodyParameters *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"body_parameters" json:"bodyParameters,omitempty"`
					ContentType *string `tfsdk:"content_type" json:"contentType,omitempty"`
					Credentials *struct {
						AuthorizationHeader *struct {
							Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
						} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
						Cookie *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"cookie" json:"cookie,omitempty"`
						CustomHeader *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"custom_header" json:"customHeader,omitempty"`
						QueryString *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"query_string" json:"queryString,omitempty"`
					} `tfsdk:"credentials" json:"credentials,omitempty"`
					Headers *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"headers" json:"headers,omitempty"`
					Method *string `tfsdk:"method" json:"method,omitempty"`
					Oauth2 *struct {
						Cache           *bool   `tfsdk:"cache" json:"cache,omitempty"`
						ClientId        *string `tfsdk:"client_id" json:"clientId,omitempty"`
						ClientSecretRef *struct {
							Key  *string `tfsdk:"key" json:"key,omitempty"`
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"client_secret_ref" json:"clientSecretRef,omitempty"`
						ExtraParams *map[string]string `tfsdk:"extra_params" json:"extraParams,omitempty"`
						Scopes      *[]string          `tfsdk:"scopes" json:"scopes,omitempty"`
						TokenUrl    *string            `tfsdk:"token_url" json:"tokenUrl,omitempty"`
					} `tfsdk:"oauth2" json:"oauth2,omitempty"`
					SharedSecretRef *struct {
						Key  *string `tfsdk:"key" json:"key,omitempty"`
						Name *string `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
					Url *string `tfsdk:"url" json:"url,omitempty"`
				} `tfsdk:"http" json:"http,omitempty"`
				Metrics        *bool  `tfsdk:"metrics" json:"metrics,omitempty"`
				Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
				RouteSelectors *[]struct {
					Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
					Matches   *[]struct {
						Headers *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Path   *struct {
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"path" json:"path,omitempty"`
						QueryParams *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"query_params" json:"queryParams,omitempty"`
					} `tfsdk:"matches" json:"matches,omitempty"`
				} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
				When *[]struct {
					All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
					Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
					Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
					PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
					Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
					Value      *string              `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"when" json:"when,omitempty"`
			} `tfsdk:"callbacks" json:"callbacks,omitempty"`
			Metadata *struct {
				Cache *struct {
					Key *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"key" json:"key,omitempty"`
					Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
				} `tfsdk:"cache" json:"cache,omitempty"`
				Http *struct {
					Body *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"body" json:"body,omitempty"`
					BodyParameters *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"body_parameters" json:"bodyParameters,omitempty"`
					ContentType *string `tfsdk:"content_type" json:"contentType,omitempty"`
					Credentials *struct {
						AuthorizationHeader *struct {
							Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"`
						} `tfsdk:"authorization_header" json:"authorizationHeader,omitempty"`
						Cookie *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"cookie" json:"cookie,omitempty"`
						CustomHeader *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"custom_header" json:"customHeader,omitempty"`
						QueryString *struct {
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"query_string" json:"queryString,omitempty"`
					} `tfsdk:"credentials" json:"credentials,omitempty"`
					Headers *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"headers" json:"headers,omitempty"`
					Method *string `tfsdk:"method" json:"method,omitempty"`
					Oauth2 *struct {
						Cache           *bool   `tfsdk:"cache" json:"cache,omitempty"`
						ClientId        *string `tfsdk:"client_id" json:"clientId,omitempty"`
						ClientSecretRef *struct {
							Key  *string `tfsdk:"key" json:"key,omitempty"`
							Name *string `tfsdk:"name" json:"name,omitempty"`
						} `tfsdk:"client_secret_ref" json:"clientSecretRef,omitempty"`
						ExtraParams *map[string]string `tfsdk:"extra_params" json:"extraParams,omitempty"`
						Scopes      *[]string          `tfsdk:"scopes" json:"scopes,omitempty"`
						TokenUrl    *string            `tfsdk:"token_url" json:"tokenUrl,omitempty"`
					} `tfsdk:"oauth2" json:"oauth2,omitempty"`
					SharedSecretRef *struct {
						Key  *string `tfsdk:"key" json:"key,omitempty"`
						Name *string `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"shared_secret_ref" json:"sharedSecretRef,omitempty"`
					Url *string `tfsdk:"url" json:"url,omitempty"`
				} `tfsdk:"http" json:"http,omitempty"`
				Metrics        *bool  `tfsdk:"metrics" json:"metrics,omitempty"`
				Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
				RouteSelectors *[]struct {
					Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
					Matches   *[]struct {
						Headers *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Path   *struct {
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"path" json:"path,omitempty"`
						QueryParams *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"query_params" json:"queryParams,omitempty"`
					} `tfsdk:"matches" json:"matches,omitempty"`
				} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
				Uma *struct {
					CredentialsRef *struct {
						Name *string `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"credentials_ref" json:"credentialsRef,omitempty"`
					Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
				} `tfsdk:"uma" json:"uma,omitempty"`
				UserInfo *struct {
					IdentitySource *string `tfsdk:"identity_source" json:"identitySource,omitempty"`
				} `tfsdk:"user_info" json:"userInfo,omitempty"`
				When *[]struct {
					All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
					Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
					Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
					PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
					Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
					Value      *string              `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"when" json:"when,omitempty"`
			} `tfsdk:"metadata" json:"metadata,omitempty"`
			Response *struct {
				Success *struct {
					DynamicMetadata *struct {
						Cache *struct {
							Key *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"key" json:"key,omitempty"`
							Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
						} `tfsdk:"cache" json:"cache,omitempty"`
						Json *struct {
							Properties *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"properties" json:"properties,omitempty"`
						} `tfsdk:"json" json:"json,omitempty"`
						Key     *string `tfsdk:"key" json:"key,omitempty"`
						Metrics *bool   `tfsdk:"metrics" json:"metrics,omitempty"`
						Plain   *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"plain" json:"plain,omitempty"`
						Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
						RouteSelectors *[]struct {
							Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
							Matches   *[]struct {
								Headers *[]struct {
									Name  *string `tfsdk:"name" json:"name,omitempty"`
									Type  *string `tfsdk:"type" json:"type,omitempty"`
									Value *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"headers" json:"headers,omitempty"`
								Method *string `tfsdk:"method" json:"method,omitempty"`
								Path   *struct {
									Type  *string `tfsdk:"type" json:"type,omitempty"`
									Value *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"path" json:"path,omitempty"`
								QueryParams *[]struct {
									Name  *string `tfsdk:"name" json:"name,omitempty"`
									Type  *string `tfsdk:"type" json:"type,omitempty"`
									Value *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"query_params" json:"queryParams,omitempty"`
							} `tfsdk:"matches" json:"matches,omitempty"`
						} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
						When *[]struct {
							All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
							Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
							Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
							PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
							Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
							Value      *string              `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"when" json:"when,omitempty"`
						Wristband *struct {
							CustomClaims *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"custom_claims" json:"customClaims,omitempty"`
							Issuer         *string `tfsdk:"issuer" json:"issuer,omitempty"`
							SigningKeyRefs *[]struct {
								Algorithm *string `tfsdk:"algorithm" json:"algorithm,omitempty"`
								Name      *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"signing_key_refs" json:"signingKeyRefs,omitempty"`
							TokenDuration *int64 `tfsdk:"token_duration" json:"tokenDuration,omitempty"`
						} `tfsdk:"wristband" json:"wristband,omitempty"`
					} `tfsdk:"dynamic_metadata" json:"dynamicMetadata,omitempty"`
					Headers *struct {
						Cache *struct {
							Key *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"key" json:"key,omitempty"`
							Ttl *int64 `tfsdk:"ttl" json:"ttl,omitempty"`
						} `tfsdk:"cache" json:"cache,omitempty"`
						Json *struct {
							Properties *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"properties" json:"properties,omitempty"`
						} `tfsdk:"json" json:"json,omitempty"`
						Key     *string `tfsdk:"key" json:"key,omitempty"`
						Metrics *bool   `tfsdk:"metrics" json:"metrics,omitempty"`
						Plain   *struct {
							Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
							Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"plain" json:"plain,omitempty"`
						Priority       *int64 `tfsdk:"priority" json:"priority,omitempty"`
						RouteSelectors *[]struct {
							Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
							Matches   *[]struct {
								Headers *[]struct {
									Name  *string `tfsdk:"name" json:"name,omitempty"`
									Type  *string `tfsdk:"type" json:"type,omitempty"`
									Value *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"headers" json:"headers,omitempty"`
								Method *string `tfsdk:"method" json:"method,omitempty"`
								Path   *struct {
									Type  *string `tfsdk:"type" json:"type,omitempty"`
									Value *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"path" json:"path,omitempty"`
								QueryParams *[]struct {
									Name  *string `tfsdk:"name" json:"name,omitempty"`
									Type  *string `tfsdk:"type" json:"type,omitempty"`
									Value *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"query_params" json:"queryParams,omitempty"`
							} `tfsdk:"matches" json:"matches,omitempty"`
						} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
						When *[]struct {
							All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
							Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
							Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
							PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
							Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
							Value      *string              `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"when" json:"when,omitempty"`
						Wristband *struct {
							CustomClaims *struct {
								Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
								Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"custom_claims" json:"customClaims,omitempty"`
							Issuer         *string `tfsdk:"issuer" json:"issuer,omitempty"`
							SigningKeyRefs *[]struct {
								Algorithm *string `tfsdk:"algorithm" json:"algorithm,omitempty"`
								Name      *string `tfsdk:"name" json:"name,omitempty"`
							} `tfsdk:"signing_key_refs" json:"signingKeyRefs,omitempty"`
							TokenDuration *int64 `tfsdk:"token_duration" json:"tokenDuration,omitempty"`
						} `tfsdk:"wristband" json:"wristband,omitempty"`
					} `tfsdk:"headers" json:"headers,omitempty"`
				} `tfsdk:"success" json:"success,omitempty"`
				Unauthenticated *struct {
					Body *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"body" json:"body,omitempty"`
					Code    *int64 `tfsdk:"code" json:"code,omitempty"`
					Headers *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"headers" json:"headers,omitempty"`
					Message *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"message" json:"message,omitempty"`
				} `tfsdk:"unauthenticated" json:"unauthenticated,omitempty"`
				Unauthorized *struct {
					Body *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"body" json:"body,omitempty"`
					Code    *int64 `tfsdk:"code" json:"code,omitempty"`
					Headers *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"headers" json:"headers,omitempty"`
					Message *struct {
						Selector *string            `tfsdk:"selector" json:"selector,omitempty"`
						Value    *map[string]string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"message" json:"message,omitempty"`
				} `tfsdk:"unauthorized" json:"unauthorized,omitempty"`
			} `tfsdk:"response" json:"response,omitempty"`
		} `tfsdk:"rules" json:"rules,omitempty"`
		TargetRef *struct {
			Group *string `tfsdk:"group" json:"group,omitempty"`
			Kind  *string `tfsdk:"kind" json:"kind,omitempty"`
			Name  *string `tfsdk:"name" json:"name,omitempty"`
		} `tfsdk:"target_ref" json:"targetRef,omitempty"`
		When *[]struct {
			All        *[]map[string]string `tfsdk:"all" json:"all,omitempty"`
			Any        *[]map[string]string `tfsdk:"any" json:"any,omitempty"`
			Operator   *string              `tfsdk:"operator" json:"operator,omitempty"`
			PatternRef *string              `tfsdk:"pattern_ref" json:"patternRef,omitempty"`
			Selector   *string              `tfsdk:"selector" json:"selector,omitempty"`
			Value      *string              `tfsdk:"value" json:"value,omitempty"`
		} `tfsdk:"when" json:"when,omitempty"`
	} `tfsdk:"spec" json:"spec,omitempty"`
}

type KuadrantIoRateLimitPolicyV1Beta2Manifest

type KuadrantIoRateLimitPolicyV1Beta2Manifest struct{}

func (*KuadrantIoRateLimitPolicyV1Beta2Manifest) Metadata

func (*KuadrantIoRateLimitPolicyV1Beta2Manifest) Read

func (*KuadrantIoRateLimitPolicyV1Beta2Manifest) Schema

type KuadrantIoRateLimitPolicyV1Beta2ManifestData

type KuadrantIoRateLimitPolicyV1Beta2ManifestData struct {
	YAML types.String `tfsdk:"yaml" json:"-"`

	ApiVersion *string `tfsdk:"-" json:"apiVersion"`
	Kind       *string `tfsdk:"-" json:"kind"`

	Metadata struct {
		Name        string            `tfsdk:"name" json:"name"`
		Namespace   string            `tfsdk:"namespace" json:"namespace"`
		Labels      map[string]string `tfsdk:"labels" json:"labels,omitempty"`
		Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"`
	} `tfsdk:"metadata" json:"metadata"`

	Spec *struct {
		Defaults *struct {
			Limits *struct {
				Counters *[]string `tfsdk:"counters" json:"counters,omitempty"`
				Rates    *[]struct {
					Duration *int64  `tfsdk:"duration" json:"duration,omitempty"`
					Limit    *int64  `tfsdk:"limit" json:"limit,omitempty"`
					Unit     *string `tfsdk:"unit" json:"unit,omitempty"`
				} `tfsdk:"rates" json:"rates,omitempty"`
				RouteSelectors *[]struct {
					Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
					Matches   *[]struct {
						Headers *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Path   *struct {
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"path" json:"path,omitempty"`
						QueryParams *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"query_params" json:"queryParams,omitempty"`
					} `tfsdk:"matches" json:"matches,omitempty"`
				} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
				When *[]struct {
					Operator *string `tfsdk:"operator" json:"operator,omitempty"`
					Selector *string `tfsdk:"selector" json:"selector,omitempty"`
					Value    *string `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"when" json:"when,omitempty"`
			} `tfsdk:"limits" json:"limits,omitempty"`
		} `tfsdk:"defaults" json:"defaults,omitempty"`
		Limits *struct {
			Counters *[]string `tfsdk:"counters" json:"counters,omitempty"`
			Rates    *[]struct {
				Duration *int64  `tfsdk:"duration" json:"duration,omitempty"`
				Limit    *int64  `tfsdk:"limit" json:"limit,omitempty"`
				Unit     *string `tfsdk:"unit" json:"unit,omitempty"`
			} `tfsdk:"rates" json:"rates,omitempty"`
			RouteSelectors *[]struct {
				Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
				Matches   *[]struct {
					Headers *[]struct {
						Name  *string `tfsdk:"name" json:"name,omitempty"`
						Type  *string `tfsdk:"type" json:"type,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"headers" json:"headers,omitempty"`
					Method *string `tfsdk:"method" json:"method,omitempty"`
					Path   *struct {
						Type  *string `tfsdk:"type" json:"type,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"path" json:"path,omitempty"`
					QueryParams *[]struct {
						Name  *string `tfsdk:"name" json:"name,omitempty"`
						Type  *string `tfsdk:"type" json:"type,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"query_params" json:"queryParams,omitempty"`
				} `tfsdk:"matches" json:"matches,omitempty"`
			} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
			When *[]struct {
				Operator *string `tfsdk:"operator" json:"operator,omitempty"`
				Selector *string `tfsdk:"selector" json:"selector,omitempty"`
				Value    *string `tfsdk:"value" json:"value,omitempty"`
			} `tfsdk:"when" json:"when,omitempty"`
		} `tfsdk:"limits" json:"limits,omitempty"`
		Overrides *struct {
			Limits *struct {
				Counters *[]string `tfsdk:"counters" json:"counters,omitempty"`
				Rates    *[]struct {
					Duration *int64  `tfsdk:"duration" json:"duration,omitempty"`
					Limit    *int64  `tfsdk:"limit" json:"limit,omitempty"`
					Unit     *string `tfsdk:"unit" json:"unit,omitempty"`
				} `tfsdk:"rates" json:"rates,omitempty"`
				RouteSelectors *[]struct {
					Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"`
					Matches   *[]struct {
						Headers *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						Method *string `tfsdk:"method" json:"method,omitempty"`
						Path   *struct {
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"path" json:"path,omitempty"`
						QueryParams *[]struct {
							Name  *string `tfsdk:"name" json:"name,omitempty"`
							Type  *string `tfsdk:"type" json:"type,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"query_params" json:"queryParams,omitempty"`
					} `tfsdk:"matches" json:"matches,omitempty"`
				} `tfsdk:"route_selectors" json:"routeSelectors,omitempty"`
				When *[]struct {
					Operator *string `tfsdk:"operator" json:"operator,omitempty"`
					Selector *string `tfsdk:"selector" json:"selector,omitempty"`
					Value    *string `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"when" json:"when,omitempty"`
			} `tfsdk:"limits" json:"limits,omitempty"`
		} `tfsdk:"overrides" json:"overrides,omitempty"`
		TargetRef *struct {
			Group *string `tfsdk:"group" json:"group,omitempty"`
			Kind  *string `tfsdk:"kind" json:"kind,omitempty"`
			Name  *string `tfsdk:"name" json:"name,omitempty"`
		} `tfsdk:"target_ref" json:"targetRef,omitempty"`
	} `tfsdk:"spec" json:"spec,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL