gloo_solo_io_v1

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: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewGlooSoloIoProxyV1Manifest

func NewGlooSoloIoProxyV1Manifest() datasource.DataSource

func NewGlooSoloIoSettingsV1Manifest

func NewGlooSoloIoSettingsV1Manifest() datasource.DataSource

func NewGlooSoloIoUpstreamGroupV1Manifest

func NewGlooSoloIoUpstreamGroupV1Manifest() datasource.DataSource

func NewGlooSoloIoUpstreamV1Manifest

func NewGlooSoloIoUpstreamV1Manifest() datasource.DataSource

Types

type GlooSoloIoProxyV1Manifest

type GlooSoloIoProxyV1Manifest struct{}

func (*GlooSoloIoProxyV1Manifest) Metadata

func (*GlooSoloIoProxyV1Manifest) Read

func (*GlooSoloIoProxyV1Manifest) Schema

type GlooSoloIoProxyV1ManifestData

type GlooSoloIoProxyV1ManifestData 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 {
		CompressedSpec *string `tfsdk:"compressed_spec" json:"compressedSpec,omitempty"`
		Listeners      *[]struct {
			AggregateListener *map[string]string `tfsdk:"aggregate_listener" json:"aggregateListener,omitempty"`
			BindAddress       *string            `tfsdk:"bind_address" json:"bindAddress,omitempty"`
			BindPort          *int64             `tfsdk:"bind_port" json:"bindPort,omitempty"`
			HttpListener      *map[string]string `tfsdk:"http_listener" json:"httpListener,omitempty"`
			HybridListener    *map[string]string `tfsdk:"hybrid_listener" json:"hybridListener,omitempty"`
			Metadata          *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"`
			MetadataStatic    *struct {
				Sources *[]struct {
					ObservedGeneration *int64  `tfsdk:"observed_generation" json:"observedGeneration,omitempty"`
					ResourceKind       *string `tfsdk:"resource_kind" json:"resourceKind,omitempty"`
					ResourceRef        *struct {
						Name      *string `tfsdk:"name" json:"name,omitempty"`
						Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
					} `tfsdk:"resource_ref" json:"resourceRef,omitempty"`
				} `tfsdk:"sources" json:"sources,omitempty"`
			} `tfsdk:"metadata_static" json:"metadataStatic,omitempty"`
			Name    *string `tfsdk:"name" json:"name,omitempty"`
			Options *struct {
				AccessLoggingService *struct {
					AccessLog *[]struct {
						FileSink *struct {
							JsonFormat   *map[string]string `tfsdk:"json_format" json:"jsonFormat,omitempty"`
							Path         *string            `tfsdk:"path" json:"path,omitempty"`
							StringFormat *string            `tfsdk:"string_format" json:"stringFormat,omitempty"`
						} `tfsdk:"file_sink" json:"fileSink,omitempty"`
						Filter *struct {
							AndFilter      *map[string]string `tfsdk:"and_filter" json:"andFilter,omitempty"`
							DurationFilter *struct {
								Comparison *struct {
									Op    *string `tfsdk:"op" json:"op,omitempty"`
									Value *struct {
										DefaultValue *int64  `tfsdk:"default_value" json:"defaultValue,omitempty"`
										RuntimeKey   *string `tfsdk:"runtime_key" json:"runtimeKey,omitempty"`
									} `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"comparison" json:"comparison,omitempty"`
							} `tfsdk:"duration_filter" json:"durationFilter,omitempty"`
							GrpcStatusFilter *struct {
								Exclude  *bool     `tfsdk:"exclude" json:"exclude,omitempty"`
								Statuses *[]string `tfsdk:"statuses" json:"statuses,omitempty"`
							} `tfsdk:"grpc_status_filter" json:"grpcStatusFilter,omitempty"`
							HeaderFilter *struct {
								Header *struct {
									ExactMatch   *string `tfsdk:"exact_match" json:"exactMatch,omitempty"`
									InvertMatch  *bool   `tfsdk:"invert_match" json:"invertMatch,omitempty"`
									Name         *string `tfsdk:"name" json:"name,omitempty"`
									PrefixMatch  *string `tfsdk:"prefix_match" json:"prefixMatch,omitempty"`
									PresentMatch *bool   `tfsdk:"present_match" json:"presentMatch,omitempty"`
									RangeMatch   *struct {
										End   *int64 `tfsdk:"end" json:"end,omitempty"`
										Start *int64 `tfsdk:"start" json:"start,omitempty"`
									} `tfsdk:"range_match" json:"rangeMatch,omitempty"`
									SafeRegexMatch *struct {
										GoogleRe2 *struct {
											MaxProgramSize *int64 `tfsdk:"max_program_size" json:"maxProgramSize,omitempty"`
										} `tfsdk:"google_re2" json:"googleRe2,omitempty"`
										Regex *string `tfsdk:"regex" json:"regex,omitempty"`
									} `tfsdk:"safe_regex_match" json:"safeRegexMatch,omitempty"`
									SuffixMatch *string `tfsdk:"suffix_match" json:"suffixMatch,omitempty"`
								} `tfsdk:"header" json:"header,omitempty"`
							} `tfsdk:"header_filter" json:"headerFilter,omitempty"`
							NotHealthCheckFilter *map[string]string `tfsdk:"not_health_check_filter" json:"notHealthCheckFilter,omitempty"`
							OrFilter             *map[string]string `tfsdk:"or_filter" json:"orFilter,omitempty"`
							ResponseFlagFilter   *struct {
								Flags *[]string `tfsdk:"flags" json:"flags,omitempty"`
							} `tfsdk:"response_flag_filter" json:"responseFlagFilter,omitempty"`
							RuntimeFilter *struct {
								PercentSampled *struct {
									Denominator *string `tfsdk:"denominator" json:"denominator,omitempty"`
									Numerator   *int64  `tfsdk:"numerator" json:"numerator,omitempty"`
								} `tfsdk:"percent_sampled" json:"percentSampled,omitempty"`
								RuntimeKey               *string `tfsdk:"runtime_key" json:"runtimeKey,omitempty"`
								UseIndependentRandomness *bool   `tfsdk:"use_independent_randomness" json:"useIndependentRandomness,omitempty"`
							} `tfsdk:"runtime_filter" json:"runtimeFilter,omitempty"`
							StatusCodeFilter *struct {
								Comparison *struct {
									Op    *string `tfsdk:"op" json:"op,omitempty"`
									Value *struct {
										DefaultValue *int64  `tfsdk:"default_value" json:"defaultValue,omitempty"`
										RuntimeKey   *string `tfsdk:"runtime_key" json:"runtimeKey,omitempty"`
									} `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"comparison" json:"comparison,omitempty"`
							} `tfsdk:"status_code_filter" json:"statusCodeFilter,omitempty"`
							TraceableFilter *map[string]string `tfsdk:"traceable_filter" json:"traceableFilter,omitempty"`
						} `tfsdk:"filter" json:"filter,omitempty"`
						GrpcService *struct {
							AdditionalRequestHeadersToLog   *[]string `tfsdk:"additional_request_headers_to_log" json:"additionalRequestHeadersToLog,omitempty"`
							AdditionalResponseHeadersToLog  *[]string `tfsdk:"additional_response_headers_to_log" json:"additionalResponseHeadersToLog,omitempty"`
							AdditionalResponseTrailersToLog *[]string `tfsdk:"additional_response_trailers_to_log" json:"additionalResponseTrailersToLog,omitempty"`
							LogName                         *string   `tfsdk:"log_name" json:"logName,omitempty"`
							StaticClusterName               *string   `tfsdk:"static_cluster_name" json:"staticClusterName,omitempty"`
						} `tfsdk:"grpc_service" json:"grpcService,omitempty"`
					} `tfsdk:"access_log" json:"accessLog,omitempty"`
				} `tfsdk:"access_logging_service" json:"accessLoggingService,omitempty"`
				ConnectionBalanceConfig *struct {
					ExactBalance *map[string]string `tfsdk:"exact_balance" json:"exactBalance,omitempty"`
				} `tfsdk:"connection_balance_config" json:"connectionBalanceConfig,omitempty"`
				Extensions *struct {
					Configs *map[string]string `tfsdk:"configs" json:"configs,omitempty"`
				} `tfsdk:"extensions" json:"extensions,omitempty"`
				ListenerAccessLoggingService *struct {
					AccessLog *[]struct {
						FileSink *struct {
							JsonFormat   *map[string]string `tfsdk:"json_format" json:"jsonFormat,omitempty"`
							Path         *string            `tfsdk:"path" json:"path,omitempty"`
							StringFormat *string            `tfsdk:"string_format" json:"stringFormat,omitempty"`
						} `tfsdk:"file_sink" json:"fileSink,omitempty"`
						Filter *struct {
							AndFilter      *map[string]string `tfsdk:"and_filter" json:"andFilter,omitempty"`
							DurationFilter *struct {
								Comparison *struct {
									Op    *string `tfsdk:"op" json:"op,omitempty"`
									Value *struct {
										DefaultValue *int64  `tfsdk:"default_value" json:"defaultValue,omitempty"`
										RuntimeKey   *string `tfsdk:"runtime_key" json:"runtimeKey,omitempty"`
									} `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"comparison" json:"comparison,omitempty"`
							} `tfsdk:"duration_filter" json:"durationFilter,omitempty"`
							GrpcStatusFilter *struct {
								Exclude  *bool     `tfsdk:"exclude" json:"exclude,omitempty"`
								Statuses *[]string `tfsdk:"statuses" json:"statuses,omitempty"`
							} `tfsdk:"grpc_status_filter" json:"grpcStatusFilter,omitempty"`
							HeaderFilter *struct {
								Header *struct {
									ExactMatch   *string `tfsdk:"exact_match" json:"exactMatch,omitempty"`
									InvertMatch  *bool   `tfsdk:"invert_match" json:"invertMatch,omitempty"`
									Name         *string `tfsdk:"name" json:"name,omitempty"`
									PrefixMatch  *string `tfsdk:"prefix_match" json:"prefixMatch,omitempty"`
									PresentMatch *bool   `tfsdk:"present_match" json:"presentMatch,omitempty"`
									RangeMatch   *struct {
										End   *int64 `tfsdk:"end" json:"end,omitempty"`
										Start *int64 `tfsdk:"start" json:"start,omitempty"`
									} `tfsdk:"range_match" json:"rangeMatch,omitempty"`
									SafeRegexMatch *struct {
										GoogleRe2 *struct {
											MaxProgramSize *int64 `tfsdk:"max_program_size" json:"maxProgramSize,omitempty"`
										} `tfsdk:"google_re2" json:"googleRe2,omitempty"`
										Regex *string `tfsdk:"regex" json:"regex,omitempty"`
									} `tfsdk:"safe_regex_match" json:"safeRegexMatch,omitempty"`
									SuffixMatch *string `tfsdk:"suffix_match" json:"suffixMatch,omitempty"`
								} `tfsdk:"header" json:"header,omitempty"`
							} `tfsdk:"header_filter" json:"headerFilter,omitempty"`
							NotHealthCheckFilter *map[string]string `tfsdk:"not_health_check_filter" json:"notHealthCheckFilter,omitempty"`
							OrFilter             *map[string]string `tfsdk:"or_filter" json:"orFilter,omitempty"`
							ResponseFlagFilter   *struct {
								Flags *[]string `tfsdk:"flags" json:"flags,omitempty"`
							} `tfsdk:"response_flag_filter" json:"responseFlagFilter,omitempty"`
							RuntimeFilter *struct {
								PercentSampled *struct {
									Denominator *string `tfsdk:"denominator" json:"denominator,omitempty"`
									Numerator   *int64  `tfsdk:"numerator" json:"numerator,omitempty"`
								} `tfsdk:"percent_sampled" json:"percentSampled,omitempty"`
								RuntimeKey               *string `tfsdk:"runtime_key" json:"runtimeKey,omitempty"`
								UseIndependentRandomness *bool   `tfsdk:"use_independent_randomness" json:"useIndependentRandomness,omitempty"`
							} `tfsdk:"runtime_filter" json:"runtimeFilter,omitempty"`
							StatusCodeFilter *struct {
								Comparison *struct {
									Op    *string `tfsdk:"op" json:"op,omitempty"`
									Value *struct {
										DefaultValue *int64  `tfsdk:"default_value" json:"defaultValue,omitempty"`
										RuntimeKey   *string `tfsdk:"runtime_key" json:"runtimeKey,omitempty"`
									} `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"comparison" json:"comparison,omitempty"`
							} `tfsdk:"status_code_filter" json:"statusCodeFilter,omitempty"`
							TraceableFilter *map[string]string `tfsdk:"traceable_filter" json:"traceableFilter,omitempty"`
						} `tfsdk:"filter" json:"filter,omitempty"`
						GrpcService *struct {
							AdditionalRequestHeadersToLog   *[]string `tfsdk:"additional_request_headers_to_log" json:"additionalRequestHeadersToLog,omitempty"`
							AdditionalResponseHeadersToLog  *[]string `tfsdk:"additional_response_headers_to_log" json:"additionalResponseHeadersToLog,omitempty"`
							AdditionalResponseTrailersToLog *[]string `tfsdk:"additional_response_trailers_to_log" json:"additionalResponseTrailersToLog,omitempty"`
							LogName                         *string   `tfsdk:"log_name" json:"logName,omitempty"`
							StaticClusterName               *string   `tfsdk:"static_cluster_name" json:"staticClusterName,omitempty"`
						} `tfsdk:"grpc_service" json:"grpcService,omitempty"`
					} `tfsdk:"access_log" json:"accessLog,omitempty"`
				} `tfsdk:"listener_access_logging_service" json:"listenerAccessLoggingService,omitempty"`
				PerConnectionBufferLimitBytes *int64 `tfsdk:"per_connection_buffer_limit_bytes" json:"perConnectionBufferLimitBytes,omitempty"`
				ProxyProtocol                 *struct {
					AllowRequestsWithoutProxyProtocol *bool `tfsdk:"allow_requests_without_proxy_protocol" json:"allowRequestsWithoutProxyProtocol,omitempty"`
					Rules                             *[]struct {
						OnTlvPresent *struct {
							Key               *string `tfsdk:"key" json:"key,omitempty"`
							MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
						} `tfsdk:"on_tlv_present" json:"onTlvPresent,omitempty"`
						TlvType *int64 `tfsdk:"tlv_type" json:"tlvType,omitempty"`
					} `tfsdk:"rules" json:"rules,omitempty"`
				} `tfsdk:"proxy_protocol" json:"proxyProtocol,omitempty"`
				SocketOptions *[]struct {
					BufValue    *string `tfsdk:"buf_value" json:"bufValue,omitempty"`
					Description *string `tfsdk:"description" json:"description,omitempty"`
					IntValue    *int64  `tfsdk:"int_value" json:"intValue,omitempty"`
					Level       *int64  `tfsdk:"level" json:"level,omitempty"`
					Name        *int64  `tfsdk:"name" json:"name,omitempty"`
					State       *string `tfsdk:"state" json:"state,omitempty"`
				} `tfsdk:"socket_options" json:"socketOptions,omitempty"`
			} `tfsdk:"options" json:"options,omitempty"`
			RouteOptions *struct {
				MaxDirectResponseBodySizeBytes  *int64 `tfsdk:"max_direct_response_body_size_bytes" json:"maxDirectResponseBodySizeBytes,omitempty"`
				MostSpecificHeaderMutationsWins *bool  `tfsdk:"most_specific_header_mutations_wins" json:"mostSpecificHeaderMutationsWins,omitempty"`
			} `tfsdk:"route_options" json:"routeOptions,omitempty"`
			SslConfigurations *[]struct {
				AlpnProtocols               *[]string `tfsdk:"alpn_protocols" json:"alpnProtocols,omitempty"`
				DisableTlsSessionResumption *bool     `tfsdk:"disable_tls_session_resumption" json:"disableTlsSessionResumption,omitempty"`
				OcspStaplePolicy            *string   `tfsdk:"ocsp_staple_policy" json:"ocspStaplePolicy,omitempty"`
				OneWayTls                   *bool     `tfsdk:"one_way_tls" json:"oneWayTls,omitempty"`
				Parameters                  *struct {
					CipherSuites           *[]string `tfsdk:"cipher_suites" json:"cipherSuites,omitempty"`
					EcdhCurves             *[]string `tfsdk:"ecdh_curves" json:"ecdhCurves,omitempty"`
					MaximumProtocolVersion *string   `tfsdk:"maximum_protocol_version" json:"maximumProtocolVersion,omitempty"`
					MinimumProtocolVersion *string   `tfsdk:"minimum_protocol_version" json:"minimumProtocolVersion,omitempty"`
				} `tfsdk:"parameters" json:"parameters,omitempty"`
				Sds *struct {
					CallCredentials *struct {
						FileCredentialSource *struct {
							Header        *string `tfsdk:"header" json:"header,omitempty"`
							TokenFileName *string `tfsdk:"token_file_name" json:"tokenFileName,omitempty"`
						} `tfsdk:"file_credential_source" json:"fileCredentialSource,omitempty"`
					} `tfsdk:"call_credentials" json:"callCredentials,omitempty"`
					CertificatesSecretName *string `tfsdk:"certificates_secret_name" json:"certificatesSecretName,omitempty"`
					ClusterName            *string `tfsdk:"cluster_name" json:"clusterName,omitempty"`
					TargetUri              *string `tfsdk:"target_uri" json:"targetUri,omitempty"`
					ValidationContextName  *string `tfsdk:"validation_context_name" json:"validationContextName,omitempty"`
				} `tfsdk:"sds" json:"sds,omitempty"`
				SecretRef *struct {
					Name      *string `tfsdk:"name" json:"name,omitempty"`
					Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
				} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
				SniDomains *[]string `tfsdk:"sni_domains" json:"sniDomains,omitempty"`
				SslFiles   *struct {
					OcspStaple *string `tfsdk:"ocsp_staple" json:"ocspStaple,omitempty"`
					RootCa     *string `tfsdk:"root_ca" json:"rootCa,omitempty"`
					TlsCert    *string `tfsdk:"tls_cert" json:"tlsCert,omitempty"`
					TlsKey     *string `tfsdk:"tls_key" json:"tlsKey,omitempty"`
				} `tfsdk:"ssl_files" json:"sslFiles,omitempty"`
				TransportSocketConnectTimeout *string   `tfsdk:"transport_socket_connect_timeout" json:"transportSocketConnectTimeout,omitempty"`
				VerifySubjectAltName          *[]string `tfsdk:"verify_subject_alt_name" json:"verifySubjectAltName,omitempty"`
			} `tfsdk:"ssl_configurations" json:"sslConfigurations,omitempty"`
			TcpListener   *map[string]string `tfsdk:"tcp_listener" json:"tcpListener,omitempty"`
			UseProxyProto *bool              `tfsdk:"use_proxy_proto" json:"useProxyProto,omitempty"`
		} `tfsdk:"listeners" json:"listeners,omitempty"`
		NamespacedStatuses *struct {
			Statuses *map[string]string `tfsdk:"statuses" json:"statuses,omitempty"`
		} `tfsdk:"namespaced_statuses" json:"namespacedStatuses,omitempty"`
	} `tfsdk:"spec" json:"spec,omitempty"`
}

type GlooSoloIoSettingsV1Manifest

type GlooSoloIoSettingsV1Manifest struct{}

func (*GlooSoloIoSettingsV1Manifest) Metadata

func (*GlooSoloIoSettingsV1Manifest) Read

func (*GlooSoloIoSettingsV1Manifest) Schema

type GlooSoloIoSettingsV1ManifestData

type GlooSoloIoSettingsV1ManifestData 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 {
		CachingServer *struct {
			AllowedVaryHeaders *[]struct {
				Exact      *string `tfsdk:"exact" json:"exact,omitempty"`
				IgnoreCase *bool   `tfsdk:"ignore_case" json:"ignoreCase,omitempty"`
				Prefix     *string `tfsdk:"prefix" json:"prefix,omitempty"`
				SafeRegex  *struct {
					GoogleRe2 *struct {
						MaxProgramSize *int64 `tfsdk:"max_program_size" json:"maxProgramSize,omitempty"`
					} `tfsdk:"google_re2" json:"googleRe2,omitempty"`
					Regex *string `tfsdk:"regex" json:"regex,omitempty"`
				} `tfsdk:"safe_regex" json:"safeRegex,omitempty"`
				Suffix *string `tfsdk:"suffix" json:"suffix,omitempty"`
			} `tfsdk:"allowed_vary_headers" json:"allowedVaryHeaders,omitempty"`
			CachingServiceRef *struct {
				Name      *string `tfsdk:"name" json:"name,omitempty"`
				Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
			} `tfsdk:"caching_service_ref" json:"cachingServiceRef,omitempty"`
			MaxPayloadSize *int64  `tfsdk:"max_payload_size" json:"maxPayloadSize,omitempty"`
			Timeout        *string `tfsdk:"timeout" json:"timeout,omitempty"`
		} `tfsdk:"caching_server" json:"cachingServer,omitempty"`
		ConsoleOptions *struct {
			ApiExplorerEnabled *bool `tfsdk:"api_explorer_enabled" json:"apiExplorerEnabled,omitempty"`
			ReadOnly           *bool `tfsdk:"read_only" json:"readOnly,omitempty"`
		} `tfsdk:"console_options" json:"consoleOptions,omitempty"`
		Consul *struct {
			Address            *string `tfsdk:"address" json:"address,omitempty"`
			CaFile             *string `tfsdk:"ca_file" json:"caFile,omitempty"`
			CaPath             *string `tfsdk:"ca_path" json:"caPath,omitempty"`
			CertFile           *string `tfsdk:"cert_file" json:"certFile,omitempty"`
			Datacenter         *string `tfsdk:"datacenter" json:"datacenter,omitempty"`
			DnsAddress         *string `tfsdk:"dns_address" json:"dnsAddress,omitempty"`
			DnsPollingInterval *string `tfsdk:"dns_polling_interval" json:"dnsPollingInterval,omitempty"`
			HttpAddress        *string `tfsdk:"http_address" json:"httpAddress,omitempty"`
			InsecureSkipVerify *bool   `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"`
			KeyFile            *string `tfsdk:"key_file" json:"keyFile,omitempty"`
			Password           *string `tfsdk:"password" json:"password,omitempty"`
			ServiceDiscovery   *struct {
				DataCenters *[]string `tfsdk:"data_centers" json:"dataCenters,omitempty"`
			} `tfsdk:"service_discovery" json:"serviceDiscovery,omitempty"`
			Token    *string `tfsdk:"token" json:"token,omitempty"`
			Username *string `tfsdk:"username" json:"username,omitempty"`
			WaitTime *string `tfsdk:"wait_time" json:"waitTime,omitempty"`
		} `tfsdk:"consul" json:"consul,omitempty"`
		ConsulDiscovery *struct {
			ConsistencyMode    *string `tfsdk:"consistency_mode" json:"consistencyMode,omitempty"`
			EdsBlockingQueries *bool   `tfsdk:"eds_blocking_queries" json:"edsBlockingQueries,omitempty"`
			QueryOptions       *struct {
				UseCache *bool `tfsdk:"use_cache" json:"useCache,omitempty"`
			} `tfsdk:"query_options" json:"queryOptions,omitempty"`
			RootCa *struct {
				Name      *string `tfsdk:"name" json:"name,omitempty"`
				Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
			} `tfsdk:"root_ca" json:"rootCa,omitempty"`
			ServiceTagsAllowlist *[]string `tfsdk:"service_tags_allowlist" json:"serviceTagsAllowlist,omitempty"`
			SplitTlsServices     *bool     `tfsdk:"split_tls_services" json:"splitTlsServices,omitempty"`
			TlsTagName           *string   `tfsdk:"tls_tag_name" json:"tlsTagName,omitempty"`
			UseTlsTagging        *bool     `tfsdk:"use_tls_tagging" json:"useTlsTagging,omitempty"`
		} `tfsdk:"consul_discovery" json:"consulDiscovery,omitempty"`
		ConsulKvArtifactSource *struct {
			RootKey *string `tfsdk:"root_key" json:"rootKey,omitempty"`
		} `tfsdk:"consul_kv_artifact_source" json:"consulKvArtifactSource,omitempty"`
		ConsulKvSource *struct {
			RootKey *string `tfsdk:"root_key" json:"rootKey,omitempty"`
		} `tfsdk:"consul_kv_source" json:"consulKvSource,omitempty"`
		DevMode                 *bool `tfsdk:"dev_mode" json:"devMode,omitempty"`
		DirectoryArtifactSource *struct {
			Directory *string `tfsdk:"directory" json:"directory,omitempty"`
		} `tfsdk:"directory_artifact_source" json:"directoryArtifactSource,omitempty"`
		DirectoryConfigSource *struct {
			Directory *string `tfsdk:"directory" json:"directory,omitempty"`
		} `tfsdk:"directory_config_source" json:"directoryConfigSource,omitempty"`
		DirectorySecretSource *struct {
			Directory *string `tfsdk:"directory" json:"directory,omitempty"`
		} `tfsdk:"directory_secret_source" json:"directorySecretSource,omitempty"`
		Discovery *struct {
			FdsMode    *string `tfsdk:"fds_mode" json:"fdsMode,omitempty"`
			FdsOptions *struct {
				GraphqlEnabled *bool `tfsdk:"graphql_enabled" json:"graphqlEnabled,omitempty"`
			} `tfsdk:"fds_options" json:"fdsOptions,omitempty"`
			UdsOptions *struct {
				Enabled     *bool              `tfsdk:"enabled" json:"enabled,omitempty"`
				WatchLabels *map[string]string `tfsdk:"watch_labels" json:"watchLabels,omitempty"`
			} `tfsdk:"uds_options" json:"udsOptions,omitempty"`
		} `tfsdk:"discovery" json:"discovery,omitempty"`
		DiscoveryNamespace *string `tfsdk:"discovery_namespace" json:"discoveryNamespace,omitempty"`
		ExtProc            *struct {
			AllowModeOverride      *bool              `tfsdk:"allow_mode_override" json:"allowModeOverride,omitempty"`
			AsyncMode              *bool              `tfsdk:"async_mode" json:"asyncMode,omitempty"`
			DisableClearRouteCache *bool              `tfsdk:"disable_clear_route_cache" json:"disableClearRouteCache,omitempty"`
			FailureModeAllow       *bool              `tfsdk:"failure_mode_allow" json:"failureModeAllow,omitempty"`
			FilterMetadata         *map[string]string `tfsdk:"filter_metadata" json:"filterMetadata,omitempty"`
			FilterStage            *struct {
				Predicate *string `tfsdk:"predicate" json:"predicate,omitempty"`
				Stage     *string `tfsdk:"stage" json:"stage,omitempty"`
			} `tfsdk:"filter_stage" json:"filterStage,omitempty"`
			ForwardRules *struct {
				AllowedHeaders *struct {
					Patterns *[]struct {
						Exact      *string `tfsdk:"exact" json:"exact,omitempty"`
						IgnoreCase *bool   `tfsdk:"ignore_case" json:"ignoreCase,omitempty"`
						Prefix     *string `tfsdk:"prefix" json:"prefix,omitempty"`
						SafeRegex  *struct {
							GoogleRe2 *struct {
								MaxProgramSize *int64 `tfsdk:"max_program_size" json:"maxProgramSize,omitempty"`
							} `tfsdk:"google_re2" json:"googleRe2,omitempty"`
							Regex *string `tfsdk:"regex" json:"regex,omitempty"`
						} `tfsdk:"safe_regex" json:"safeRegex,omitempty"`
						Suffix *string `tfsdk:"suffix" json:"suffix,omitempty"`
					} `tfsdk:"patterns" json:"patterns,omitempty"`
				} `tfsdk:"allowed_headers" json:"allowedHeaders,omitempty"`
				DisallowedHeaders *struct {
					Patterns *[]struct {
						Exact      *string `tfsdk:"exact" json:"exact,omitempty"`
						IgnoreCase *bool   `tfsdk:"ignore_case" json:"ignoreCase,omitempty"`
						Prefix     *string `tfsdk:"prefix" json:"prefix,omitempty"`
						SafeRegex  *struct {
							GoogleRe2 *struct {
								MaxProgramSize *int64 `tfsdk:"max_program_size" json:"maxProgramSize,omitempty"`
							} `tfsdk:"google_re2" json:"googleRe2,omitempty"`
							Regex *string `tfsdk:"regex" json:"regex,omitempty"`
						} `tfsdk:"safe_regex" json:"safeRegex,omitempty"`
						Suffix *string `tfsdk:"suffix" json:"suffix,omitempty"`
					} `tfsdk:"patterns" json:"patterns,omitempty"`
				} `tfsdk:"disallowed_headers" json:"disallowedHeaders,omitempty"`
			} `tfsdk:"forward_rules" json:"forwardRules,omitempty"`
			GrpcService *struct {
				Authority        *string `tfsdk:"authority" json:"authority,omitempty"`
				ExtProcServerRef *struct {
					Name      *string `tfsdk:"name" json:"name,omitempty"`
					Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
				} `tfsdk:"ext_proc_server_ref" json:"extProcServerRef,omitempty"`
				InitialMetadata *[]struct {
					Key   *string `tfsdk:"key" json:"key,omitempty"`
					Value *string `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"initial_metadata" json:"initialMetadata,omitempty"`
				RetryPolicy *struct {
					NumRetries   *int64 `tfsdk:"num_retries" json:"numRetries,omitempty"`
					RetryBackOff *struct {
						BaseInterval *string `tfsdk:"base_interval" json:"baseInterval,omitempty"`
						MaxInterval  *string `tfsdk:"max_interval" json:"maxInterval,omitempty"`
					} `tfsdk:"retry_back_off" json:"retryBackOff,omitempty"`
				} `tfsdk:"retry_policy" json:"retryPolicy,omitempty"`
				Timeout *string `tfsdk:"timeout" json:"timeout,omitempty"`
			} `tfsdk:"grpc_service" json:"grpcService,omitempty"`
			MaxMessageTimeout         *string   `tfsdk:"max_message_timeout" json:"maxMessageTimeout,omitempty"`
			MessageTimeout            *string   `tfsdk:"message_timeout" json:"messageTimeout,omitempty"`
			MetadataContextNamespaces *[]string `tfsdk:"metadata_context_namespaces" json:"metadataContextNamespaces,omitempty"`
			MutationRules             *struct {
				AllowAllRouting *bool `tfsdk:"allow_all_routing" json:"allowAllRouting,omitempty"`
				AllowEnvoy      *bool `tfsdk:"allow_envoy" json:"allowEnvoy,omitempty"`
				AllowExpression *struct {
					GoogleRe2 *struct {
						MaxProgramSize *int64 `tfsdk:"max_program_size" json:"maxProgramSize,omitempty"`
					} `tfsdk:"google_re2" json:"googleRe2,omitempty"`
					Regex *string `tfsdk:"regex" json:"regex,omitempty"`
				} `tfsdk:"allow_expression" json:"allowExpression,omitempty"`
				DisallowAll        *bool `tfsdk:"disallow_all" json:"disallowAll,omitempty"`
				DisallowExpression *struct {
					GoogleRe2 *struct {
						MaxProgramSize *int64 `tfsdk:"max_program_size" json:"maxProgramSize,omitempty"`
					} `tfsdk:"google_re2" json:"googleRe2,omitempty"`
					Regex *string `tfsdk:"regex" json:"regex,omitempty"`
				} `tfsdk:"disallow_expression" json:"disallowExpression,omitempty"`
				DisallowIsError *bool `tfsdk:"disallow_is_error" json:"disallowIsError,omitempty"`
				DisallowSystem  *bool `tfsdk:"disallow_system" json:"disallowSystem,omitempty"`
			} `tfsdk:"mutation_rules" json:"mutationRules,omitempty"`
			ProcessingMode *struct {
				RequestBodyMode     *string `tfsdk:"request_body_mode" json:"requestBodyMode,omitempty"`
				RequestHeaderMode   *string `tfsdk:"request_header_mode" json:"requestHeaderMode,omitempty"`
				RequestTrailerMode  *string `tfsdk:"request_trailer_mode" json:"requestTrailerMode,omitempty"`
				ResponseBodyMode    *string `tfsdk:"response_body_mode" json:"responseBodyMode,omitempty"`
				ResponseHeaderMode  *string `tfsdk:"response_header_mode" json:"responseHeaderMode,omitempty"`
				ResponseTrailerMode *string `tfsdk:"response_trailer_mode" json:"responseTrailerMode,omitempty"`
			} `tfsdk:"processing_mode" json:"processingMode,omitempty"`
			RequestAttributes              *[]string `tfsdk:"request_attributes" json:"requestAttributes,omitempty"`
			ResponseAttributes             *[]string `tfsdk:"response_attributes" json:"responseAttributes,omitempty"`
			StatPrefix                     *string   `tfsdk:"stat_prefix" json:"statPrefix,omitempty"`
			TypedMetadataContextNamespaces *[]string `tfsdk:"typed_metadata_context_namespaces" json:"typedMetadataContextNamespaces,omitempty"`
		} `tfsdk:"ext_proc" json:"extProc,omitempty"`
		Extauth *struct {
			ClearRouteCache   *bool `tfsdk:"clear_route_cache" json:"clearRouteCache,omitempty"`
			ExtauthzServerRef *struct {
				Name      *string `tfsdk:"name" json:"name,omitempty"`
				Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
			} `tfsdk:"extauthz_server_ref" json:"extauthzServerRef,omitempty"`
			FailureModeAllow *bool `tfsdk:"failure_mode_allow" json:"failureModeAllow,omitempty"`
			GrpcService      *struct {
				Authority *string `tfsdk:"authority" json:"authority,omitempty"`
			} `tfsdk:"grpc_service" json:"grpcService,omitempty"`
			HttpService *struct {
				PathPrefix *string `tfsdk:"path_prefix" json:"pathPrefix,omitempty"`
				Request    *struct {
					AllowedHeaders      *[]string          `tfsdk:"allowed_headers" json:"allowedHeaders,omitempty"`
					AllowedHeadersRegex *[]string          `tfsdk:"allowed_headers_regex" json:"allowedHeadersRegex,omitempty"`
					HeadersToAdd        *map[string]string `tfsdk:"headers_to_add" json:"headersToAdd,omitempty"`
				} `tfsdk:"request" json:"request,omitempty"`
				Response *struct {
					AllowedClientHeaders           *[]string `tfsdk:"allowed_client_headers" json:"allowedClientHeaders,omitempty"`
					AllowedUpstreamHeaders         *[]string `tfsdk:"allowed_upstream_headers" json:"allowedUpstreamHeaders,omitempty"`
					AllowedUpstreamHeadersToAppend *[]string `tfsdk:"allowed_upstream_headers_to_append" json:"allowedUpstreamHeadersToAppend,omitempty"`
				} `tfsdk:"response" json:"response,omitempty"`
			} `tfsdk:"http_service" json:"httpService,omitempty"`
			RequestBody *struct {
				AllowPartialMessage *bool  `tfsdk:"allow_partial_message" json:"allowPartialMessage,omitempty"`
				MaxRequestBytes     *int64 `tfsdk:"max_request_bytes" json:"maxRequestBytes,omitempty"`
				PackAsBytes         *bool  `tfsdk:"pack_as_bytes" json:"packAsBytes,omitempty"`
			} `tfsdk:"request_body" json:"requestBody,omitempty"`
			RequestTimeout      *string `tfsdk:"request_timeout" json:"requestTimeout,omitempty"`
			StatPrefix          *string `tfsdk:"stat_prefix" json:"statPrefix,omitempty"`
			StatusOnError       *int64  `tfsdk:"status_on_error" json:"statusOnError,omitempty"`
			TransportApiVersion *string `tfsdk:"transport_api_version" json:"transportApiVersion,omitempty"`
			UserIdHeader        *string `tfsdk:"user_id_header" json:"userIdHeader,omitempty"`
		} `tfsdk:"extauth" json:"extauth,omitempty"`
		Extensions *struct {
			Configs *map[string]string `tfsdk:"configs" json:"configs,omitempty"`
		} `tfsdk:"extensions" json:"extensions,omitempty"`
		Gateway *struct {
			AlwaysSortRouteTableRoutes     *bool `tfsdk:"always_sort_route_table_routes" json:"alwaysSortRouteTableRoutes,omitempty"`
			CompressedProxySpec            *bool `tfsdk:"compressed_proxy_spec" json:"compressedProxySpec,omitempty"`
			EnableGatewayController        *bool `tfsdk:"enable_gateway_controller" json:"enableGatewayController,omitempty"`
			IsolateVirtualHostsBySslConfig *bool `tfsdk:"isolate_virtual_hosts_by_ssl_config" json:"isolateVirtualHostsBySslConfig,omitempty"`
			PersistProxySpec               *bool `tfsdk:"persist_proxy_spec" json:"persistProxySpec,omitempty"`
			ReadGatewaysFromAllNamespaces  *bool `tfsdk:"read_gateways_from_all_namespaces" json:"readGatewaysFromAllNamespaces,omitempty"`
			TranslateEmptyGateways         *bool `tfsdk:"translate_empty_gateways" json:"translateEmptyGateways,omitempty"`
			Validation                     *struct {
				AllowWarnings                    *bool   `tfsdk:"allow_warnings" json:"allowWarnings,omitempty"`
				AlwaysAccept                     *bool   `tfsdk:"always_accept" json:"alwaysAccept,omitempty"`
				DisableTransformationValidation  *bool   `tfsdk:"disable_transformation_validation" json:"disableTransformationValidation,omitempty"`
				FullEnvoyValidation              *bool   `tfsdk:"full_envoy_validation" json:"fullEnvoyValidation,omitempty"`
				IgnoreGlooValidationFailure      *bool   `tfsdk:"ignore_gloo_validation_failure" json:"ignoreGlooValidationFailure,omitempty"`
				ProxyValidationServerAddr        *string `tfsdk:"proxy_validation_server_addr" json:"proxyValidationServerAddr,omitempty"`
				ServerEnabled                    *bool   `tfsdk:"server_enabled" json:"serverEnabled,omitempty"`
				ValidationServerGrpcMaxSizeBytes *int64  `tfsdk:"validation_server_grpc_max_size_bytes" json:"validationServerGrpcMaxSizeBytes,omitempty"`
				ValidationWebhookTlsCert         *string `tfsdk:"validation_webhook_tls_cert" json:"validationWebhookTlsCert,omitempty"`
				ValidationWebhookTlsKey          *string `tfsdk:"validation_webhook_tls_key" json:"validationWebhookTlsKey,omitempty"`
				WarnMissingTlsSecret             *bool   `tfsdk:"warn_missing_tls_secret" json:"warnMissingTlsSecret,omitempty"`
				WarnRouteShortCircuiting         *bool   `tfsdk:"warn_route_short_circuiting" json:"warnRouteShortCircuiting,omitempty"`
			} `tfsdk:"validation" json:"validation,omitempty"`
			ValidationServerAddr  *string `tfsdk:"validation_server_addr" json:"validationServerAddr,omitempty"`
			VirtualServiceOptions *struct {
				OneWayTls *bool `tfsdk:"one_way_tls" json:"oneWayTls,omitempty"`
			} `tfsdk:"virtual_service_options" json:"virtualServiceOptions,omitempty"`
		} `tfsdk:"gateway" json:"gateway,omitempty"`
		Gloo *struct {
			AwsOptions *struct {
				CredentialRefreshDelay    *string `tfsdk:"credential_refresh_delay" json:"credentialRefreshDelay,omitempty"`
				EnableCredentialsDiscovey *bool   `tfsdk:"enable_credentials_discovey" json:"enableCredentialsDiscovey,omitempty"`
				FallbackToFirstFunction   *bool   `tfsdk:"fallback_to_first_function" json:"fallbackToFirstFunction,omitempty"`
				PropagateOriginalRouting  *bool   `tfsdk:"propagate_original_routing" json:"propagateOriginalRouting,omitempty"`
				ServiceAccountCredentials *struct {
					Cluster *string `tfsdk:"cluster" json:"cluster,omitempty"`
					Region  *string `tfsdk:"region" json:"region,omitempty"`
					Timeout *string `tfsdk:"timeout" json:"timeout,omitempty"`
					Uri     *string `tfsdk:"uri" json:"uri,omitempty"`
				} `tfsdk:"service_account_credentials" json:"serviceAccountCredentials,omitempty"`
			} `tfsdk:"aws_options" json:"awsOptions,omitempty"`
			CircuitBreakers *struct {
				MaxConnections     *int64 `tfsdk:"max_connections" json:"maxConnections,omitempty"`
				MaxPendingRequests *int64 `tfsdk:"max_pending_requests" json:"maxPendingRequests,omitempty"`
				MaxRequests        *int64 `tfsdk:"max_requests" json:"maxRequests,omitempty"`
				MaxRetries         *int64 `tfsdk:"max_retries" json:"maxRetries,omitempty"`
			} `tfsdk:"circuit_breakers" json:"circuitBreakers,omitempty"`
			DisableGrpcWeb                     *bool   `tfsdk:"disable_grpc_web" json:"disableGrpcWeb,omitempty"`
			DisableKubernetesDestinations      *bool   `tfsdk:"disable_kubernetes_destinations" json:"disableKubernetesDestinations,omitempty"`
			DisableProxyGarbageCollection      *bool   `tfsdk:"disable_proxy_garbage_collection" json:"disableProxyGarbageCollection,omitempty"`
			EnableRestEds                      *bool   `tfsdk:"enable_rest_eds" json:"enableRestEds,omitempty"`
			EndpointsWarmingTimeout            *string `tfsdk:"endpoints_warming_timeout" json:"endpointsWarmingTimeout,omitempty"`
			FailoverUpstreamDnsPollingInterval *string `tfsdk:"failover_upstream_dns_polling_interval" json:"failoverUpstreamDnsPollingInterval,omitempty"`
			InvalidConfigPolicy                *struct {
				InvalidRouteResponseBody *string `tfsdk:"invalid_route_response_body" json:"invalidRouteResponseBody,omitempty"`
				InvalidRouteResponseCode *int64  `tfsdk:"invalid_route_response_code" json:"invalidRouteResponseCode,omitempty"`
				ReplaceInvalidRoutes     *bool   `tfsdk:"replace_invalid_routes" json:"replaceInvalidRoutes,omitempty"`
			} `tfsdk:"invalid_config_policy" json:"invalidConfigPolicy,omitempty"`
			IstioOptions *struct {
				AppendXForwardedHost *bool `tfsdk:"append_x_forwarded_host" json:"appendXForwardedHost,omitempty"`
				EnableAutoMtls       *bool `tfsdk:"enable_auto_mtls" json:"enableAutoMtls,omitempty"`
				EnableIntegration    *bool `tfsdk:"enable_integration" json:"enableIntegration,omitempty"`
			} `tfsdk:"istio_options" json:"istioOptions,omitempty"`
			LogTransformationRequestResponseInfo *bool   `tfsdk:"log_transformation_request_response_info" json:"logTransformationRequestResponseInfo,omitempty"`
			ProxyDebugBindAddr                   *string `tfsdk:"proxy_debug_bind_addr" json:"proxyDebugBindAddr,omitempty"`
			RegexMaxProgramSize                  *int64  `tfsdk:"regex_max_program_size" json:"regexMaxProgramSize,omitempty"`
			RemoveUnusedFilters                  *bool   `tfsdk:"remove_unused_filters" json:"removeUnusedFilters,omitempty"`
			RestXdsBindAddr                      *string `tfsdk:"rest_xds_bind_addr" json:"restXdsBindAddr,omitempty"`
			TransformationEscapeCharacters       *bool   `tfsdk:"transformation_escape_characters" json:"transformationEscapeCharacters,omitempty"`
			ValidationBindAddr                   *string `tfsdk:"validation_bind_addr" json:"validationBindAddr,omitempty"`
			XdsBindAddr                          *string `tfsdk:"xds_bind_addr" json:"xdsBindAddr,omitempty"`
		} `tfsdk:"gloo" json:"gloo,omitempty"`
		GraphqlOptions *struct {
			SchemaChangeValidationOptions *struct {
				ProcessingRules       *[]string `tfsdk:"processing_rules" json:"processingRules,omitempty"`
				RejectBreakingChanges *bool     `tfsdk:"reject_breaking_changes" json:"rejectBreakingChanges,omitempty"`
			} `tfsdk:"schema_change_validation_options" json:"schemaChangeValidationOptions,omitempty"`
		} `tfsdk:"graphql_options" json:"graphqlOptions,omitempty"`
		Knative *struct {
			ClusterIngressProxyAddress  *string `tfsdk:"cluster_ingress_proxy_address" json:"clusterIngressProxyAddress,omitempty"`
			KnativeExternalProxyAddress *string `tfsdk:"knative_external_proxy_address" json:"knativeExternalProxyAddress,omitempty"`
			KnativeInternalProxyAddress *string `tfsdk:"knative_internal_proxy_address" json:"knativeInternalProxyAddress,omitempty"`
		} `tfsdk:"knative" json:"knative,omitempty"`
		Kubernetes *struct {
			RateLimits *struct {
				QPS   *float64 `tfsdk:"qps" json:"QPS,omitempty"`
				Burst *int64   `tfsdk:"burst" json:"burst,omitempty"`
			} `tfsdk:"rate_limits" json:"rateLimits,omitempty"`
		} `tfsdk:"kubernetes" json:"kubernetes,omitempty"`
		KubernetesArtifactSource *map[string]string `tfsdk:"kubernetes_artifact_source" json:"kubernetesArtifactSource,omitempty"`
		KubernetesConfigSource   *map[string]string `tfsdk:"kubernetes_config_source" json:"kubernetesConfigSource,omitempty"`
		KubernetesSecretSource   *map[string]string `tfsdk:"kubernetes_secret_source" json:"kubernetesSecretSource,omitempty"`
		Linkerd                  *bool              `tfsdk:"linkerd" json:"linkerd,omitempty"`
		NamedExtauth             *struct {
			ClearRouteCache   *bool `tfsdk:"clear_route_cache" json:"clearRouteCache,omitempty"`
			ExtauthzServerRef *struct {
				Name      *string `tfsdk:"name" json:"name,omitempty"`
				Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
			} `tfsdk:"extauthz_server_ref" json:"extauthzServerRef,omitempty"`
			FailureModeAllow *bool `tfsdk:"failure_mode_allow" json:"failureModeAllow,omitempty"`
			GrpcService      *struct {
				Authority *string `tfsdk:"authority" json:"authority,omitempty"`
			} `tfsdk:"grpc_service" json:"grpcService,omitempty"`
			HttpService *struct {
				PathPrefix *string `tfsdk:"path_prefix" json:"pathPrefix,omitempty"`
				Request    *struct {
					AllowedHeaders      *[]string          `tfsdk:"allowed_headers" json:"allowedHeaders,omitempty"`
					AllowedHeadersRegex *[]string          `tfsdk:"allowed_headers_regex" json:"allowedHeadersRegex,omitempty"`
					HeadersToAdd        *map[string]string `tfsdk:"headers_to_add" json:"headersToAdd,omitempty"`
				} `tfsdk:"request" json:"request,omitempty"`
				Response *struct {
					AllowedClientHeaders           *[]string `tfsdk:"allowed_client_headers" json:"allowedClientHeaders,omitempty"`
					AllowedUpstreamHeaders         *[]string `tfsdk:"allowed_upstream_headers" json:"allowedUpstreamHeaders,omitempty"`
					AllowedUpstreamHeadersToAppend *[]string `tfsdk:"allowed_upstream_headers_to_append" json:"allowedUpstreamHeadersToAppend,omitempty"`
				} `tfsdk:"response" json:"response,omitempty"`
			} `tfsdk:"http_service" json:"httpService,omitempty"`
			RequestBody *struct {
				AllowPartialMessage *bool  `tfsdk:"allow_partial_message" json:"allowPartialMessage,omitempty"`
				MaxRequestBytes     *int64 `tfsdk:"max_request_bytes" json:"maxRequestBytes,omitempty"`
				PackAsBytes         *bool  `tfsdk:"pack_as_bytes" json:"packAsBytes,omitempty"`
			} `tfsdk:"request_body" json:"requestBody,omitempty"`
			RequestTimeout      *string `tfsdk:"request_timeout" json:"requestTimeout,omitempty"`
			StatPrefix          *string `tfsdk:"stat_prefix" json:"statPrefix,omitempty"`
			StatusOnError       *int64  `tfsdk:"status_on_error" json:"statusOnError,omitempty"`
			TransportApiVersion *string `tfsdk:"transport_api_version" json:"transportApiVersion,omitempty"`
			UserIdHeader        *string `tfsdk:"user_id_header" json:"userIdHeader,omitempty"`
		} `tfsdk:"named_extauth" json:"namedExtauth,omitempty"`
		NamespacedStatuses *struct {
			Statuses *map[string]string `tfsdk:"statuses" json:"statuses,omitempty"`
		} `tfsdk:"namespaced_statuses" json:"namespacedStatuses,omitempty"`
		ObservabilityOptions *struct {
			ConfigStatusMetricLabels *struct {
				LabelToPath *map[string]string `tfsdk:"label_to_path" json:"labelToPath,omitempty"`
			} `tfsdk:"config_status_metric_labels" json:"configStatusMetricLabels,omitempty"`
			GrafanaIntegration *struct {
				DashboardPrefix            *string `tfsdk:"dashboard_prefix" json:"dashboardPrefix,omitempty"`
				DefaultDashboardFolderId   *int64  `tfsdk:"default_dashboard_folder_id" json:"defaultDashboardFolderId,omitempty"`
				ExtraMetricQueryParameters *string `tfsdk:"extra_metric_query_parameters" json:"extraMetricQueryParameters,omitempty"`
			} `tfsdk:"grafana_integration" json:"grafanaIntegration,omitempty"`
		} `tfsdk:"observability_options" json:"observabilityOptions,omitempty"`
		Ratelimit *struct {
			Descriptors    *[]map[string]string `tfsdk:"descriptors" json:"descriptors,omitempty"`
			SetDescriptors *[]struct {
				AlwaysApply *bool `tfsdk:"always_apply" json:"alwaysApply,omitempty"`
				RateLimit   *struct {
					RequestsPerUnit *int64  `tfsdk:"requests_per_unit" json:"requestsPerUnit,omitempty"`
					Unit            *string `tfsdk:"unit" json:"unit,omitempty"`
				} `tfsdk:"rate_limit" json:"rateLimit,omitempty"`
				SimpleDescriptors *[]struct {
					Key   *string `tfsdk:"key" json:"key,omitempty"`
					Value *string `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"simple_descriptors" json:"simpleDescriptors,omitempty"`
			} `tfsdk:"set_descriptors" json:"setDescriptors,omitempty"`
		} `tfsdk:"ratelimit" json:"ratelimit,omitempty"`
		RatelimitServer *struct {
			DenyOnFail              *bool `tfsdk:"deny_on_fail" json:"denyOnFail,omitempty"`
			EnableXRatelimitHeaders *bool `tfsdk:"enable_x_ratelimit_headers" json:"enableXRatelimitHeaders,omitempty"`
			GrpcService             *struct {
				Authority *string `tfsdk:"authority" json:"authority,omitempty"`
			} `tfsdk:"grpc_service" json:"grpcService,omitempty"`
			RateLimitBeforeAuth *bool `tfsdk:"rate_limit_before_auth" json:"rateLimitBeforeAuth,omitempty"`
			RatelimitServerRef  *struct {
				Name      *string `tfsdk:"name" json:"name,omitempty"`
				Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
			} `tfsdk:"ratelimit_server_ref" json:"ratelimitServerRef,omitempty"`
			RequestTimeout *string `tfsdk:"request_timeout" json:"requestTimeout,omitempty"`
		} `tfsdk:"ratelimit_server" json:"ratelimitServer,omitempty"`
		Rbac *struct {
			RequireRbac *bool `tfsdk:"require_rbac" json:"requireRbac,omitempty"`
		} `tfsdk:"rbac" json:"rbac,omitempty"`
		RefreshRate   *string `tfsdk:"refresh_rate" json:"refreshRate,omitempty"`
		SecretOptions *struct {
			Sources *[]struct {
				Directory *struct {
					Directory *string `tfsdk:"directory" json:"directory,omitempty"`
				} `tfsdk:"directory" json:"directory,omitempty"`
				Kubernetes *map[string]string `tfsdk:"kubernetes" json:"kubernetes,omitempty"`
				Vault      *struct {
					AccessToken *string `tfsdk:"access_token" json:"accessToken,omitempty"`
					Address     *string `tfsdk:"address" json:"address,omitempty"`
					Aws         *struct {
						AccessKeyId       *string `tfsdk:"access_key_id" json:"accessKeyId,omitempty"`
						IamServerIdHeader *string `tfsdk:"iam_server_id_header" json:"iamServerIdHeader,omitempty"`
						LeaseIncrement    *int64  `tfsdk:"lease_increment" json:"leaseIncrement,omitempty"`
						MountPath         *string `tfsdk:"mount_path" json:"mountPath,omitempty"`
						Region            *string `tfsdk:"region" json:"region,omitempty"`
						SecretAccessKey   *string `tfsdk:"secret_access_key" json:"secretAccessKey,omitempty"`
						SessionToken      *string `tfsdk:"session_token" json:"sessionToken,omitempty"`
						VaultRole         *string `tfsdk:"vault_role" json:"vaultRole,omitempty"`
					} `tfsdk:"aws" json:"aws,omitempty"`
					CaCert     *string `tfsdk:"ca_cert" json:"caCert,omitempty"`
					CaPath     *string `tfsdk:"ca_path" json:"caPath,omitempty"`
					ClientCert *string `tfsdk:"client_cert" json:"clientCert,omitempty"`
					ClientKey  *string `tfsdk:"client_key" json:"clientKey,omitempty"`
					Insecure   *bool   `tfsdk:"insecure" json:"insecure,omitempty"`
					PathPrefix *string `tfsdk:"path_prefix" json:"pathPrefix,omitempty"`
					RootKey    *string `tfsdk:"root_key" json:"rootKey,omitempty"`
					TlsConfig  *struct {
						CaCert        *string `tfsdk:"ca_cert" json:"caCert,omitempty"`
						CaPath        *string `tfsdk:"ca_path" json:"caPath,omitempty"`
						ClientCert    *string `tfsdk:"client_cert" json:"clientCert,omitempty"`
						ClientKey     *string `tfsdk:"client_key" json:"clientKey,omitempty"`
						Insecure      *bool   `tfsdk:"insecure" json:"insecure,omitempty"`
						TlsServerName *string `tfsdk:"tls_server_name" json:"tlsServerName,omitempty"`
					} `tfsdk:"tls_config" json:"tlsConfig,omitempty"`
					TlsServerName *string `tfsdk:"tls_server_name" json:"tlsServerName,omitempty"`
					Token         *string `tfsdk:"token" json:"token,omitempty"`
				} `tfsdk:"vault" json:"vault,omitempty"`
			} `tfsdk:"sources" json:"sources,omitempty"`
		} `tfsdk:"secret_options" json:"secretOptions,omitempty"`
		UpstreamOptions *struct {
			GlobalAnnotations *map[string]string `tfsdk:"global_annotations" json:"globalAnnotations,omitempty"`
			SslParameters     *struct {
				CipherSuites           *[]string `tfsdk:"cipher_suites" json:"cipherSuites,omitempty"`
				EcdhCurves             *[]string `tfsdk:"ecdh_curves" json:"ecdhCurves,omitempty"`
				MaximumProtocolVersion *string   `tfsdk:"maximum_protocol_version" json:"maximumProtocolVersion,omitempty"`
				MinimumProtocolVersion *string   `tfsdk:"minimum_protocol_version" json:"minimumProtocolVersion,omitempty"`
			} `tfsdk:"ssl_parameters" json:"sslParameters,omitempty"`
		} `tfsdk:"upstream_options" json:"upstreamOptions,omitempty"`
		VaultSecretSource *struct {
			AccessToken *string `tfsdk:"access_token" json:"accessToken,omitempty"`
			Address     *string `tfsdk:"address" json:"address,omitempty"`
			Aws         *struct {
				AccessKeyId       *string `tfsdk:"access_key_id" json:"accessKeyId,omitempty"`
				IamServerIdHeader *string `tfsdk:"iam_server_id_header" json:"iamServerIdHeader,omitempty"`
				LeaseIncrement    *int64  `tfsdk:"lease_increment" json:"leaseIncrement,omitempty"`
				MountPath         *string `tfsdk:"mount_path" json:"mountPath,omitempty"`
				Region            *string `tfsdk:"region" json:"region,omitempty"`
				SecretAccessKey   *string `tfsdk:"secret_access_key" json:"secretAccessKey,omitempty"`
				SessionToken      *string `tfsdk:"session_token" json:"sessionToken,omitempty"`
				VaultRole         *string `tfsdk:"vault_role" json:"vaultRole,omitempty"`
			} `tfsdk:"aws" json:"aws,omitempty"`
			CaCert     *string `tfsdk:"ca_cert" json:"caCert,omitempty"`
			CaPath     *string `tfsdk:"ca_path" json:"caPath,omitempty"`
			ClientCert *string `tfsdk:"client_cert" json:"clientCert,omitempty"`
			ClientKey  *string `tfsdk:"client_key" json:"clientKey,omitempty"`
			Insecure   *bool   `tfsdk:"insecure" json:"insecure,omitempty"`
			PathPrefix *string `tfsdk:"path_prefix" json:"pathPrefix,omitempty"`
			RootKey    *string `tfsdk:"root_key" json:"rootKey,omitempty"`
			TlsConfig  *struct {
				CaCert        *string `tfsdk:"ca_cert" json:"caCert,omitempty"`
				CaPath        *string `tfsdk:"ca_path" json:"caPath,omitempty"`
				ClientCert    *string `tfsdk:"client_cert" json:"clientCert,omitempty"`
				ClientKey     *string `tfsdk:"client_key" json:"clientKey,omitempty"`
				Insecure      *bool   `tfsdk:"insecure" json:"insecure,omitempty"`
				TlsServerName *string `tfsdk:"tls_server_name" json:"tlsServerName,omitempty"`
			} `tfsdk:"tls_config" json:"tlsConfig,omitempty"`
			TlsServerName *string `tfsdk:"tls_server_name" json:"tlsServerName,omitempty"`
			Token         *string `tfsdk:"token" json:"token,omitempty"`
		} `tfsdk:"vault_secret_source" json:"vaultSecretSource,omitempty"`
		WatchNamespaceSelectors *[]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:"watch_namespace_selectors" json:"watchNamespaceSelectors,omitempty"`
		WatchNamespaces *[]string `tfsdk:"watch_namespaces" json:"watchNamespaces,omitempty"`
	} `tfsdk:"spec" json:"spec,omitempty"`
}

type GlooSoloIoUpstreamGroupV1Manifest

type GlooSoloIoUpstreamGroupV1Manifest struct{}

func (*GlooSoloIoUpstreamGroupV1Manifest) Metadata

func (*GlooSoloIoUpstreamGroupV1Manifest) Read

func (*GlooSoloIoUpstreamGroupV1Manifest) Schema

type GlooSoloIoUpstreamGroupV1ManifestData

type GlooSoloIoUpstreamGroupV1ManifestData 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 {
		Destinations *[]struct {
			Destination *struct {
				Consul *struct {
					DataCenters *[]string `tfsdk:"data_centers" json:"dataCenters,omitempty"`
					ServiceName *string   `tfsdk:"service_name" json:"serviceName,omitempty"`
					Tags        *[]string `tfsdk:"tags" json:"tags,omitempty"`
				} `tfsdk:"consul" json:"consul,omitempty"`
				DestinationSpec *struct {
					Aws *struct {
						InvocationStyle        *string `tfsdk:"invocation_style" json:"invocationStyle,omitempty"`
						LogicalName            *string `tfsdk:"logical_name" json:"logicalName,omitempty"`
						RequestTransformation  *bool   `tfsdk:"request_transformation" json:"requestTransformation,omitempty"`
						ResponseTransformation *bool   `tfsdk:"response_transformation" json:"responseTransformation,omitempty"`
						UnwrapAsAlb            *bool   `tfsdk:"unwrap_as_alb" json:"unwrapAsAlb,omitempty"`
						UnwrapAsApiGateway     *bool   `tfsdk:"unwrap_as_api_gateway" json:"unwrapAsApiGateway,omitempty"`
						WrapAsApiGateway       *bool   `tfsdk:"wrap_as_api_gateway" json:"wrapAsApiGateway,omitempty"`
					} `tfsdk:"aws" json:"aws,omitempty"`
					Azure *struct {
						FunctionName *string `tfsdk:"function_name" json:"functionName,omitempty"`
					} `tfsdk:"azure" json:"azure,omitempty"`
					Grpc *struct {
						Function   *string `tfsdk:"function" json:"function,omitempty"`
						Package    *string `tfsdk:"package" json:"package,omitempty"`
						Parameters *struct {
							Headers *map[string]string `tfsdk:"headers" json:"headers,omitempty"`
							Path    *string            `tfsdk:"path" json:"path,omitempty"`
						} `tfsdk:"parameters" json:"parameters,omitempty"`
						Service *string `tfsdk:"service" json:"service,omitempty"`
					} `tfsdk:"grpc" json:"grpc,omitempty"`
					Rest *struct {
						FunctionName *string `tfsdk:"function_name" json:"functionName,omitempty"`
						Parameters   *struct {
							Headers *map[string]string `tfsdk:"headers" json:"headers,omitempty"`
							Path    *string            `tfsdk:"path" json:"path,omitempty"`
						} `tfsdk:"parameters" json:"parameters,omitempty"`
						ResponseTransformation *struct {
							AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
							Body              *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"body" json:"body,omitempty"`
							DynamicMetadataValues *[]struct {
								JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
								Key               *string `tfsdk:"key" json:"key,omitempty"`
								MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
								Value             *struct {
									Text *string `tfsdk:"text" json:"text,omitempty"`
								} `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
							EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
							Extractors       *struct {
								Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
								Header          *string            `tfsdk:"header" json:"header,omitempty"`
								Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
								Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
								ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
								Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
							} `tfsdk:"extractors" json:"extractors,omitempty"`
							Headers *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							HeadersToAppend *[]struct {
								Key   *string `tfsdk:"key" json:"key,omitempty"`
								Value *struct {
									Text *string `tfsdk:"text" json:"text,omitempty"`
								} `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
							HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
							IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
							MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
							MergeJsonKeys         *struct {
								JsonKeys *struct {
									OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
									Tmpl          *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"tmpl" json:"tmpl,omitempty"`
								} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
							} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
							ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
							Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
						} `tfsdk:"response_transformation" json:"responseTransformation,omitempty"`
					} `tfsdk:"rest" json:"rest,omitempty"`
				} `tfsdk:"destination_spec" json:"destinationSpec,omitempty"`
				Kube *struct {
					Port *int64 `tfsdk:"port" json:"port,omitempty"`
					Ref  *struct {
						Name      *string `tfsdk:"name" json:"name,omitempty"`
						Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
					} `tfsdk:"ref" json:"ref,omitempty"`
				} `tfsdk:"kube" json:"kube,omitempty"`
				Subset *struct {
					Values *map[string]string `tfsdk:"values" json:"values,omitempty"`
				} `tfsdk:"subset" json:"subset,omitempty"`
				Upstream *struct {
					Name      *string `tfsdk:"name" json:"name,omitempty"`
					Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
				} `tfsdk:"upstream" json:"upstream,omitempty"`
			} `tfsdk:"destination" json:"destination,omitempty"`
			Options *struct {
				BufferPerRoute *struct {
					Buffer *struct {
						MaxRequestBytes *int64 `tfsdk:"max_request_bytes" json:"maxRequestBytes,omitempty"`
					} `tfsdk:"buffer" json:"buffer,omitempty"`
					Disabled *bool `tfsdk:"disabled" json:"disabled,omitempty"`
				} `tfsdk:"buffer_per_route" json:"bufferPerRoute,omitempty"`
				Csrf *struct {
					AdditionalOrigins *[]struct {
						Exact      *string `tfsdk:"exact" json:"exact,omitempty"`
						IgnoreCase *bool   `tfsdk:"ignore_case" json:"ignoreCase,omitempty"`
						Prefix     *string `tfsdk:"prefix" json:"prefix,omitempty"`
						SafeRegex  *struct {
							GoogleRe2 *struct {
								MaxProgramSize *int64 `tfsdk:"max_program_size" json:"maxProgramSize,omitempty"`
							} `tfsdk:"google_re2" json:"googleRe2,omitempty"`
							Regex *string `tfsdk:"regex" json:"regex,omitempty"`
						} `tfsdk:"safe_regex" json:"safeRegex,omitempty"`
						Suffix *string `tfsdk:"suffix" json:"suffix,omitempty"`
					} `tfsdk:"additional_origins" json:"additionalOrigins,omitempty"`
					FilterEnabled *struct {
						DefaultValue *struct {
							Denominator *string `tfsdk:"denominator" json:"denominator,omitempty"`
							Numerator   *int64  `tfsdk:"numerator" json:"numerator,omitempty"`
						} `tfsdk:"default_value" json:"defaultValue,omitempty"`
						RuntimeKey *string `tfsdk:"runtime_key" json:"runtimeKey,omitempty"`
					} `tfsdk:"filter_enabled" json:"filterEnabled,omitempty"`
					ShadowEnabled *struct {
						DefaultValue *struct {
							Denominator *string `tfsdk:"denominator" json:"denominator,omitempty"`
							Numerator   *int64  `tfsdk:"numerator" json:"numerator,omitempty"`
						} `tfsdk:"default_value" json:"defaultValue,omitempty"`
						RuntimeKey *string `tfsdk:"runtime_key" json:"runtimeKey,omitempty"`
					} `tfsdk:"shadow_enabled" json:"shadowEnabled,omitempty"`
				} `tfsdk:"csrf" json:"csrf,omitempty"`
				Extauth *struct {
					ConfigRef *struct {
						Name      *string `tfsdk:"name" json:"name,omitempty"`
						Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
					} `tfsdk:"config_ref" json:"configRef,omitempty"`
					CustomAuth *struct {
						ContextExtensions *map[string]string `tfsdk:"context_extensions" json:"contextExtensions,omitempty"`
						Name              *string            `tfsdk:"name" json:"name,omitempty"`
					} `tfsdk:"custom_auth" json:"customAuth,omitempty"`
					Disable *bool `tfsdk:"disable" json:"disable,omitempty"`
				} `tfsdk:"extauth" json:"extauth,omitempty"`
				Extensions *struct {
					Configs *map[string]string `tfsdk:"configs" json:"configs,omitempty"`
				} `tfsdk:"extensions" json:"extensions,omitempty"`
				HeaderManipulation *struct {
					RequestHeadersToAdd *[]struct {
						Append *bool `tfsdk:"append" json:"append,omitempty"`
						Header *struct {
							Key   *string `tfsdk:"key" json:"key,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"header" json:"header,omitempty"`
						HeaderSecretRef *struct {
							Name      *string `tfsdk:"name" json:"name,omitempty"`
							Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
						} `tfsdk:"header_secret_ref" json:"headerSecretRef,omitempty"`
					} `tfsdk:"request_headers_to_add" json:"requestHeadersToAdd,omitempty"`
					RequestHeadersToRemove *[]string `tfsdk:"request_headers_to_remove" json:"requestHeadersToRemove,omitempty"`
					ResponseHeadersToAdd   *[]struct {
						Append *bool `tfsdk:"append" json:"append,omitempty"`
						Header *struct {
							Key   *string `tfsdk:"key" json:"key,omitempty"`
							Value *string `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"header" json:"header,omitempty"`
					} `tfsdk:"response_headers_to_add" json:"responseHeadersToAdd,omitempty"`
					ResponseHeadersToRemove *[]string `tfsdk:"response_headers_to_remove" json:"responseHeadersToRemove,omitempty"`
				} `tfsdk:"header_manipulation" json:"headerManipulation,omitempty"`
				StagedTransformations *struct {
					Early *struct {
						RequestTransforms *[]struct {
							ClearRouteCache *bool `tfsdk:"clear_route_cache" json:"clearRouteCache,omitempty"`
							Matcher         *struct {
								CaseSensitive  *bool              `tfsdk:"case_sensitive" json:"caseSensitive,omitempty"`
								ConnectMatcher *map[string]string `tfsdk:"connect_matcher" json:"connectMatcher,omitempty"`
								Exact          *string            `tfsdk:"exact" json:"exact,omitempty"`
								Headers        *[]struct {
									InvertMatch *bool   `tfsdk:"invert_match" json:"invertMatch,omitempty"`
									Name        *string `tfsdk:"name" json:"name,omitempty"`
									Regex       *bool   `tfsdk:"regex" json:"regex,omitempty"`
									Value       *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"headers" json:"headers,omitempty"`
								Methods         *[]string `tfsdk:"methods" json:"methods,omitempty"`
								Prefix          *string   `tfsdk:"prefix" json:"prefix,omitempty"`
								QueryParameters *[]struct {
									Name  *string `tfsdk:"name" json:"name,omitempty"`
									Regex *bool   `tfsdk:"regex" json:"regex,omitempty"`
									Value *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"query_parameters" json:"queryParameters,omitempty"`
								Regex *string `tfsdk:"regex" json:"regex,omitempty"`
							} `tfsdk:"matcher" json:"matcher,omitempty"`
							RequestTransformation *struct {
								HeaderBodyTransform *struct {
									AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
								} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
								LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
								TransformationTemplate *struct {
									AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
									Body              *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"body" json:"body,omitempty"`
									DynamicMetadataValues *[]struct {
										JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
										Key               *string `tfsdk:"key" json:"key,omitempty"`
										MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
										Value             *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
									EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
									Extractors       *struct {
										Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
										Header          *string            `tfsdk:"header" json:"header,omitempty"`
										Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
										Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
										ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
										Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
									} `tfsdk:"extractors" json:"extractors,omitempty"`
									Headers *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									HeadersToAppend *[]struct {
										Key   *string `tfsdk:"key" json:"key,omitempty"`
										Value *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
									HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
									IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
									MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
									MergeJsonKeys         *struct {
										JsonKeys *struct {
											OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
											Tmpl          *struct {
												Text *string `tfsdk:"text" json:"text,omitempty"`
											} `tfsdk:"tmpl" json:"tmpl,omitempty"`
										} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
									} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
									ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
									Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
								} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
								XsltTransformation *struct {
									NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
									SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
									Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
								} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
							} `tfsdk:"request_transformation" json:"requestTransformation,omitempty"`
							ResponseTransformation *struct {
								HeaderBodyTransform *struct {
									AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
								} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
								LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
								TransformationTemplate *struct {
									AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
									Body              *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"body" json:"body,omitempty"`
									DynamicMetadataValues *[]struct {
										JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
										Key               *string `tfsdk:"key" json:"key,omitempty"`
										MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
										Value             *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
									EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
									Extractors       *struct {
										Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
										Header          *string            `tfsdk:"header" json:"header,omitempty"`
										Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
										Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
										ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
										Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
									} `tfsdk:"extractors" json:"extractors,omitempty"`
									Headers *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									HeadersToAppend *[]struct {
										Key   *string `tfsdk:"key" json:"key,omitempty"`
										Value *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
									HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
									IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
									MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
									MergeJsonKeys         *struct {
										JsonKeys *struct {
											OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
											Tmpl          *struct {
												Text *string `tfsdk:"text" json:"text,omitempty"`
											} `tfsdk:"tmpl" json:"tmpl,omitempty"`
										} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
									} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
									ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
									Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
								} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
								XsltTransformation *struct {
									NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
									SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
									Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
								} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
							} `tfsdk:"response_transformation" json:"responseTransformation,omitempty"`
						} `tfsdk:"request_transforms" json:"requestTransforms,omitempty"`
						ResponseTransforms *[]struct {
							Matchers *[]struct {
								InvertMatch *bool   `tfsdk:"invert_match" json:"invertMatch,omitempty"`
								Name        *string `tfsdk:"name" json:"name,omitempty"`
								Regex       *bool   `tfsdk:"regex" json:"regex,omitempty"`
								Value       *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"matchers" json:"matchers,omitempty"`
							ResponseCodeDetails    *string `tfsdk:"response_code_details" json:"responseCodeDetails,omitempty"`
							ResponseTransformation *struct {
								HeaderBodyTransform *struct {
									AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
								} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
								LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
								TransformationTemplate *struct {
									AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
									Body              *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"body" json:"body,omitempty"`
									DynamicMetadataValues *[]struct {
										JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
										Key               *string `tfsdk:"key" json:"key,omitempty"`
										MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
										Value             *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
									EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
									Extractors       *struct {
										Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
										Header          *string            `tfsdk:"header" json:"header,omitempty"`
										Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
										Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
										ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
										Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
									} `tfsdk:"extractors" json:"extractors,omitempty"`
									Headers *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									HeadersToAppend *[]struct {
										Key   *string `tfsdk:"key" json:"key,omitempty"`
										Value *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
									HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
									IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
									MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
									MergeJsonKeys         *struct {
										JsonKeys *struct {
											OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
											Tmpl          *struct {
												Text *string `tfsdk:"text" json:"text,omitempty"`
											} `tfsdk:"tmpl" json:"tmpl,omitempty"`
										} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
									} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
									ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
									Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
								} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
								XsltTransformation *struct {
									NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
									SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
									Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
								} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
							} `tfsdk:"response_transformation" json:"responseTransformation,omitempty"`
						} `tfsdk:"response_transforms" json:"responseTransforms,omitempty"`
					} `tfsdk:"early" json:"early,omitempty"`
					EscapeCharacters       *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
					InheritTransformation  *bool `tfsdk:"inherit_transformation" json:"inheritTransformation,omitempty"`
					LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
					PostRouting            *struct {
						RequestTransforms *[]struct {
							ClearRouteCache *bool `tfsdk:"clear_route_cache" json:"clearRouteCache,omitempty"`
							Matcher         *struct {
								CaseSensitive  *bool              `tfsdk:"case_sensitive" json:"caseSensitive,omitempty"`
								ConnectMatcher *map[string]string `tfsdk:"connect_matcher" json:"connectMatcher,omitempty"`
								Exact          *string            `tfsdk:"exact" json:"exact,omitempty"`
								Headers        *[]struct {
									InvertMatch *bool   `tfsdk:"invert_match" json:"invertMatch,omitempty"`
									Name        *string `tfsdk:"name" json:"name,omitempty"`
									Regex       *bool   `tfsdk:"regex" json:"regex,omitempty"`
									Value       *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"headers" json:"headers,omitempty"`
								Methods         *[]string `tfsdk:"methods" json:"methods,omitempty"`
								Prefix          *string   `tfsdk:"prefix" json:"prefix,omitempty"`
								QueryParameters *[]struct {
									Name  *string `tfsdk:"name" json:"name,omitempty"`
									Regex *bool   `tfsdk:"regex" json:"regex,omitempty"`
									Value *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"query_parameters" json:"queryParameters,omitempty"`
								Regex *string `tfsdk:"regex" json:"regex,omitempty"`
							} `tfsdk:"matcher" json:"matcher,omitempty"`
							RequestTransformation *struct {
								HeaderBodyTransform *struct {
									AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
								} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
								LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
								TransformationTemplate *struct {
									AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
									Body              *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"body" json:"body,omitempty"`
									DynamicMetadataValues *[]struct {
										JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
										Key               *string `tfsdk:"key" json:"key,omitempty"`
										MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
										Value             *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
									EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
									Extractors       *struct {
										Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
										Header          *string            `tfsdk:"header" json:"header,omitempty"`
										Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
										Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
										ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
										Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
									} `tfsdk:"extractors" json:"extractors,omitempty"`
									Headers *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									HeadersToAppend *[]struct {
										Key   *string `tfsdk:"key" json:"key,omitempty"`
										Value *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
									HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
									IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
									MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
									MergeJsonKeys         *struct {
										JsonKeys *struct {
											OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
											Tmpl          *struct {
												Text *string `tfsdk:"text" json:"text,omitempty"`
											} `tfsdk:"tmpl" json:"tmpl,omitempty"`
										} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
									} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
									ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
									Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
								} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
								XsltTransformation *struct {
									NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
									SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
									Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
								} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
							} `tfsdk:"request_transformation" json:"requestTransformation,omitempty"`
							ResponseTransformation *struct {
								HeaderBodyTransform *struct {
									AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
								} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
								LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
								TransformationTemplate *struct {
									AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
									Body              *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"body" json:"body,omitempty"`
									DynamicMetadataValues *[]struct {
										JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
										Key               *string `tfsdk:"key" json:"key,omitempty"`
										MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
										Value             *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
									EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
									Extractors       *struct {
										Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
										Header          *string            `tfsdk:"header" json:"header,omitempty"`
										Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
										Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
										ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
										Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
									} `tfsdk:"extractors" json:"extractors,omitempty"`
									Headers *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									HeadersToAppend *[]struct {
										Key   *string `tfsdk:"key" json:"key,omitempty"`
										Value *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
									HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
									IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
									MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
									MergeJsonKeys         *struct {
										JsonKeys *struct {
											OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
											Tmpl          *struct {
												Text *string `tfsdk:"text" json:"text,omitempty"`
											} `tfsdk:"tmpl" json:"tmpl,omitempty"`
										} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
									} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
									ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
									Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
								} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
								XsltTransformation *struct {
									NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
									SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
									Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
								} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
							} `tfsdk:"response_transformation" json:"responseTransformation,omitempty"`
						} `tfsdk:"request_transforms" json:"requestTransforms,omitempty"`
						ResponseTransforms *[]struct {
							Matchers *[]struct {
								InvertMatch *bool   `tfsdk:"invert_match" json:"invertMatch,omitempty"`
								Name        *string `tfsdk:"name" json:"name,omitempty"`
								Regex       *bool   `tfsdk:"regex" json:"regex,omitempty"`
								Value       *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"matchers" json:"matchers,omitempty"`
							ResponseCodeDetails    *string `tfsdk:"response_code_details" json:"responseCodeDetails,omitempty"`
							ResponseTransformation *struct {
								HeaderBodyTransform *struct {
									AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
								} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
								LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
								TransformationTemplate *struct {
									AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
									Body              *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"body" json:"body,omitempty"`
									DynamicMetadataValues *[]struct {
										JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
										Key               *string `tfsdk:"key" json:"key,omitempty"`
										MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
										Value             *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
									EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
									Extractors       *struct {
										Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
										Header          *string            `tfsdk:"header" json:"header,omitempty"`
										Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
										Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
										ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
										Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
									} `tfsdk:"extractors" json:"extractors,omitempty"`
									Headers *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									HeadersToAppend *[]struct {
										Key   *string `tfsdk:"key" json:"key,omitempty"`
										Value *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
									HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
									IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
									MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
									MergeJsonKeys         *struct {
										JsonKeys *struct {
											OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
											Tmpl          *struct {
												Text *string `tfsdk:"text" json:"text,omitempty"`
											} `tfsdk:"tmpl" json:"tmpl,omitempty"`
										} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
									} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
									ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
									Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
								} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
								XsltTransformation *struct {
									NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
									SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
									Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
								} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
							} `tfsdk:"response_transformation" json:"responseTransformation,omitempty"`
						} `tfsdk:"response_transforms" json:"responseTransforms,omitempty"`
					} `tfsdk:"post_routing" json:"postRouting,omitempty"`
					Regular *struct {
						RequestTransforms *[]struct {
							ClearRouteCache *bool `tfsdk:"clear_route_cache" json:"clearRouteCache,omitempty"`
							Matcher         *struct {
								CaseSensitive  *bool              `tfsdk:"case_sensitive" json:"caseSensitive,omitempty"`
								ConnectMatcher *map[string]string `tfsdk:"connect_matcher" json:"connectMatcher,omitempty"`
								Exact          *string            `tfsdk:"exact" json:"exact,omitempty"`
								Headers        *[]struct {
									InvertMatch *bool   `tfsdk:"invert_match" json:"invertMatch,omitempty"`
									Name        *string `tfsdk:"name" json:"name,omitempty"`
									Regex       *bool   `tfsdk:"regex" json:"regex,omitempty"`
									Value       *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"headers" json:"headers,omitempty"`
								Methods         *[]string `tfsdk:"methods" json:"methods,omitempty"`
								Prefix          *string   `tfsdk:"prefix" json:"prefix,omitempty"`
								QueryParameters *[]struct {
									Name  *string `tfsdk:"name" json:"name,omitempty"`
									Regex *bool   `tfsdk:"regex" json:"regex,omitempty"`
									Value *string `tfsdk:"value" json:"value,omitempty"`
								} `tfsdk:"query_parameters" json:"queryParameters,omitempty"`
								Regex *string `tfsdk:"regex" json:"regex,omitempty"`
							} `tfsdk:"matcher" json:"matcher,omitempty"`
							RequestTransformation *struct {
								HeaderBodyTransform *struct {
									AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
								} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
								LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
								TransformationTemplate *struct {
									AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
									Body              *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"body" json:"body,omitempty"`
									DynamicMetadataValues *[]struct {
										JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
										Key               *string `tfsdk:"key" json:"key,omitempty"`
										MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
										Value             *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
									EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
									Extractors       *struct {
										Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
										Header          *string            `tfsdk:"header" json:"header,omitempty"`
										Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
										Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
										ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
										Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
									} `tfsdk:"extractors" json:"extractors,omitempty"`
									Headers *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									HeadersToAppend *[]struct {
										Key   *string `tfsdk:"key" json:"key,omitempty"`
										Value *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
									HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
									IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
									MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
									MergeJsonKeys         *struct {
										JsonKeys *struct {
											OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
											Tmpl          *struct {
												Text *string `tfsdk:"text" json:"text,omitempty"`
											} `tfsdk:"tmpl" json:"tmpl,omitempty"`
										} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
									} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
									ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
									Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
								} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
								XsltTransformation *struct {
									NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
									SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
									Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
								} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
							} `tfsdk:"request_transformation" json:"requestTransformation,omitempty"`
							ResponseTransformation *struct {
								HeaderBodyTransform *struct {
									AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
								} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
								LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
								TransformationTemplate *struct {
									AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
									Body              *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"body" json:"body,omitempty"`
									DynamicMetadataValues *[]struct {
										JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
										Key               *string `tfsdk:"key" json:"key,omitempty"`
										MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
										Value             *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
									EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
									Extractors       *struct {
										Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
										Header          *string            `tfsdk:"header" json:"header,omitempty"`
										Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
										Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
										ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
										Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
									} `tfsdk:"extractors" json:"extractors,omitempty"`
									Headers *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									HeadersToAppend *[]struct {
										Key   *string `tfsdk:"key" json:"key,omitempty"`
										Value *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
									HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
									IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
									MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
									MergeJsonKeys         *struct {
										JsonKeys *struct {
											OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
											Tmpl          *struct {
												Text *string `tfsdk:"text" json:"text,omitempty"`
											} `tfsdk:"tmpl" json:"tmpl,omitempty"`
										} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
									} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
									ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
									Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
								} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
								XsltTransformation *struct {
									NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
									SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
									Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
								} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
							} `tfsdk:"response_transformation" json:"responseTransformation,omitempty"`
						} `tfsdk:"request_transforms" json:"requestTransforms,omitempty"`
						ResponseTransforms *[]struct {
							Matchers *[]struct {
								InvertMatch *bool   `tfsdk:"invert_match" json:"invertMatch,omitempty"`
								Name        *string `tfsdk:"name" json:"name,omitempty"`
								Regex       *bool   `tfsdk:"regex" json:"regex,omitempty"`
								Value       *string `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"matchers" json:"matchers,omitempty"`
							ResponseCodeDetails    *string `tfsdk:"response_code_details" json:"responseCodeDetails,omitempty"`
							ResponseTransformation *struct {
								HeaderBodyTransform *struct {
									AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
								} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
								LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
								TransformationTemplate *struct {
									AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
									Body              *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"body" json:"body,omitempty"`
									DynamicMetadataValues *[]struct {
										JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
										Key               *string `tfsdk:"key" json:"key,omitempty"`
										MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
										Value             *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
									EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
									Extractors       *struct {
										Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
										Header          *string            `tfsdk:"header" json:"header,omitempty"`
										Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
										Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
										ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
										Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
									} `tfsdk:"extractors" json:"extractors,omitempty"`
									Headers *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"headers" json:"headers,omitempty"`
									HeadersToAppend *[]struct {
										Key   *string `tfsdk:"key" json:"key,omitempty"`
										Value *struct {
											Text *string `tfsdk:"text" json:"text,omitempty"`
										} `tfsdk:"value" json:"value,omitempty"`
									} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
									HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
									IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
									MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
									MergeJsonKeys         *struct {
										JsonKeys *struct {
											OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
											Tmpl          *struct {
												Text *string `tfsdk:"text" json:"text,omitempty"`
											} `tfsdk:"tmpl" json:"tmpl,omitempty"`
										} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
									} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
									ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
									Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
								} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
								XsltTransformation *struct {
									NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
									SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
									Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
								} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
							} `tfsdk:"response_transformation" json:"responseTransformation,omitempty"`
						} `tfsdk:"response_transforms" json:"responseTransforms,omitempty"`
					} `tfsdk:"regular" json:"regular,omitempty"`
				} `tfsdk:"staged_transformations" json:"stagedTransformations,omitempty"`
				Transformations *struct {
					ClearRouteCache       *bool `tfsdk:"clear_route_cache" json:"clearRouteCache,omitempty"`
					RequestTransformation *struct {
						HeaderBodyTransform *struct {
							AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
						} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
						LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
						TransformationTemplate *struct {
							AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
							Body              *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"body" json:"body,omitempty"`
							DynamicMetadataValues *[]struct {
								JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
								Key               *string `tfsdk:"key" json:"key,omitempty"`
								MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
								Value             *struct {
									Text *string `tfsdk:"text" json:"text,omitempty"`
								} `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
							EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
							Extractors       *struct {
								Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
								Header          *string            `tfsdk:"header" json:"header,omitempty"`
								Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
								Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
								ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
								Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
							} `tfsdk:"extractors" json:"extractors,omitempty"`
							Headers *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							HeadersToAppend *[]struct {
								Key   *string `tfsdk:"key" json:"key,omitempty"`
								Value *struct {
									Text *string `tfsdk:"text" json:"text,omitempty"`
								} `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
							HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
							IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
							MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
							MergeJsonKeys         *struct {
								JsonKeys *struct {
									OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
									Tmpl          *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"tmpl" json:"tmpl,omitempty"`
								} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
							} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
							ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
							Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
						} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
						XsltTransformation *struct {
							NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
							SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
							Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
						} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
					} `tfsdk:"request_transformation" json:"requestTransformation,omitempty"`
					ResponseTransformation *struct {
						HeaderBodyTransform *struct {
							AddRequestMetadata *bool `tfsdk:"add_request_metadata" json:"addRequestMetadata,omitempty"`
						} `tfsdk:"header_body_transform" json:"headerBodyTransform,omitempty"`
						LogRequestResponseInfo *bool `tfsdk:"log_request_response_info" json:"logRequestResponseInfo,omitempty"`
						TransformationTemplate *struct {
							AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
							Body              *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"body" json:"body,omitempty"`
							DynamicMetadataValues *[]struct {
								JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
								Key               *string `tfsdk:"key" json:"key,omitempty"`
								MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
								Value             *struct {
									Text *string `tfsdk:"text" json:"text,omitempty"`
								} `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
							EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
							Extractors       *struct {
								Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
								Header          *string            `tfsdk:"header" json:"header,omitempty"`
								Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
								Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
								ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
								Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
							} `tfsdk:"extractors" json:"extractors,omitempty"`
							Headers *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"headers" json:"headers,omitempty"`
							HeadersToAppend *[]struct {
								Key   *string `tfsdk:"key" json:"key,omitempty"`
								Value *struct {
									Text *string `tfsdk:"text" json:"text,omitempty"`
								} `tfsdk:"value" json:"value,omitempty"`
							} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
							HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
							IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
							MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
							MergeJsonKeys         *struct {
								JsonKeys *struct {
									OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
									Tmpl          *struct {
										Text *string `tfsdk:"text" json:"text,omitempty"`
									} `tfsdk:"tmpl" json:"tmpl,omitempty"`
								} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
							} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
							ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
							Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
						} `tfsdk:"transformation_template" json:"transformationTemplate,omitempty"`
						XsltTransformation *struct {
							NonXmlTransform *bool   `tfsdk:"non_xml_transform" json:"nonXmlTransform,omitempty"`
							SetContentType  *string `tfsdk:"set_content_type" json:"setContentType,omitempty"`
							Xslt            *string `tfsdk:"xslt" json:"xslt,omitempty"`
						} `tfsdk:"xslt_transformation" json:"xsltTransformation,omitempty"`
					} `tfsdk:"response_transformation" json:"responseTransformation,omitempty"`
				} `tfsdk:"transformations" json:"transformations,omitempty"`
			} `tfsdk:"options" json:"options,omitempty"`
			Weight *int64 `tfsdk:"weight" json:"weight,omitempty"`
		} `tfsdk:"destinations" json:"destinations,omitempty"`
		NamespacedStatuses *struct {
			Statuses *map[string]string `tfsdk:"statuses" json:"statuses,omitempty"`
		} `tfsdk:"namespaced_statuses" json:"namespacedStatuses,omitempty"`
	} `tfsdk:"spec" json:"spec,omitempty"`
}

type GlooSoloIoUpstreamV1Manifest

type GlooSoloIoUpstreamV1Manifest struct{}

func (*GlooSoloIoUpstreamV1Manifest) Metadata

func (*GlooSoloIoUpstreamV1Manifest) Read

func (*GlooSoloIoUpstreamV1Manifest) Schema

type GlooSoloIoUpstreamV1ManifestData

type GlooSoloIoUpstreamV1ManifestData 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 {
		Ai *struct {
			Anthropic *struct {
				AuthToken *struct {
					Inline    *string `tfsdk:"inline" json:"inline,omitempty"`
					SecretRef *struct {
						Name      *string `tfsdk:"name" json:"name,omitempty"`
						Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
					} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
				} `tfsdk:"auth_token" json:"authToken,omitempty"`
				CustomHost *struct {
					Host *string `tfsdk:"host" json:"host,omitempty"`
					Port *int64  `tfsdk:"port" json:"port,omitempty"`
				} `tfsdk:"custom_host" json:"customHost,omitempty"`
				Model   *string `tfsdk:"model" json:"model,omitempty"`
				Version *string `tfsdk:"version" json:"version,omitempty"`
			} `tfsdk:"anthropic" json:"anthropic,omitempty"`
			AzureOpenai *struct {
				ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"`
				AuthToken  *struct {
					Inline    *string `tfsdk:"inline" json:"inline,omitempty"`
					SecretRef *struct {
						Name      *string `tfsdk:"name" json:"name,omitempty"`
						Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
					} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
				} `tfsdk:"auth_token" json:"authToken,omitempty"`
				DeploymentName *string `tfsdk:"deployment_name" json:"deploymentName,omitempty"`
				Endpoint       *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
			} `tfsdk:"azure_openai" json:"azureOpenai,omitempty"`
			Gemini *struct {
				ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"`
				AuthToken  *struct {
					Inline    *string `tfsdk:"inline" json:"inline,omitempty"`
					SecretRef *struct {
						Name      *string `tfsdk:"name" json:"name,omitempty"`
						Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
					} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
				} `tfsdk:"auth_token" json:"authToken,omitempty"`
				Model *string `tfsdk:"model" json:"model,omitempty"`
			} `tfsdk:"gemini" json:"gemini,omitempty"`
			Mistral *struct {
				AuthToken *struct {
					Inline    *string `tfsdk:"inline" json:"inline,omitempty"`
					SecretRef *struct {
						Name      *string `tfsdk:"name" json:"name,omitempty"`
						Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
					} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
				} `tfsdk:"auth_token" json:"authToken,omitempty"`
				CustomHost *struct {
					Host *string `tfsdk:"host" json:"host,omitempty"`
					Port *int64  `tfsdk:"port" json:"port,omitempty"`
				} `tfsdk:"custom_host" json:"customHost,omitempty"`
				Model *string `tfsdk:"model" json:"model,omitempty"`
			} `tfsdk:"mistral" json:"mistral,omitempty"`
			Multi *struct {
				Priorities *[]struct {
					Pool *[]struct {
						Anthropic *struct {
							AuthToken *struct {
								Inline    *string `tfsdk:"inline" json:"inline,omitempty"`
								SecretRef *struct {
									Name      *string `tfsdk:"name" json:"name,omitempty"`
									Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
								} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
							} `tfsdk:"auth_token" json:"authToken,omitempty"`
							CustomHost *struct {
								Host *string `tfsdk:"host" json:"host,omitempty"`
								Port *int64  `tfsdk:"port" json:"port,omitempty"`
							} `tfsdk:"custom_host" json:"customHost,omitempty"`
							Model   *string `tfsdk:"model" json:"model,omitempty"`
							Version *string `tfsdk:"version" json:"version,omitempty"`
						} `tfsdk:"anthropic" json:"anthropic,omitempty"`
						AzureOpenai *struct {
							ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"`
							AuthToken  *struct {
								Inline    *string `tfsdk:"inline" json:"inline,omitempty"`
								SecretRef *struct {
									Name      *string `tfsdk:"name" json:"name,omitempty"`
									Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
								} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
							} `tfsdk:"auth_token" json:"authToken,omitempty"`
							DeploymentName *string `tfsdk:"deployment_name" json:"deploymentName,omitempty"`
							Endpoint       *string `tfsdk:"endpoint" json:"endpoint,omitempty"`
						} `tfsdk:"azure_openai" json:"azureOpenai,omitempty"`
						Gemini *struct {
							ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"`
							AuthToken  *struct {
								Inline    *string `tfsdk:"inline" json:"inline,omitempty"`
								SecretRef *struct {
									Name      *string `tfsdk:"name" json:"name,omitempty"`
									Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
								} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
							} `tfsdk:"auth_token" json:"authToken,omitempty"`
							Model *string `tfsdk:"model" json:"model,omitempty"`
						} `tfsdk:"gemini" json:"gemini,omitempty"`
						Mistral *struct {
							AuthToken *struct {
								Inline    *string `tfsdk:"inline" json:"inline,omitempty"`
								SecretRef *struct {
									Name      *string `tfsdk:"name" json:"name,omitempty"`
									Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
								} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
							} `tfsdk:"auth_token" json:"authToken,omitempty"`
							CustomHost *struct {
								Host *string `tfsdk:"host" json:"host,omitempty"`
								Port *int64  `tfsdk:"port" json:"port,omitempty"`
							} `tfsdk:"custom_host" json:"customHost,omitempty"`
							Model *string `tfsdk:"model" json:"model,omitempty"`
						} `tfsdk:"mistral" json:"mistral,omitempty"`
						Openai *struct {
							AuthToken *struct {
								Inline    *string `tfsdk:"inline" json:"inline,omitempty"`
								SecretRef *struct {
									Name      *string `tfsdk:"name" json:"name,omitempty"`
									Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
								} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
							} `tfsdk:"auth_token" json:"authToken,omitempty"`
							CustomHost *struct {
								Host *string `tfsdk:"host" json:"host,omitempty"`
								Port *int64  `tfsdk:"port" json:"port,omitempty"`
							} `tfsdk:"custom_host" json:"customHost,omitempty"`
							Model *string `tfsdk:"model" json:"model,omitempty"`
						} `tfsdk:"openai" json:"openai,omitempty"`
					} `tfsdk:"pool" json:"pool,omitempty"`
				} `tfsdk:"priorities" json:"priorities,omitempty"`
			} `tfsdk:"multi" json:"multi,omitempty"`
			Openai *struct {
				AuthToken *struct {
					Inline    *string `tfsdk:"inline" json:"inline,omitempty"`
					SecretRef *struct {
						Name      *string `tfsdk:"name" json:"name,omitempty"`
						Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
					} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
				} `tfsdk:"auth_token" json:"authToken,omitempty"`
				CustomHost *struct {
					Host *string `tfsdk:"host" json:"host,omitempty"`
					Port *int64  `tfsdk:"port" json:"port,omitempty"`
				} `tfsdk:"custom_host" json:"customHost,omitempty"`
				Model *string `tfsdk:"model" json:"model,omitempty"`
			} `tfsdk:"openai" json:"openai,omitempty"`
		} `tfsdk:"ai" json:"ai,omitempty"`
		Aws *struct {
			AwsAccountId         *string `tfsdk:"aws_account_id" json:"awsAccountId,omitempty"`
			DestinationOverrides *struct {
				InvocationStyle        *string `tfsdk:"invocation_style" json:"invocationStyle,omitempty"`
				LogicalName            *string `tfsdk:"logical_name" json:"logicalName,omitempty"`
				RequestTransformation  *bool   `tfsdk:"request_transformation" json:"requestTransformation,omitempty"`
				ResponseTransformation *bool   `tfsdk:"response_transformation" json:"responseTransformation,omitempty"`
				UnwrapAsAlb            *bool   `tfsdk:"unwrap_as_alb" json:"unwrapAsAlb,omitempty"`
				UnwrapAsApiGateway     *bool   `tfsdk:"unwrap_as_api_gateway" json:"unwrapAsApiGateway,omitempty"`
				WrapAsApiGateway       *bool   `tfsdk:"wrap_as_api_gateway" json:"wrapAsApiGateway,omitempty"`
			} `tfsdk:"destination_overrides" json:"destinationOverrides,omitempty"`
			DisableRoleChaining *bool `tfsdk:"disable_role_chaining" json:"disableRoleChaining,omitempty"`
			LambdaFunctions     *[]struct {
				LambdaFunctionName *string `tfsdk:"lambda_function_name" json:"lambdaFunctionName,omitempty"`
				LogicalName        *string `tfsdk:"logical_name" json:"logicalName,omitempty"`
				Qualifier          *string `tfsdk:"qualifier" json:"qualifier,omitempty"`
			} `tfsdk:"lambda_functions" json:"lambdaFunctions,omitempty"`
			Region    *string `tfsdk:"region" json:"region,omitempty"`
			RoleArn   *string `tfsdk:"role_arn" json:"roleArn,omitempty"`
			SecretRef *struct {
				Name      *string `tfsdk:"name" json:"name,omitempty"`
				Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
			} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
		} `tfsdk:"aws" json:"aws,omitempty"`
		AwsEc2 *struct {
			Filters *[]struct {
				Key    *string `tfsdk:"key" json:"key,omitempty"`
				KvPair *struct {
					Key   *string `tfsdk:"key" json:"key,omitempty"`
					Value *string `tfsdk:"value" json:"value,omitempty"`
				} `tfsdk:"kv_pair" json:"kvPair,omitempty"`
			} `tfsdk:"filters" json:"filters,omitempty"`
			Port      *int64  `tfsdk:"port" json:"port,omitempty"`
			PublicIp  *bool   `tfsdk:"public_ip" json:"publicIp,omitempty"`
			Region    *string `tfsdk:"region" json:"region,omitempty"`
			RoleArn   *string `tfsdk:"role_arn" json:"roleArn,omitempty"`
			SecretRef *struct {
				Name      *string `tfsdk:"name" json:"name,omitempty"`
				Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
			} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
		} `tfsdk:"aws_ec2" json:"awsEc2,omitempty"`
		Azure *struct {
			FunctionAppName *string `tfsdk:"function_app_name" json:"functionAppName,omitempty"`
			Functions       *[]struct {
				AuthLevel    *string `tfsdk:"auth_level" json:"authLevel,omitempty"`
				FunctionName *string `tfsdk:"function_name" json:"functionName,omitempty"`
			} `tfsdk:"functions" json:"functions,omitempty"`
			SecretRef *struct {
				Name      *string `tfsdk:"name" json:"name,omitempty"`
				Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
			} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
		} `tfsdk:"azure" json:"azure,omitempty"`
		CircuitBreakers *struct {
			MaxConnections     *int64 `tfsdk:"max_connections" json:"maxConnections,omitempty"`
			MaxPendingRequests *int64 `tfsdk:"max_pending_requests" json:"maxPendingRequests,omitempty"`
			MaxRequests        *int64 `tfsdk:"max_requests" json:"maxRequests,omitempty"`
			MaxRetries         *int64 `tfsdk:"max_retries" json:"maxRetries,omitempty"`
		} `tfsdk:"circuit_breakers" json:"circuitBreakers,omitempty"`
		ConnectionConfig *struct {
			CommonHttpProtocolOptions *struct {
				HeadersWithUnderscoresAction *string `tfsdk:"headers_with_underscores_action" json:"headersWithUnderscoresAction,omitempty"`
				IdleTimeout                  *string `tfsdk:"idle_timeout" json:"idleTimeout,omitempty"`
				MaxHeadersCount              *int64  `tfsdk:"max_headers_count" json:"maxHeadersCount,omitempty"`
				MaxStreamDuration            *string `tfsdk:"max_stream_duration" json:"maxStreamDuration,omitempty"`
			} `tfsdk:"common_http_protocol_options" json:"commonHttpProtocolOptions,omitempty"`
			ConnectTimeout       *string `tfsdk:"connect_timeout" json:"connectTimeout,omitempty"`
			Http1ProtocolOptions *struct {
				EnableTrailers                          *bool `tfsdk:"enable_trailers" json:"enableTrailers,omitempty"`
				OverrideStreamErrorOnInvalidHttpMessage *bool `tfsdk:"override_stream_error_on_invalid_http_message" json:"overrideStreamErrorOnInvalidHttpMessage,omitempty"`
				PreserveCaseHeaderKeyFormat             *bool `tfsdk:"preserve_case_header_key_format" json:"preserveCaseHeaderKeyFormat,omitempty"`
				ProperCaseHeaderKeyFormat               *bool `tfsdk:"proper_case_header_key_format" json:"properCaseHeaderKeyFormat,omitempty"`
			} `tfsdk:"http1_protocol_options" json:"http1ProtocolOptions,omitempty"`
			MaxRequestsPerConnection      *int64 `tfsdk:"max_requests_per_connection" json:"maxRequestsPerConnection,omitempty"`
			PerConnectionBufferLimitBytes *int64 `tfsdk:"per_connection_buffer_limit_bytes" json:"perConnectionBufferLimitBytes,omitempty"`
			TcpKeepalive                  *struct {
				KeepaliveInterval *string `tfsdk:"keepalive_interval" json:"keepaliveInterval,omitempty"`
				KeepaliveProbes   *int64  `tfsdk:"keepalive_probes" json:"keepaliveProbes,omitempty"`
				KeepaliveTime     *string `tfsdk:"keepalive_time" json:"keepaliveTime,omitempty"`
			} `tfsdk:"tcp_keepalive" json:"tcpKeepalive,omitempty"`
		} `tfsdk:"connection_config" json:"connectionConfig,omitempty"`
		Consul *struct {
			ConnectEnabled        *bool     `tfsdk:"connect_enabled" json:"connectEnabled,omitempty"`
			ConsistencyMode       *string   `tfsdk:"consistency_mode" json:"consistencyMode,omitempty"`
			DataCenters           *[]string `tfsdk:"data_centers" json:"dataCenters,omitempty"`
			InstanceBlacklistTags *[]string `tfsdk:"instance_blacklist_tags" json:"instanceBlacklistTags,omitempty"`
			InstanceTags          *[]string `tfsdk:"instance_tags" json:"instanceTags,omitempty"`
			QueryOptions          *struct {
				UseCache *bool `tfsdk:"use_cache" json:"useCache,omitempty"`
			} `tfsdk:"query_options" json:"queryOptions,omitempty"`
			ServiceName *string `tfsdk:"service_name" json:"serviceName,omitempty"`
			ServiceSpec *struct {
				Graphql *struct {
					Endpoint *struct {
						Url *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"endpoint" json:"endpoint,omitempty"`
				} `tfsdk:"graphql" json:"graphql,omitempty"`
				Grpc *struct {
					Descriptors  *string `tfsdk:"descriptors" json:"descriptors,omitempty"`
					GrpcServices *[]struct {
						FunctionNames *[]string `tfsdk:"function_names" json:"functionNames,omitempty"`
						PackageName   *string   `tfsdk:"package_name" json:"packageName,omitempty"`
						ServiceName   *string   `tfsdk:"service_name" json:"serviceName,omitempty"`
					} `tfsdk:"grpc_services" json:"grpcServices,omitempty"`
				} `tfsdk:"grpc" json:"grpc,omitempty"`
				GrpcJsonTranscoder *struct {
					AutoMapping                  *bool     `tfsdk:"auto_mapping" json:"autoMapping,omitempty"`
					ConvertGrpcStatus            *bool     `tfsdk:"convert_grpc_status" json:"convertGrpcStatus,omitempty"`
					IgnoreUnknownQueryParameters *bool     `tfsdk:"ignore_unknown_query_parameters" json:"ignoreUnknownQueryParameters,omitempty"`
					IgnoredQueryParameters       *[]string `tfsdk:"ignored_query_parameters" json:"ignoredQueryParameters,omitempty"`
					MatchIncomingRequestRoute    *bool     `tfsdk:"match_incoming_request_route" json:"matchIncomingRequestRoute,omitempty"`
					PrintOptions                 *struct {
						AddWhitespace              *bool `tfsdk:"add_whitespace" json:"addWhitespace,omitempty"`
						AlwaysPrintEnumsAsInts     *bool `tfsdk:"always_print_enums_as_ints" json:"alwaysPrintEnumsAsInts,omitempty"`
						AlwaysPrintPrimitiveFields *bool `tfsdk:"always_print_primitive_fields" json:"alwaysPrintPrimitiveFields,omitempty"`
						PreserveProtoFieldNames    *bool `tfsdk:"preserve_proto_field_names" json:"preserveProtoFieldNames,omitempty"`
					} `tfsdk:"print_options" json:"printOptions,omitempty"`
					ProtoDescriptor          *string `tfsdk:"proto_descriptor" json:"protoDescriptor,omitempty"`
					ProtoDescriptorBin       *string `tfsdk:"proto_descriptor_bin" json:"protoDescriptorBin,omitempty"`
					ProtoDescriptorConfigMap *struct {
						ConfigMapRef *struct {
							Name      *string `tfsdk:"name" json:"name,omitempty"`
							Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
						} `tfsdk:"config_map_ref" json:"configMapRef,omitempty"`
						Key *string `tfsdk:"key" json:"key,omitempty"`
					} `tfsdk:"proto_descriptor_config_map" json:"protoDescriptorConfigMap,omitempty"`
					Services *[]string `tfsdk:"services" json:"services,omitempty"`
				} `tfsdk:"grpc_json_transcoder" json:"grpcJsonTranscoder,omitempty"`
				Rest *struct {
					SwaggerInfo *struct {
						Inline *string `tfsdk:"inline" json:"inline,omitempty"`
						Url    *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"swagger_info" json:"swaggerInfo,omitempty"`
					Transformations *struct {
						AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
						Body              *struct {
							Text *string `tfsdk:"text" json:"text,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						DynamicMetadataValues *[]struct {
							JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
							Key               *string `tfsdk:"key" json:"key,omitempty"`
							MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
							Value             *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
						EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
						Extractors       *struct {
							Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
							Header          *string            `tfsdk:"header" json:"header,omitempty"`
							Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
							Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
							ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
							Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
						} `tfsdk:"extractors" json:"extractors,omitempty"`
						Headers *struct {
							Text *string `tfsdk:"text" json:"text,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						HeadersToAppend *[]struct {
							Key   *string `tfsdk:"key" json:"key,omitempty"`
							Value *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
						HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
						IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
						MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
						MergeJsonKeys         *struct {
							JsonKeys *struct {
								OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
								Tmpl          *struct {
									Text *string `tfsdk:"text" json:"text,omitempty"`
								} `tfsdk:"tmpl" json:"tmpl,omitempty"`
							} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
						} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
						ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
						Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
					} `tfsdk:"transformations" json:"transformations,omitempty"`
				} `tfsdk:"rest" json:"rest,omitempty"`
			} `tfsdk:"service_spec" json:"serviceSpec,omitempty"`
			ServiceTags *[]string `tfsdk:"service_tags" json:"serviceTags,omitempty"`
			SubsetTags  *[]string `tfsdk:"subset_tags" json:"subsetTags,omitempty"`
		} `tfsdk:"consul" json:"consul,omitempty"`
		DisableIstioAutoMtls *bool `tfsdk:"disable_istio_auto_mtls" json:"disableIstioAutoMtls,omitempty"`
		DiscoveryMetadata    *struct {
			Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"`
		} `tfsdk:"discovery_metadata" json:"discoveryMetadata,omitempty"`
		DnsRefreshRate *string `tfsdk:"dns_refresh_rate" json:"dnsRefreshRate,omitempty"`
		Failover       *struct {
			Policy *struct {
				OverprovisioningFactor *int64 `tfsdk:"overprovisioning_factor" json:"overprovisioningFactor,omitempty"`
			} `tfsdk:"policy" json:"policy,omitempty"`
			PrioritizedLocalities *[]struct {
				LocalityEndpoints *[]struct {
					LbEndpoints *[]struct {
						Address           *string `tfsdk:"address" json:"address,omitempty"`
						HealthCheckConfig *struct {
							Hostname  *string `tfsdk:"hostname" json:"hostname,omitempty"`
							Method    *string `tfsdk:"method" json:"method,omitempty"`
							Path      *string `tfsdk:"path" json:"path,omitempty"`
							PortValue *int64  `tfsdk:"port_value" json:"portValue,omitempty"`
						} `tfsdk:"health_check_config" json:"healthCheckConfig,omitempty"`
						LoadBalancingWeight *int64             `tfsdk:"load_balancing_weight" json:"loadBalancingWeight,omitempty"`
						Metadata            *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"`
						Port                *int64             `tfsdk:"port" json:"port,omitempty"`
						UpstreamSslConfig   *struct {
							AllowRenegotiation *bool     `tfsdk:"allow_renegotiation" json:"allowRenegotiation,omitempty"`
							AlpnProtocols      *[]string `tfsdk:"alpn_protocols" json:"alpnProtocols,omitempty"`
							OneWayTls          *bool     `tfsdk:"one_way_tls" json:"oneWayTls,omitempty"`
							Parameters         *struct {
								CipherSuites           *[]string `tfsdk:"cipher_suites" json:"cipherSuites,omitempty"`
								EcdhCurves             *[]string `tfsdk:"ecdh_curves" json:"ecdhCurves,omitempty"`
								MaximumProtocolVersion *string   `tfsdk:"maximum_protocol_version" json:"maximumProtocolVersion,omitempty"`
								MinimumProtocolVersion *string   `tfsdk:"minimum_protocol_version" json:"minimumProtocolVersion,omitempty"`
							} `tfsdk:"parameters" json:"parameters,omitempty"`
							Sds *struct {
								CallCredentials *struct {
									FileCredentialSource *struct {
										Header        *string `tfsdk:"header" json:"header,omitempty"`
										TokenFileName *string `tfsdk:"token_file_name" json:"tokenFileName,omitempty"`
									} `tfsdk:"file_credential_source" json:"fileCredentialSource,omitempty"`
								} `tfsdk:"call_credentials" json:"callCredentials,omitempty"`
								CertificatesSecretName *string `tfsdk:"certificates_secret_name" json:"certificatesSecretName,omitempty"`
								ClusterName            *string `tfsdk:"cluster_name" json:"clusterName,omitempty"`
								TargetUri              *string `tfsdk:"target_uri" json:"targetUri,omitempty"`
								ValidationContextName  *string `tfsdk:"validation_context_name" json:"validationContextName,omitempty"`
							} `tfsdk:"sds" json:"sds,omitempty"`
							SecretRef *struct {
								Name      *string `tfsdk:"name" json:"name,omitempty"`
								Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
							} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
							Sni      *string `tfsdk:"sni" json:"sni,omitempty"`
							SslFiles *struct {
								OcspStaple *string `tfsdk:"ocsp_staple" json:"ocspStaple,omitempty"`
								RootCa     *string `tfsdk:"root_ca" json:"rootCa,omitempty"`
								TlsCert    *string `tfsdk:"tls_cert" json:"tlsCert,omitempty"`
								TlsKey     *string `tfsdk:"tls_key" json:"tlsKey,omitempty"`
							} `tfsdk:"ssl_files" json:"sslFiles,omitempty"`
							VerifySubjectAltName *[]string `tfsdk:"verify_subject_alt_name" json:"verifySubjectAltName,omitempty"`
						} `tfsdk:"upstream_ssl_config" json:"upstreamSslConfig,omitempty"`
					} `tfsdk:"lb_endpoints" json:"lbEndpoints,omitempty"`
					LoadBalancingWeight *int64 `tfsdk:"load_balancing_weight" json:"loadBalancingWeight,omitempty"`
					Locality            *struct {
						Region  *string `tfsdk:"region" json:"region,omitempty"`
						SubZone *string `tfsdk:"sub_zone" json:"subZone,omitempty"`
						Zone    *string `tfsdk:"zone" json:"zone,omitempty"`
					} `tfsdk:"locality" json:"locality,omitempty"`
				} `tfsdk:"locality_endpoints" json:"localityEndpoints,omitempty"`
			} `tfsdk:"prioritized_localities" json:"prioritizedLocalities,omitempty"`
		} `tfsdk:"failover" json:"failover,omitempty"`
		Gcp *struct {
			Audience *string `tfsdk:"audience" json:"audience,omitempty"`
			Host     *string `tfsdk:"host" json:"host,omitempty"`
		} `tfsdk:"gcp" json:"gcp,omitempty"`
		HealthChecks *[]struct {
			AlwaysLogHealthCheckFailures *bool `tfsdk:"always_log_health_check_failures" json:"alwaysLogHealthCheckFailures,omitempty"`
			CustomHealthCheck            *struct {
				Config      *map[string]string `tfsdk:"config" json:"config,omitempty"`
				Name        *string            `tfsdk:"name" json:"name,omitempty"`
				TypedConfig *map[string]string `tfsdk:"typed_config" json:"typedConfig,omitempty"`
			} `tfsdk:"custom_health_check" json:"customHealthCheck,omitempty"`
			EventLogPath    *string `tfsdk:"event_log_path" json:"eventLogPath,omitempty"`
			GrpcHealthCheck *struct {
				Authority       *string `tfsdk:"authority" json:"authority,omitempty"`
				InitialMetadata *[]struct {
					Append *bool `tfsdk:"append" json:"append,omitempty"`
					Header *struct {
						Key   *string `tfsdk:"key" json:"key,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"header" json:"header,omitempty"`
					HeaderSecretRef *struct {
						Name      *string `tfsdk:"name" json:"name,omitempty"`
						Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
					} `tfsdk:"header_secret_ref" json:"headerSecretRef,omitempty"`
				} `tfsdk:"initial_metadata" json:"initialMetadata,omitempty"`
				ServiceName *string `tfsdk:"service_name" json:"serviceName,omitempty"`
			} `tfsdk:"grpc_health_check" json:"grpcHealthCheck,omitempty"`
			HealthyEdgeInterval *string `tfsdk:"healthy_edge_interval" json:"healthyEdgeInterval,omitempty"`
			HealthyThreshold    *int64  `tfsdk:"healthy_threshold" json:"healthyThreshold,omitempty"`
			HttpHealthCheck     *struct {
				ExpectedStatuses *[]struct {
					End   *int64 `tfsdk:"end" json:"end,omitempty"`
					Start *int64 `tfsdk:"start" json:"start,omitempty"`
				} `tfsdk:"expected_statuses" json:"expectedStatuses,omitempty"`
				Host                *string `tfsdk:"host" json:"host,omitempty"`
				Method              *string `tfsdk:"method" json:"method,omitempty"`
				Path                *string `tfsdk:"path" json:"path,omitempty"`
				RequestHeadersToAdd *[]struct {
					Append *bool `tfsdk:"append" json:"append,omitempty"`
					Header *struct {
						Key   *string `tfsdk:"key" json:"key,omitempty"`
						Value *string `tfsdk:"value" json:"value,omitempty"`
					} `tfsdk:"header" json:"header,omitempty"`
					HeaderSecretRef *struct {
						Name      *string `tfsdk:"name" json:"name,omitempty"`
						Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
					} `tfsdk:"header_secret_ref" json:"headerSecretRef,omitempty"`
				} `tfsdk:"request_headers_to_add" json:"requestHeadersToAdd,omitempty"`
				RequestHeadersToRemove *[]string `tfsdk:"request_headers_to_remove" json:"requestHeadersToRemove,omitempty"`
				ResponseAssertions     *struct {
					NoMatchHealth    *string `tfsdk:"no_match_health" json:"noMatchHealth,omitempty"`
					ResponseMatchers *[]struct {
						MatchHealth   *string `tfsdk:"match_health" json:"matchHealth,omitempty"`
						ResponseMatch *struct {
							Body               *map[string]string `tfsdk:"body" json:"body,omitempty"`
							Header             *string            `tfsdk:"header" json:"header,omitempty"`
							IgnoreErrorOnParse *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
							JsonKey            *struct {
								Path *[]struct {
									Key *string `tfsdk:"key" json:"key,omitempty"`
								} `tfsdk:"path" json:"path,omitempty"`
							} `tfsdk:"json_key" json:"jsonKey,omitempty"`
							Regex *string `tfsdk:"regex" json:"regex,omitempty"`
						} `tfsdk:"response_match" json:"responseMatch,omitempty"`
					} `tfsdk:"response_matchers" json:"responseMatchers,omitempty"`
				} `tfsdk:"response_assertions" json:"responseAssertions,omitempty"`
				ServiceName *string `tfsdk:"service_name" json:"serviceName,omitempty"`
				UseHttp2    *bool   `tfsdk:"use_http2" json:"useHttp2,omitempty"`
			} `tfsdk:"http_health_check" json:"httpHealthCheck,omitempty"`
			InitialJitter         *string `tfsdk:"initial_jitter" json:"initialJitter,omitempty"`
			Interval              *string `tfsdk:"interval" json:"interval,omitempty"`
			IntervalJitter        *string `tfsdk:"interval_jitter" json:"intervalJitter,omitempty"`
			IntervalJitterPercent *int64  `tfsdk:"interval_jitter_percent" json:"intervalJitterPercent,omitempty"`
			NoTrafficInterval     *string `tfsdk:"no_traffic_interval" json:"noTrafficInterval,omitempty"`
			ReuseConnection       *bool   `tfsdk:"reuse_connection" json:"reuseConnection,omitempty"`
			TcpHealthCheck        *struct {
				Receive *[]struct {
					Text *string `tfsdk:"text" json:"text,omitempty"`
				} `tfsdk:"receive" json:"receive,omitempty"`
				Send *struct {
					Text *string `tfsdk:"text" json:"text,omitempty"`
				} `tfsdk:"send" json:"send,omitempty"`
			} `tfsdk:"tcp_health_check" json:"tcpHealthCheck,omitempty"`
			Timeout               *string `tfsdk:"timeout" json:"timeout,omitempty"`
			UnhealthyEdgeInterval *string `tfsdk:"unhealthy_edge_interval" json:"unhealthyEdgeInterval,omitempty"`
			UnhealthyInterval     *string `tfsdk:"unhealthy_interval" json:"unhealthyInterval,omitempty"`
			UnhealthyThreshold    *int64  `tfsdk:"unhealthy_threshold" json:"unhealthyThreshold,omitempty"`
		} `tfsdk:"health_checks" json:"healthChecks,omitempty"`
		HttpConnectHeaders *[]struct {
			Key   *string `tfsdk:"key" json:"key,omitempty"`
			Value *string `tfsdk:"value" json:"value,omitempty"`
		} `tfsdk:"http_connect_headers" json:"httpConnectHeaders,omitempty"`
		HttpConnectSslConfig *struct {
			AllowRenegotiation *bool     `tfsdk:"allow_renegotiation" json:"allowRenegotiation,omitempty"`
			AlpnProtocols      *[]string `tfsdk:"alpn_protocols" json:"alpnProtocols,omitempty"`
			OneWayTls          *bool     `tfsdk:"one_way_tls" json:"oneWayTls,omitempty"`
			Parameters         *struct {
				CipherSuites           *[]string `tfsdk:"cipher_suites" json:"cipherSuites,omitempty"`
				EcdhCurves             *[]string `tfsdk:"ecdh_curves" json:"ecdhCurves,omitempty"`
				MaximumProtocolVersion *string   `tfsdk:"maximum_protocol_version" json:"maximumProtocolVersion,omitempty"`
				MinimumProtocolVersion *string   `tfsdk:"minimum_protocol_version" json:"minimumProtocolVersion,omitempty"`
			} `tfsdk:"parameters" json:"parameters,omitempty"`
			Sds *struct {
				CallCredentials *struct {
					FileCredentialSource *struct {
						Header        *string `tfsdk:"header" json:"header,omitempty"`
						TokenFileName *string `tfsdk:"token_file_name" json:"tokenFileName,omitempty"`
					} `tfsdk:"file_credential_source" json:"fileCredentialSource,omitempty"`
				} `tfsdk:"call_credentials" json:"callCredentials,omitempty"`
				CertificatesSecretName *string `tfsdk:"certificates_secret_name" json:"certificatesSecretName,omitempty"`
				ClusterName            *string `tfsdk:"cluster_name" json:"clusterName,omitempty"`
				TargetUri              *string `tfsdk:"target_uri" json:"targetUri,omitempty"`
				ValidationContextName  *string `tfsdk:"validation_context_name" json:"validationContextName,omitempty"`
			} `tfsdk:"sds" json:"sds,omitempty"`
			SecretRef *struct {
				Name      *string `tfsdk:"name" json:"name,omitempty"`
				Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
			} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
			Sni      *string `tfsdk:"sni" json:"sni,omitempty"`
			SslFiles *struct {
				OcspStaple *string `tfsdk:"ocsp_staple" json:"ocspStaple,omitempty"`
				RootCa     *string `tfsdk:"root_ca" json:"rootCa,omitempty"`
				TlsCert    *string `tfsdk:"tls_cert" json:"tlsCert,omitempty"`
				TlsKey     *string `tfsdk:"tls_key" json:"tlsKey,omitempty"`
			} `tfsdk:"ssl_files" json:"sslFiles,omitempty"`
			VerifySubjectAltName *[]string `tfsdk:"verify_subject_alt_name" json:"verifySubjectAltName,omitempty"`
		} `tfsdk:"http_connect_ssl_config" json:"httpConnectSslConfig,omitempty"`
		HttpProxyHostname           *string `tfsdk:"http_proxy_hostname" json:"httpProxyHostname,omitempty"`
		IgnoreHealthOnHostRemoval   *bool   `tfsdk:"ignore_health_on_host_removal" json:"ignoreHealthOnHostRemoval,omitempty"`
		InitialConnectionWindowSize *int64  `tfsdk:"initial_connection_window_size" json:"initialConnectionWindowSize,omitempty"`
		InitialStreamWindowSize     *int64  `tfsdk:"initial_stream_window_size" json:"initialStreamWindowSize,omitempty"`
		Kube                        *struct {
			Selector         *map[string]string `tfsdk:"selector" json:"selector,omitempty"`
			ServiceName      *string            `tfsdk:"service_name" json:"serviceName,omitempty"`
			ServiceNamespace *string            `tfsdk:"service_namespace" json:"serviceNamespace,omitempty"`
			ServicePort      *int64             `tfsdk:"service_port" json:"servicePort,omitempty"`
			ServiceSpec      *struct {
				Graphql *struct {
					Endpoint *struct {
						Url *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"endpoint" json:"endpoint,omitempty"`
				} `tfsdk:"graphql" json:"graphql,omitempty"`
				Grpc *struct {
					Descriptors  *string `tfsdk:"descriptors" json:"descriptors,omitempty"`
					GrpcServices *[]struct {
						FunctionNames *[]string `tfsdk:"function_names" json:"functionNames,omitempty"`
						PackageName   *string   `tfsdk:"package_name" json:"packageName,omitempty"`
						ServiceName   *string   `tfsdk:"service_name" json:"serviceName,omitempty"`
					} `tfsdk:"grpc_services" json:"grpcServices,omitempty"`
				} `tfsdk:"grpc" json:"grpc,omitempty"`
				GrpcJsonTranscoder *struct {
					AutoMapping                  *bool     `tfsdk:"auto_mapping" json:"autoMapping,omitempty"`
					ConvertGrpcStatus            *bool     `tfsdk:"convert_grpc_status" json:"convertGrpcStatus,omitempty"`
					IgnoreUnknownQueryParameters *bool     `tfsdk:"ignore_unknown_query_parameters" json:"ignoreUnknownQueryParameters,omitempty"`
					IgnoredQueryParameters       *[]string `tfsdk:"ignored_query_parameters" json:"ignoredQueryParameters,omitempty"`
					MatchIncomingRequestRoute    *bool     `tfsdk:"match_incoming_request_route" json:"matchIncomingRequestRoute,omitempty"`
					PrintOptions                 *struct {
						AddWhitespace              *bool `tfsdk:"add_whitespace" json:"addWhitespace,omitempty"`
						AlwaysPrintEnumsAsInts     *bool `tfsdk:"always_print_enums_as_ints" json:"alwaysPrintEnumsAsInts,omitempty"`
						AlwaysPrintPrimitiveFields *bool `tfsdk:"always_print_primitive_fields" json:"alwaysPrintPrimitiveFields,omitempty"`
						PreserveProtoFieldNames    *bool `tfsdk:"preserve_proto_field_names" json:"preserveProtoFieldNames,omitempty"`
					} `tfsdk:"print_options" json:"printOptions,omitempty"`
					ProtoDescriptor          *string `tfsdk:"proto_descriptor" json:"protoDescriptor,omitempty"`
					ProtoDescriptorBin       *string `tfsdk:"proto_descriptor_bin" json:"protoDescriptorBin,omitempty"`
					ProtoDescriptorConfigMap *struct {
						ConfigMapRef *struct {
							Name      *string `tfsdk:"name" json:"name,omitempty"`
							Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
						} `tfsdk:"config_map_ref" json:"configMapRef,omitempty"`
						Key *string `tfsdk:"key" json:"key,omitempty"`
					} `tfsdk:"proto_descriptor_config_map" json:"protoDescriptorConfigMap,omitempty"`
					Services *[]string `tfsdk:"services" json:"services,omitempty"`
				} `tfsdk:"grpc_json_transcoder" json:"grpcJsonTranscoder,omitempty"`
				Rest *struct {
					SwaggerInfo *struct {
						Inline *string `tfsdk:"inline" json:"inline,omitempty"`
						Url    *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"swagger_info" json:"swaggerInfo,omitempty"`
					Transformations *struct {
						AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
						Body              *struct {
							Text *string `tfsdk:"text" json:"text,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						DynamicMetadataValues *[]struct {
							JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
							Key               *string `tfsdk:"key" json:"key,omitempty"`
							MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
							Value             *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
						EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
						Extractors       *struct {
							Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
							Header          *string            `tfsdk:"header" json:"header,omitempty"`
							Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
							Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
							ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
							Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
						} `tfsdk:"extractors" json:"extractors,omitempty"`
						Headers *struct {
							Text *string `tfsdk:"text" json:"text,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						HeadersToAppend *[]struct {
							Key   *string `tfsdk:"key" json:"key,omitempty"`
							Value *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
						HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
						IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
						MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
						MergeJsonKeys         *struct {
							JsonKeys *struct {
								OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
								Tmpl          *struct {
									Text *string `tfsdk:"text" json:"text,omitempty"`
								} `tfsdk:"tmpl" json:"tmpl,omitempty"`
							} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
						} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
						ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
						Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
					} `tfsdk:"transformations" json:"transformations,omitempty"`
				} `tfsdk:"rest" json:"rest,omitempty"`
			} `tfsdk:"service_spec" json:"serviceSpec,omitempty"`
			SubsetSpec *struct {
				DefaultSubset *struct {
					Values *map[string]string `tfsdk:"values" json:"values,omitempty"`
				} `tfsdk:"default_subset" json:"defaultSubset,omitempty"`
				FallbackPolicy *string `tfsdk:"fallback_policy" json:"fallbackPolicy,omitempty"`
				Selectors      *[]struct {
					Keys                *[]string `tfsdk:"keys" json:"keys,omitempty"`
					SingleHostPerSubset *bool     `tfsdk:"single_host_per_subset" json:"singleHostPerSubset,omitempty"`
				} `tfsdk:"selectors" json:"selectors,omitempty"`
			} `tfsdk:"subset_spec" json:"subsetSpec,omitempty"`
		} `tfsdk:"kube" json:"kube,omitempty"`
		LoadBalancerConfig *struct {
			HealthyPanicThreshold *float64 `tfsdk:"healthy_panic_threshold" json:"healthyPanicThreshold,omitempty"`
			LeastRequest          *struct {
				ChoiceCount     *int64 `tfsdk:"choice_count" json:"choiceCount,omitempty"`
				SlowStartConfig *struct {
					Aggression       *float64 `tfsdk:"aggression" json:"aggression,omitempty"`
					MinWeightPercent *float64 `tfsdk:"min_weight_percent" json:"minWeightPercent,omitempty"`
					SlowStartWindow  *string  `tfsdk:"slow_start_window" json:"slowStartWindow,omitempty"`
				} `tfsdk:"slow_start_config" json:"slowStartConfig,omitempty"`
			} `tfsdk:"least_request" json:"leastRequest,omitempty"`
			LocalityWeightedLbConfig *map[string]string `tfsdk:"locality_weighted_lb_config" json:"localityWeightedLbConfig,omitempty"`
			Maglev                   *map[string]string `tfsdk:"maglev" json:"maglev,omitempty"`
			Random                   *map[string]string `tfsdk:"random" json:"random,omitempty"`
			RingHash                 *struct {
				RingHashConfig *struct {
					MaximumRingSize *int64 `tfsdk:"maximum_ring_size" json:"maximumRingSize,omitempty"`
					MinimumRingSize *int64 `tfsdk:"minimum_ring_size" json:"minimumRingSize,omitempty"`
				} `tfsdk:"ring_hash_config" json:"ringHashConfig,omitempty"`
			} `tfsdk:"ring_hash" json:"ringHash,omitempty"`
			RoundRobin *struct {
				SlowStartConfig *struct {
					Aggression       *float64 `tfsdk:"aggression" json:"aggression,omitempty"`
					MinWeightPercent *float64 `tfsdk:"min_weight_percent" json:"minWeightPercent,omitempty"`
					SlowStartWindow  *string  `tfsdk:"slow_start_window" json:"slowStartWindow,omitempty"`
				} `tfsdk:"slow_start_config" json:"slowStartConfig,omitempty"`
			} `tfsdk:"round_robin" json:"roundRobin,omitempty"`
			UpdateMergeWindow     *string `tfsdk:"update_merge_window" json:"updateMergeWindow,omitempty"`
			UseHostnameForHashing *bool   `tfsdk:"use_hostname_for_hashing" json:"useHostnameForHashing,omitempty"`
		} `tfsdk:"load_balancer_config" json:"loadBalancerConfig,omitempty"`
		MaxConcurrentStreams *int64 `tfsdk:"max_concurrent_streams" json:"maxConcurrentStreams,omitempty"`
		NamespacedStatuses   *struct {
			Statuses *map[string]string `tfsdk:"statuses" json:"statuses,omitempty"`
		} `tfsdk:"namespaced_statuses" json:"namespacedStatuses,omitempty"`
		OutlierDetection *struct {
			BaseEjectionTime                       *string `tfsdk:"base_ejection_time" json:"baseEjectionTime,omitempty"`
			Consecutive5xx                         *int64  `tfsdk:"consecutive5xx" json:"consecutive5xx,omitempty"`
			ConsecutiveGatewayFailure              *int64  `tfsdk:"consecutive_gateway_failure" json:"consecutiveGatewayFailure,omitempty"`
			ConsecutiveLocalOriginFailure          *int64  `tfsdk:"consecutive_local_origin_failure" json:"consecutiveLocalOriginFailure,omitempty"`
			EnforcingConsecutive5xx                *int64  `tfsdk:"enforcing_consecutive5xx" json:"enforcingConsecutive5xx,omitempty"`
			EnforcingConsecutiveGatewayFailure     *int64  `tfsdk:"enforcing_consecutive_gateway_failure" json:"enforcingConsecutiveGatewayFailure,omitempty"`
			EnforcingConsecutiveLocalOriginFailure *int64  `tfsdk:"enforcing_consecutive_local_origin_failure" json:"enforcingConsecutiveLocalOriginFailure,omitempty"`
			EnforcingLocalOriginSuccessRate        *int64  `tfsdk:"enforcing_local_origin_success_rate" json:"enforcingLocalOriginSuccessRate,omitempty"`
			EnforcingSuccessRate                   *int64  `tfsdk:"enforcing_success_rate" json:"enforcingSuccessRate,omitempty"`
			Interval                               *string `tfsdk:"interval" json:"interval,omitempty"`
			MaxEjectionPercent                     *int64  `tfsdk:"max_ejection_percent" json:"maxEjectionPercent,omitempty"`
			SplitExternalLocalOriginErrors         *bool   `tfsdk:"split_external_local_origin_errors" json:"splitExternalLocalOriginErrors,omitempty"`
			SuccessRateMinimumHosts                *int64  `tfsdk:"success_rate_minimum_hosts" json:"successRateMinimumHosts,omitempty"`
			SuccessRateRequestVolume               *int64  `tfsdk:"success_rate_request_volume" json:"successRateRequestVolume,omitempty"`
			SuccessRateStdevFactor                 *int64  `tfsdk:"success_rate_stdev_factor" json:"successRateStdevFactor,omitempty"`
		} `tfsdk:"outlier_detection" json:"outlierDetection,omitempty"`
		OverrideStreamErrorOnInvalidHttpMessage *bool `tfsdk:"override_stream_error_on_invalid_http_message" json:"overrideStreamErrorOnInvalidHttpMessage,omitempty"`
		Pipe                                    *struct {
			Path        *string `tfsdk:"path" json:"path,omitempty"`
			ServiceSpec *struct {
				Graphql *struct {
					Endpoint *struct {
						Url *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"endpoint" json:"endpoint,omitempty"`
				} `tfsdk:"graphql" json:"graphql,omitempty"`
				Grpc *struct {
					Descriptors  *string `tfsdk:"descriptors" json:"descriptors,omitempty"`
					GrpcServices *[]struct {
						FunctionNames *[]string `tfsdk:"function_names" json:"functionNames,omitempty"`
						PackageName   *string   `tfsdk:"package_name" json:"packageName,omitempty"`
						ServiceName   *string   `tfsdk:"service_name" json:"serviceName,omitempty"`
					} `tfsdk:"grpc_services" json:"grpcServices,omitempty"`
				} `tfsdk:"grpc" json:"grpc,omitempty"`
				GrpcJsonTranscoder *struct {
					AutoMapping                  *bool     `tfsdk:"auto_mapping" json:"autoMapping,omitempty"`
					ConvertGrpcStatus            *bool     `tfsdk:"convert_grpc_status" json:"convertGrpcStatus,omitempty"`
					IgnoreUnknownQueryParameters *bool     `tfsdk:"ignore_unknown_query_parameters" json:"ignoreUnknownQueryParameters,omitempty"`
					IgnoredQueryParameters       *[]string `tfsdk:"ignored_query_parameters" json:"ignoredQueryParameters,omitempty"`
					MatchIncomingRequestRoute    *bool     `tfsdk:"match_incoming_request_route" json:"matchIncomingRequestRoute,omitempty"`
					PrintOptions                 *struct {
						AddWhitespace              *bool `tfsdk:"add_whitespace" json:"addWhitespace,omitempty"`
						AlwaysPrintEnumsAsInts     *bool `tfsdk:"always_print_enums_as_ints" json:"alwaysPrintEnumsAsInts,omitempty"`
						AlwaysPrintPrimitiveFields *bool `tfsdk:"always_print_primitive_fields" json:"alwaysPrintPrimitiveFields,omitempty"`
						PreserveProtoFieldNames    *bool `tfsdk:"preserve_proto_field_names" json:"preserveProtoFieldNames,omitempty"`
					} `tfsdk:"print_options" json:"printOptions,omitempty"`
					ProtoDescriptor          *string `tfsdk:"proto_descriptor" json:"protoDescriptor,omitempty"`
					ProtoDescriptorBin       *string `tfsdk:"proto_descriptor_bin" json:"protoDescriptorBin,omitempty"`
					ProtoDescriptorConfigMap *struct {
						ConfigMapRef *struct {
							Name      *string `tfsdk:"name" json:"name,omitempty"`
							Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
						} `tfsdk:"config_map_ref" json:"configMapRef,omitempty"`
						Key *string `tfsdk:"key" json:"key,omitempty"`
					} `tfsdk:"proto_descriptor_config_map" json:"protoDescriptorConfigMap,omitempty"`
					Services *[]string `tfsdk:"services" json:"services,omitempty"`
				} `tfsdk:"grpc_json_transcoder" json:"grpcJsonTranscoder,omitempty"`
				Rest *struct {
					SwaggerInfo *struct {
						Inline *string `tfsdk:"inline" json:"inline,omitempty"`
						Url    *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"swagger_info" json:"swaggerInfo,omitempty"`
					Transformations *struct {
						AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
						Body              *struct {
							Text *string `tfsdk:"text" json:"text,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						DynamicMetadataValues *[]struct {
							JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
							Key               *string `tfsdk:"key" json:"key,omitempty"`
							MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
							Value             *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
						EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
						Extractors       *struct {
							Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
							Header          *string            `tfsdk:"header" json:"header,omitempty"`
							Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
							Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
							ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
							Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
						} `tfsdk:"extractors" json:"extractors,omitempty"`
						Headers *struct {
							Text *string `tfsdk:"text" json:"text,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						HeadersToAppend *[]struct {
							Key   *string `tfsdk:"key" json:"key,omitempty"`
							Value *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
						HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
						IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
						MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
						MergeJsonKeys         *struct {
							JsonKeys *struct {
								OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
								Tmpl          *struct {
									Text *string `tfsdk:"text" json:"text,omitempty"`
								} `tfsdk:"tmpl" json:"tmpl,omitempty"`
							} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
						} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
						ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
						Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
					} `tfsdk:"transformations" json:"transformations,omitempty"`
				} `tfsdk:"rest" json:"rest,omitempty"`
			} `tfsdk:"service_spec" json:"serviceSpec,omitempty"`
		} `tfsdk:"pipe" json:"pipe,omitempty"`
		PreconnectPolicy *struct {
			PerUpstreamPreconnectRatio *float64 `tfsdk:"per_upstream_preconnect_ratio" json:"perUpstreamPreconnectRatio,omitempty"`
			PredictivePreconnectRatio  *float64 `tfsdk:"predictive_preconnect_ratio" json:"predictivePreconnectRatio,omitempty"`
		} `tfsdk:"preconnect_policy" json:"preconnectPolicy,omitempty"`
		ProtocolSelection    *string `tfsdk:"protocol_selection" json:"protocolSelection,omitempty"`
		ProxyProtocolVersion *string `tfsdk:"proxy_protocol_version" json:"proxyProtocolVersion,omitempty"`
		RespectDnsTtl        *bool   `tfsdk:"respect_dns_ttl" json:"respectDnsTtl,omitempty"`
		SslConfig            *struct {
			AllowRenegotiation *bool     `tfsdk:"allow_renegotiation" json:"allowRenegotiation,omitempty"`
			AlpnProtocols      *[]string `tfsdk:"alpn_protocols" json:"alpnProtocols,omitempty"`
			OneWayTls          *bool     `tfsdk:"one_way_tls" json:"oneWayTls,omitempty"`
			Parameters         *struct {
				CipherSuites           *[]string `tfsdk:"cipher_suites" json:"cipherSuites,omitempty"`
				EcdhCurves             *[]string `tfsdk:"ecdh_curves" json:"ecdhCurves,omitempty"`
				MaximumProtocolVersion *string   `tfsdk:"maximum_protocol_version" json:"maximumProtocolVersion,omitempty"`
				MinimumProtocolVersion *string   `tfsdk:"minimum_protocol_version" json:"minimumProtocolVersion,omitempty"`
			} `tfsdk:"parameters" json:"parameters,omitempty"`
			Sds *struct {
				CallCredentials *struct {
					FileCredentialSource *struct {
						Header        *string `tfsdk:"header" json:"header,omitempty"`
						TokenFileName *string `tfsdk:"token_file_name" json:"tokenFileName,omitempty"`
					} `tfsdk:"file_credential_source" json:"fileCredentialSource,omitempty"`
				} `tfsdk:"call_credentials" json:"callCredentials,omitempty"`
				CertificatesSecretName *string `tfsdk:"certificates_secret_name" json:"certificatesSecretName,omitempty"`
				ClusterName            *string `tfsdk:"cluster_name" json:"clusterName,omitempty"`
				TargetUri              *string `tfsdk:"target_uri" json:"targetUri,omitempty"`
				ValidationContextName  *string `tfsdk:"validation_context_name" json:"validationContextName,omitempty"`
			} `tfsdk:"sds" json:"sds,omitempty"`
			SecretRef *struct {
				Name      *string `tfsdk:"name" json:"name,omitempty"`
				Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
			} `tfsdk:"secret_ref" json:"secretRef,omitempty"`
			Sni      *string `tfsdk:"sni" json:"sni,omitempty"`
			SslFiles *struct {
				OcspStaple *string `tfsdk:"ocsp_staple" json:"ocspStaple,omitempty"`
				RootCa     *string `tfsdk:"root_ca" json:"rootCa,omitempty"`
				TlsCert    *string `tfsdk:"tls_cert" json:"tlsCert,omitempty"`
				TlsKey     *string `tfsdk:"tls_key" json:"tlsKey,omitempty"`
			} `tfsdk:"ssl_files" json:"sslFiles,omitempty"`
			VerifySubjectAltName *[]string `tfsdk:"verify_subject_alt_name" json:"verifySubjectAltName,omitempty"`
		} `tfsdk:"ssl_config" json:"sslConfig,omitempty"`
		Static *struct {
			AutoSniRewrite *bool `tfsdk:"auto_sni_rewrite" json:"autoSniRewrite,omitempty"`
			Hosts          *[]struct {
				Addr              *string `tfsdk:"addr" json:"addr,omitempty"`
				HealthCheckConfig *struct {
					Method *string `tfsdk:"method" json:"method,omitempty"`
					Path   *string `tfsdk:"path" json:"path,omitempty"`
				} `tfsdk:"health_check_config" json:"healthCheckConfig,omitempty"`
				LoadBalancingWeight *int64             `tfsdk:"load_balancing_weight" json:"loadBalancingWeight,omitempty"`
				Metadata            *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"`
				Port                *int64             `tfsdk:"port" json:"port,omitempty"`
				SniAddr             *string            `tfsdk:"sni_addr" json:"sniAddr,omitempty"`
			} `tfsdk:"hosts" json:"hosts,omitempty"`
			ServiceSpec *struct {
				Graphql *struct {
					Endpoint *struct {
						Url *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"endpoint" json:"endpoint,omitempty"`
				} `tfsdk:"graphql" json:"graphql,omitempty"`
				Grpc *struct {
					Descriptors  *string `tfsdk:"descriptors" json:"descriptors,omitempty"`
					GrpcServices *[]struct {
						FunctionNames *[]string `tfsdk:"function_names" json:"functionNames,omitempty"`
						PackageName   *string   `tfsdk:"package_name" json:"packageName,omitempty"`
						ServiceName   *string   `tfsdk:"service_name" json:"serviceName,omitempty"`
					} `tfsdk:"grpc_services" json:"grpcServices,omitempty"`
				} `tfsdk:"grpc" json:"grpc,omitempty"`
				GrpcJsonTranscoder *struct {
					AutoMapping                  *bool     `tfsdk:"auto_mapping" json:"autoMapping,omitempty"`
					ConvertGrpcStatus            *bool     `tfsdk:"convert_grpc_status" json:"convertGrpcStatus,omitempty"`
					IgnoreUnknownQueryParameters *bool     `tfsdk:"ignore_unknown_query_parameters" json:"ignoreUnknownQueryParameters,omitempty"`
					IgnoredQueryParameters       *[]string `tfsdk:"ignored_query_parameters" json:"ignoredQueryParameters,omitempty"`
					MatchIncomingRequestRoute    *bool     `tfsdk:"match_incoming_request_route" json:"matchIncomingRequestRoute,omitempty"`
					PrintOptions                 *struct {
						AddWhitespace              *bool `tfsdk:"add_whitespace" json:"addWhitespace,omitempty"`
						AlwaysPrintEnumsAsInts     *bool `tfsdk:"always_print_enums_as_ints" json:"alwaysPrintEnumsAsInts,omitempty"`
						AlwaysPrintPrimitiveFields *bool `tfsdk:"always_print_primitive_fields" json:"alwaysPrintPrimitiveFields,omitempty"`
						PreserveProtoFieldNames    *bool `tfsdk:"preserve_proto_field_names" json:"preserveProtoFieldNames,omitempty"`
					} `tfsdk:"print_options" json:"printOptions,omitempty"`
					ProtoDescriptor          *string `tfsdk:"proto_descriptor" json:"protoDescriptor,omitempty"`
					ProtoDescriptorBin       *string `tfsdk:"proto_descriptor_bin" json:"protoDescriptorBin,omitempty"`
					ProtoDescriptorConfigMap *struct {
						ConfigMapRef *struct {
							Name      *string `tfsdk:"name" json:"name,omitempty"`
							Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"`
						} `tfsdk:"config_map_ref" json:"configMapRef,omitempty"`
						Key *string `tfsdk:"key" json:"key,omitempty"`
					} `tfsdk:"proto_descriptor_config_map" json:"protoDescriptorConfigMap,omitempty"`
					Services *[]string `tfsdk:"services" json:"services,omitempty"`
				} `tfsdk:"grpc_json_transcoder" json:"grpcJsonTranscoder,omitempty"`
				Rest *struct {
					SwaggerInfo *struct {
						Inline *string `tfsdk:"inline" json:"inline,omitempty"`
						Url    *string `tfsdk:"url" json:"url,omitempty"`
					} `tfsdk:"swagger_info" json:"swaggerInfo,omitempty"`
					Transformations *struct {
						AdvancedTemplates *bool `tfsdk:"advanced_templates" json:"advancedTemplates,omitempty"`
						Body              *struct {
							Text *string `tfsdk:"text" json:"text,omitempty"`
						} `tfsdk:"body" json:"body,omitempty"`
						DynamicMetadataValues *[]struct {
							JsonToProto       *bool   `tfsdk:"json_to_proto" json:"jsonToProto,omitempty"`
							Key               *string `tfsdk:"key" json:"key,omitempty"`
							MetadataNamespace *string `tfsdk:"metadata_namespace" json:"metadataNamespace,omitempty"`
							Value             *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"dynamic_metadata_values" json:"dynamicMetadataValues,omitempty"`
						EscapeCharacters *bool `tfsdk:"escape_characters" json:"escapeCharacters,omitempty"`
						Extractors       *struct {
							Body            *map[string]string `tfsdk:"body" json:"body,omitempty"`
							Header          *string            `tfsdk:"header" json:"header,omitempty"`
							Mode            *string            `tfsdk:"mode" json:"mode,omitempty"`
							Regex           *string            `tfsdk:"regex" json:"regex,omitempty"`
							ReplacementText *string            `tfsdk:"replacement_text" json:"replacementText,omitempty"`
							Subgroup        *int64             `tfsdk:"subgroup" json:"subgroup,omitempty"`
						} `tfsdk:"extractors" json:"extractors,omitempty"`
						Headers *struct {
							Text *string `tfsdk:"text" json:"text,omitempty"`
						} `tfsdk:"headers" json:"headers,omitempty"`
						HeadersToAppend *[]struct {
							Key   *string `tfsdk:"key" json:"key,omitempty"`
							Value *struct {
								Text *string `tfsdk:"text" json:"text,omitempty"`
							} `tfsdk:"value" json:"value,omitempty"`
						} `tfsdk:"headers_to_append" json:"headersToAppend,omitempty"`
						HeadersToRemove       *[]string          `tfsdk:"headers_to_remove" json:"headersToRemove,omitempty"`
						IgnoreErrorOnParse    *bool              `tfsdk:"ignore_error_on_parse" json:"ignoreErrorOnParse,omitempty"`
						MergeExtractorsToBody *map[string]string `tfsdk:"merge_extractors_to_body" json:"mergeExtractorsToBody,omitempty"`
						MergeJsonKeys         *struct {
							JsonKeys *struct {
								OverrideEmpty *bool `tfsdk:"override_empty" json:"overrideEmpty,omitempty"`
								Tmpl          *struct {
									Text *string `tfsdk:"text" json:"text,omitempty"`
								} `tfsdk:"tmpl" json:"tmpl,omitempty"`
							} `tfsdk:"json_keys" json:"jsonKeys,omitempty"`
						} `tfsdk:"merge_json_keys" json:"mergeJsonKeys,omitempty"`
						ParseBodyBehavior *string            `tfsdk:"parse_body_behavior" json:"parseBodyBehavior,omitempty"`
						Passthrough       *map[string]string `tfsdk:"passthrough" json:"passthrough,omitempty"`
					} `tfsdk:"transformations" json:"transformations,omitempty"`
				} `tfsdk:"rest" json:"rest,omitempty"`
			} `tfsdk:"service_spec" json:"serviceSpec,omitempty"`
			UseTls *bool `tfsdk:"use_tls" json:"useTls,omitempty"`
		} `tfsdk:"static" json:"static,omitempty"`
		UseHttp2 *bool `tfsdk:"use_http2" json:"useHttp2,omitempty"`
	} `tfsdk:"spec" json:"spec,omitempty"`
}

Jump to

Keyboard shortcuts

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