text: # coding=utf-8
  # *** WARNING: this file was generated by the Pulumi SDK Generator. ***
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
  
  import warnings
  import pulumi
  import pulumi.runtime
  from typing import Any, Mapping, Optional, Sequence, Union, overload
  from ... import _utilities
  
  __all__ = ['RegionTargetHttpProxyArgs', 'RegionTargetHttpProxy']
  
  @pulumi.input_type
  class RegionTargetHttpProxyArgs:
      def __init__(__self__, *,
                   region: pulumi.Input[str],
                   description: Optional[pulumi.Input[str]] = None,
                   http_filters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   name: Optional[pulumi.Input[str]] = None,
                   project: Optional[pulumi.Input[str]] = None,
                   proxy_bind: Optional[pulumi.Input[bool]] = None,
                   request_id: Optional[pulumi.Input[str]] = None,
                   url_map: Optional[pulumi.Input[str]] = None):
          """
          The set of arguments for constructing a RegionTargetHttpProxy resource.
          :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] http_filters: URLs to networkservices.HttpFilter resources enabled for xDS clients using this configuration. For example, https://networkservices.googleapis.com/v1alpha1/projects/project/locations/ locationhttpFilters/httpFilter Only filters that handle outbound connection and stream events may be specified. These filters work in conjunction with a default set of HTTP filters that may already be configured by Traffic Director. Traffic Director will determine the final location of these filters within xDS configuration based on the name of the HTTP filter. If Traffic Director positions multiple filters at the same location, those filters will be in the same order as specified in this list. httpFilters only applies for loadbalancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
          :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
          :param pulumi.Input[bool] proxy_bind: This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.
          :param pulumi.Input[str] url_map: URL to the UrlMap resource that defines the mapping from URL to the BackendService.
          """
          pulumi.set(__self__, "region", region)
          if description is not None:
              pulumi.set(__self__, "description", description)
          if http_filters is not None:
              pulumi.set(__self__, "http_filters", http_filters)
          if name is not None:
              pulumi.set(__self__, "name", name)
          if project is not None:
              pulumi.set(__self__, "project", project)
          if proxy_bind is not None:
              pulumi.set(__self__, "proxy_bind", proxy_bind)
          if request_id is not None:
              pulumi.set(__self__, "request_id", request_id)
          if url_map is not None:
              pulumi.set(__self__, "url_map", url_map)
  
      @property
      @pulumi.getter
      def region(self) -> pulumi.Input[str]:
          return pulumi.get(self, "region")
  
      @region.setter
      def region(self, value: pulumi.Input[str]):
          pulumi.set(self, "region", value)
  
      @property
      @pulumi.getter
      def description(self) -> Optional[pulumi.Input[str]]:
          """
          An optional description of this resource. Provide this property when you create the resource.
          """
          return pulumi.get(self, "description")
  
      @description.setter
      def description(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "description", value)
  
      @property
      @pulumi.getter(name="httpFilters")
      def http_filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
          """
          URLs to networkservices.HttpFilter resources enabled for xDS clients using this configuration. For example, https://networkservices.googleapis.com/v1alpha1/projects/project/locations/ locationhttpFilters/httpFilter Only filters that handle outbound connection and stream events may be specified. These filters work in conjunction with a default set of HTTP filters that may already be configured by Traffic Director. Traffic Director will determine the final location of these filters within xDS configuration based on the name of the HTTP filter. If Traffic Director positions multiple filters at the same location, those filters will be in the same order as specified in this list. httpFilters only applies for loadbalancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
          """
          return pulumi.get(self, "http_filters")
  
      @http_filters.setter
      def http_filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
          pulumi.set(self, "http_filters", value)
  
      @property
      @pulumi.getter
      def name(self) -> Optional[pulumi.Input[str]]:
          """
          Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
          """
          return pulumi.get(self, "name")
  
      @name.setter
      def name(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "name", value)
  
      @property
      @pulumi.getter
      def project(self) -> Optional[pulumi.Input[str]]:
          return pulumi.get(self, "project")
  
      @project.setter
      def project(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "project", value)
  
      @property
      @pulumi.getter(name="proxyBind")
      def proxy_bind(self) -> Optional[pulumi.Input[bool]]:
          """
          This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.
          """
          return pulumi.get(self, "proxy_bind")
  
      @proxy_bind.setter
      def proxy_bind(self, value: Optional[pulumi.Input[bool]]):
          pulumi.set(self, "proxy_bind", value)
  
      @property
      @pulumi.getter(name="requestId")
      def request_id(self) -> Optional[pulumi.Input[str]]:
          return pulumi.get(self, "request_id")
  
      @request_id.setter
      def request_id(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "request_id", value)
  
      @property
      @pulumi.getter(name="urlMap")
      def url_map(self) -> Optional[pulumi.Input[str]]:
          """
          URL to the UrlMap resource that defines the mapping from URL to the BackendService.
          """
          return pulumi.get(self, "url_map")
  
      @url_map.setter
      def url_map(self, value: Optional[pulumi.Input[str]]):
          pulumi.set(self, "url_map", value)
  
  
  class RegionTargetHttpProxy(pulumi.CustomResource):
      @overload
      def __init__(__self__,
                   resource_name: str,
                   opts: Optional[pulumi.ResourceOptions] = None,
                   description: Optional[pulumi.Input[str]] = None,
                   http_filters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   name: Optional[pulumi.Input[str]] = None,
                   project: Optional[pulumi.Input[str]] = None,
                   proxy_bind: Optional[pulumi.Input[bool]] = None,
                   region: Optional[pulumi.Input[str]] = None,
                   request_id: Optional[pulumi.Input[str]] = None,
                   url_map: Optional[pulumi.Input[str]] = None,
                   __props__=None):
          """
          Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.
  
          :param str resource_name: The name of the resource.
          :param pulumi.ResourceOptions opts: Options for the resource.
          :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource.
          :param pulumi.Input[Sequence[pulumi.Input[str]]] http_filters: URLs to networkservices.HttpFilter resources enabled for xDS clients using this configuration. For example, https://networkservices.googleapis.com/v1alpha1/projects/project/locations/ locationhttpFilters/httpFilter Only filters that handle outbound connection and stream events may be specified. These filters work in conjunction with a default set of HTTP filters that may already be configured by Traffic Director. Traffic Director will determine the final location of these filters within xDS configuration based on the name of the HTTP filter. If Traffic Director positions multiple filters at the same location, those filters will be in the same order as specified in this list. httpFilters only applies for loadbalancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
          :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
          :param pulumi.Input[bool] proxy_bind: This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.
          :param pulumi.Input[str] url_map: URL to the UrlMap resource that defines the mapping from URL to the BackendService.
          """
          ...
      @overload
      def __init__(__self__,
                   resource_name: str,
                   args: RegionTargetHttpProxyArgs,
                   opts: Optional[pulumi.ResourceOptions] = None):
          """
          Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.
  
          :param str resource_name: The name of the resource.
          :param RegionTargetHttpProxyArgs args: The arguments to use to populate this resource's properties.
          :param pulumi.ResourceOptions opts: Options for the resource.
          """
          ...
      def __init__(__self__, resource_name: str, *args, **kwargs):
          resource_args, opts = _utilities.get_resource_args_opts(RegionTargetHttpProxyArgs, pulumi.ResourceOptions, *args, **kwargs)
          if resource_args is not None:
              __self__._internal_init(resource_name, opts, **resource_args.__dict__)
          else:
              __self__._internal_init(resource_name, *args, **kwargs)
  
      def _internal_init(__self__,
                   resource_name: str,
                   opts: Optional[pulumi.ResourceOptions] = None,
                   description: Optional[pulumi.Input[str]] = None,
                   http_filters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                   name: Optional[pulumi.Input[str]] = None,
                   project: Optional[pulumi.Input[str]] = None,
                   proxy_bind: Optional[pulumi.Input[bool]] = None,
                   region: Optional[pulumi.Input[str]] = None,
                   request_id: Optional[pulumi.Input[str]] = None,
                   url_map: Optional[pulumi.Input[str]] = None,
                   __props__=None):
          if opts is None:
              opts = pulumi.ResourceOptions()
          if not isinstance(opts, pulumi.ResourceOptions):
              raise TypeError('Expected resource options to be a ResourceOptions instance')
          if opts.version is None:
              opts.version = _utilities.get_version()
          if opts.id is None:
              if __props__ is not None:
                  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
              __props__ = RegionTargetHttpProxyArgs.__new__(RegionTargetHttpProxyArgs)
  
              __props__.__dict__["description"] = description
              __props__.__dict__["http_filters"] = http_filters
              __props__.__dict__["name"] = name
              __props__.__dict__["project"] = project
              __props__.__dict__["proxy_bind"] = proxy_bind
              if region is None and not opts.urn:
                  raise TypeError("Missing required property 'region'")
              __props__.__dict__["region"] = region
              __props__.__dict__["request_id"] = request_id
              __props__.__dict__["url_map"] = url_map
              __props__.__dict__["creation_timestamp"] = None
              __props__.__dict__["fingerprint"] = None
              __props__.__dict__["kind"] = None
              __props__.__dict__["self_link"] = None
              __props__.__dict__["self_link_with_id"] = None
          super(RegionTargetHttpProxy, __self__).__init__(
              'google-native:compute/alpha:RegionTargetHttpProxy',
              resource_name,
              __props__,
              opts)
  
      @staticmethod
      def get(resource_name: str,
              id: pulumi.Input[str],
              opts: Optional[pulumi.ResourceOptions] = None) -> 'RegionTargetHttpProxy':
          """
          Get an existing RegionTargetHttpProxy resource's state with the given name, id, and optional extra
          properties used to qualify the lookup.
  
          :param str resource_name: The unique name of the resulting resource.
          :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
          :param pulumi.ResourceOptions opts: Options for the resource.
          """
          opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
  
          __props__ = RegionTargetHttpProxyArgs.__new__(RegionTargetHttpProxyArgs)
  
          __props__.__dict__["creation_timestamp"] = None
          __props__.__dict__["description"] = None
          __props__.__dict__["fingerprint"] = None
          __props__.__dict__["http_filters"] = None
          __props__.__dict__["kind"] = None
          __props__.__dict__["name"] = None
          __props__.__dict__["proxy_bind"] = None
          __props__.__dict__["region"] = None
          __props__.__dict__["self_link"] = None
          __props__.__dict__["self_link_with_id"] = None
          __props__.__dict__["url_map"] = None
          return RegionTargetHttpProxy(resource_name, opts=opts, __props__=__props__)
  
      @property
      @pulumi.getter(name="creationTimestamp")
      def creation_timestamp(self) -> pulumi.Output[str]:
          """
          Creation timestamp in RFC3339 text format.
          """
          return pulumi.get(self, "creation_timestamp")
  
      @property
      @pulumi.getter
      def description(self) -> pulumi.Output[str]:
          """
          An optional description of this resource. Provide this property when you create the resource.
          """
          return pulumi.get(self, "description")
  
      @property
      @pulumi.getter
      def fingerprint(self) -> pulumi.Output[str]:
          """
          Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in order to patch/update the TargetHttpProxy; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the TargetHttpProxy.
          """
          return pulumi.get(self, "fingerprint")
  
      @property
      @pulumi.getter(name="httpFilters")
      def http_filters(self) -> pulumi.Output[Sequence[str]]:
          """
          URLs to networkservices.HttpFilter resources enabled for xDS clients using this configuration. For example, https://networkservices.googleapis.com/v1alpha1/projects/project/locations/ locationhttpFilters/httpFilter Only filters that handle outbound connection and stream events may be specified. These filters work in conjunction with a default set of HTTP filters that may already be configured by Traffic Director. Traffic Director will determine the final location of these filters within xDS configuration based on the name of the HTTP filter. If Traffic Director positions multiple filters at the same location, those filters will be in the same order as specified in this list. httpFilters only applies for loadbalancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
          """
          return pulumi.get(self, "http_filters")
  
      @property
      @pulumi.getter
      def kind(self) -> pulumi.Output[str]:
          """
          Type of resource. Always compute#targetHttpProxy for target HTTP proxies.
          """
          return pulumi.get(self, "kind")
  
      @property
      @pulumi.getter
      def name(self) -> pulumi.Output[str]:
          """
          Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
          """
          return pulumi.get(self, "name")
  
      @property
      @pulumi.getter(name="proxyBind")
      def proxy_bind(self) -> pulumi.Output[bool]:
          """
          This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.
          """
          return pulumi.get(self, "proxy_bind")
  
      @property
      @pulumi.getter
      def region(self) -> pulumi.Output[str]:
          """
          URL of the region where the regional Target HTTP Proxy resides. This field is not applicable to global Target HTTP Proxies.
          """
          return pulumi.get(self, "region")
  
      @property
      @pulumi.getter(name="selfLink")
      def self_link(self) -> pulumi.Output[str]:
          """
          Server-defined URL for the resource.
          """
          return pulumi.get(self, "self_link")
  
      @property
      @pulumi.getter(name="selfLinkWithId")
      def self_link_with_id(self) -> pulumi.Output[str]:
          """
          Server-defined URL for this resource with the resource id.
          """
          return pulumi.get(self, "self_link_with_id")
  
      @property
      @pulumi.getter(name="urlMap")
      def url_map(self) -> pulumi.Output[str]:
          """
          URL to the UrlMap resource that defines the mapping from URL to the BackendService.
          """
          return pulumi.get(self, "url_map")
  
  