Network Services API . projects . locations . grpcRoutes

Instance Methods

close()

Close httplib2 connections.

create(parent, body=None, grpcRouteId=None, x__xgafv=None)

Creates a new GrpcRoute in a given project and location.

delete(name, x__xgafv=None)

Deletes a single GrpcRoute.

get(name, x__xgafv=None)

Gets details of a single GrpcRoute.

list(parent, pageSize=None, pageToken=None, x__xgafv=None)

Lists GrpcRoutes in a given project and location.

list_next()

Retrieves the next page of results.

patch(name, body=None, updateMask=None, x__xgafv=None)

Updates the parameters of a single GrpcRoute.

Method Details

close()
Close httplib2 connections.
create(parent, body=None, grpcRouteId=None, x__xgafv=None)
Creates a new GrpcRoute in a given project and location.

Args:
  parent: string, Required. The parent resource of the GrpcRoute. Must be in the format `projects/*/locations/global`. (required)
  body: object, The request body.
    The object takes the form of:

{ # GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or Gateway resource is routed.
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "description": "A String", # Optional. A free-text description of the resource. Max length 1024 characters.
  "gateways": [ # Optional. Gateways defines a list of gateways this GrpcRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`
    "A String",
  ],
  "hostnames": [ # Required. Service hostnames with an optional port for which this route describes traffic. Format: [:] Hostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 2 notable exceptions: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be "precise" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or "wildcard", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateway must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same route, it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`. If a port is specified, then gRPC clients must use the channel URI with the port to match this rule (i.e. "xds:///service:123"), otherwise they must supply the URI without a port (i.e. "xds:///service").
    "A String",
  ],
  "labels": { # Optional. Set of label tags associated with the GrpcRoute resource.
    "a_key": "A String",
  },
  "meshes": [ # Optional. Meshes defines a list of meshes this GrpcRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/`
    "A String",
  ],
  "name": "A String", # Required. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/`
  "rules": [ # Required. A list of detailed rules defining how to route traffic. Within a single GrpcRoute, the GrpcRoute.RouteAction associated with the first matching GrpcRoute.RouteRule will be executed. At least one rule must be supplied.
    { # Describes how to route traffic.
      "action": { # Specifies how to route matched traffic. # Required. A detailed rule defining how to route traffic. This field is required.
        "destinations": [ # Optional. The destination services to which traffic should be forwarded. If multiple destinations are specified, traffic will be split between Backend Service(s) according to the weight field of these destinations.
          { # The destination to which traffic will be routed.
            "serviceName": "A String", # Required. The URL of a destination service to which to route traffic. Must refer to either a BackendService or ServiceDirectoryService.
            "weight": 42, # Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.
          },
        ],
        "faultInjectionPolicy": { # The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. # Optional. The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy
          "abort": { # Specification of how client requests are aborted as part of fault injection before being sent to a destination. # The specification for aborting to client requests.
            "httpStatus": 42, # The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive.
            "percentage": 42, # The percentage of traffic which will be aborted. The value must be between [0, 100]
          },
          "delay": { # Specification of how client requests are delayed as part of fault injection before being sent to a destination. # The specification for injecting delay to client requests.
            "fixedDelay": "A String", # Specify a fixed delay before forwarding the request.
            "percentage": 42, # The percentage of traffic on which delay will be injected. The value must be between [0, 100]
          },
        },
        "idleTimeout": "A String", # Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 1 hour. If set to 0s, the timeout will be disabled.
        "retryPolicy": { # The specifications for retries. # Optional. Specifies the retry policy associated with this route.
          "numRetries": 42, # Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1.
          "retryConditions": [ # - connect-failure: Router will retry on failures connecting to Backend Services, for example due to connection timeouts. - refused-stream: Router will retry if the backend service resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: Router will retry if the gRPC status code in the response header is set to cancelled - deadline-exceeded: Router will retry if the gRPC status code in the response header is set to deadline-exceeded - resource-exhausted: Router will retry if the gRPC status code in the response header is set to resource-exhausted - unavailable: Router will retry if the gRPC status code in the response header is set to unavailable
            "A String",
          ],
        },
        "statefulSessionAffinity": { # The specification for cookie-based stateful session affinity where the date plane supplies a “session cookie” with the name "GSSA" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next. # Optional. Specifies cookie-based stateful session affinity.
          "cookieTtl": "A String", # Required. The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.
        },
        "timeout": "A String", # Optional. Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries.
      },
      "matches": [ # Optional. Matches define conditions used for matching the rule against incoming gRPC requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic.
        { # Criteria for matching traffic. A RouteMatch will be considered to match when all supplied fields match.
          "headers": [ # Optional. Specifies a collection of headers to match.
            { # A match against a collection of headers.
              "key": "A String", # Required. The key of the header.
              "type": "A String", # Optional. Specifies how to match against the value of the header. If not specified, a default value of EXACT is used.
              "value": "A String", # Required. The value of the header.
            },
          ],
          "method": { # Specifies a match against a method. # Optional. A gRPC method to match against. If this field is empty or omitted, will match all methods.
            "caseSensitive": True or False, # Optional. Specifies that matches are case sensitive. The default value is true. case_sensitive must not be used with a type of REGULAR_EXPRESSION.
            "grpcMethod": "A String", # Required. Name of the method to match against. If unspecified, will match all methods.
            "grpcService": "A String", # Required. Name of the service to match against. If unspecified, will match all services.
            "type": "A String", # Optional. Specifies how to match against the name. If not specified, a default value of "EXACT" is used.
          },
        },
      ],
    },
  ],
  "selfLink": "A String", # Output only. Server-defined URL of this resource
  "updateTime": "A String", # Output only. The timestamp when the resource was updated.
}

  grpcRouteId: string, Required. Short name of the GrpcRoute resource to be created.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
delete(name, x__xgafv=None)
Deletes a single GrpcRoute.

Args:
  name: string, Required. A name of the GrpcRoute to delete. Must be in the format `projects/*/locations/global/grpcRoutes/*`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
get(name, x__xgafv=None)
Gets details of a single GrpcRoute.

Args:
  name: string, Required. A name of the GrpcRoute to get. Must be in the format `projects/*/locations/global/grpcRoutes/*`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or Gateway resource is routed.
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "description": "A String", # Optional. A free-text description of the resource. Max length 1024 characters.
  "gateways": [ # Optional. Gateways defines a list of gateways this GrpcRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`
    "A String",
  ],
  "hostnames": [ # Required. Service hostnames with an optional port for which this route describes traffic. Format: [:] Hostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 2 notable exceptions: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be "precise" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or "wildcard", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateway must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same route, it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`. If a port is specified, then gRPC clients must use the channel URI with the port to match this rule (i.e. "xds:///service:123"), otherwise they must supply the URI without a port (i.e. "xds:///service").
    "A String",
  ],
  "labels": { # Optional. Set of label tags associated with the GrpcRoute resource.
    "a_key": "A String",
  },
  "meshes": [ # Optional. Meshes defines a list of meshes this GrpcRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/`
    "A String",
  ],
  "name": "A String", # Required. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/`
  "rules": [ # Required. A list of detailed rules defining how to route traffic. Within a single GrpcRoute, the GrpcRoute.RouteAction associated with the first matching GrpcRoute.RouteRule will be executed. At least one rule must be supplied.
    { # Describes how to route traffic.
      "action": { # Specifies how to route matched traffic. # Required. A detailed rule defining how to route traffic. This field is required.
        "destinations": [ # Optional. The destination services to which traffic should be forwarded. If multiple destinations are specified, traffic will be split between Backend Service(s) according to the weight field of these destinations.
          { # The destination to which traffic will be routed.
            "serviceName": "A String", # Required. The URL of a destination service to which to route traffic. Must refer to either a BackendService or ServiceDirectoryService.
            "weight": 42, # Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.
          },
        ],
        "faultInjectionPolicy": { # The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. # Optional. The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy
          "abort": { # Specification of how client requests are aborted as part of fault injection before being sent to a destination. # The specification for aborting to client requests.
            "httpStatus": 42, # The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive.
            "percentage": 42, # The percentage of traffic which will be aborted. The value must be between [0, 100]
          },
          "delay": { # Specification of how client requests are delayed as part of fault injection before being sent to a destination. # The specification for injecting delay to client requests.
            "fixedDelay": "A String", # Specify a fixed delay before forwarding the request.
            "percentage": 42, # The percentage of traffic on which delay will be injected. The value must be between [0, 100]
          },
        },
        "idleTimeout": "A String", # Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 1 hour. If set to 0s, the timeout will be disabled.
        "retryPolicy": { # The specifications for retries. # Optional. Specifies the retry policy associated with this route.
          "numRetries": 42, # Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1.
          "retryConditions": [ # - connect-failure: Router will retry on failures connecting to Backend Services, for example due to connection timeouts. - refused-stream: Router will retry if the backend service resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: Router will retry if the gRPC status code in the response header is set to cancelled - deadline-exceeded: Router will retry if the gRPC status code in the response header is set to deadline-exceeded - resource-exhausted: Router will retry if the gRPC status code in the response header is set to resource-exhausted - unavailable: Router will retry if the gRPC status code in the response header is set to unavailable
            "A String",
          ],
        },
        "statefulSessionAffinity": { # The specification for cookie-based stateful session affinity where the date plane supplies a “session cookie” with the name "GSSA" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next. # Optional. Specifies cookie-based stateful session affinity.
          "cookieTtl": "A String", # Required. The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.
        },
        "timeout": "A String", # Optional. Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries.
      },
      "matches": [ # Optional. Matches define conditions used for matching the rule against incoming gRPC requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic.
        { # Criteria for matching traffic. A RouteMatch will be considered to match when all supplied fields match.
          "headers": [ # Optional. Specifies a collection of headers to match.
            { # A match against a collection of headers.
              "key": "A String", # Required. The key of the header.
              "type": "A String", # Optional. Specifies how to match against the value of the header. If not specified, a default value of EXACT is used.
              "value": "A String", # Required. The value of the header.
            },
          ],
          "method": { # Specifies a match against a method. # Optional. A gRPC method to match against. If this field is empty or omitted, will match all methods.
            "caseSensitive": True or False, # Optional. Specifies that matches are case sensitive. The default value is true. case_sensitive must not be used with a type of REGULAR_EXPRESSION.
            "grpcMethod": "A String", # Required. Name of the method to match against. If unspecified, will match all methods.
            "grpcService": "A String", # Required. Name of the service to match against. If unspecified, will match all services.
            "type": "A String", # Optional. Specifies how to match against the name. If not specified, a default value of "EXACT" is used.
          },
        },
      ],
    },
  ],
  "selfLink": "A String", # Output only. Server-defined URL of this resource
  "updateTime": "A String", # Output only. The timestamp when the resource was updated.
}
list(parent, pageSize=None, pageToken=None, x__xgafv=None)
Lists GrpcRoutes in a given project and location.

Args:
  parent: string, Required. The project and location from which the GrpcRoutes should be listed, specified in the format `projects/*/locations/global`. (required)
  pageSize: integer, Maximum number of GrpcRoutes to return per call.
  pageToken: string, The value returned by the last `ListGrpcRoutesResponse` Indicates that this is a continuation of a prior `ListGrpcRoutes` call, and that the system should return the next page of data.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response returned by the ListGrpcRoutes method.
  "grpcRoutes": [ # List of GrpcRoute resources.
    { # GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or Gateway resource is routed.
      "createTime": "A String", # Output only. The timestamp when the resource was created.
      "description": "A String", # Optional. A free-text description of the resource. Max length 1024 characters.
      "gateways": [ # Optional. Gateways defines a list of gateways this GrpcRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`
        "A String",
      ],
      "hostnames": [ # Required. Service hostnames with an optional port for which this route describes traffic. Format: [:] Hostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 2 notable exceptions: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be "precise" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or "wildcard", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateway must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same route, it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`. If a port is specified, then gRPC clients must use the channel URI with the port to match this rule (i.e. "xds:///service:123"), otherwise they must supply the URI without a port (i.e. "xds:///service").
        "A String",
      ],
      "labels": { # Optional. Set of label tags associated with the GrpcRoute resource.
        "a_key": "A String",
      },
      "meshes": [ # Optional. Meshes defines a list of meshes this GrpcRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/`
        "A String",
      ],
      "name": "A String", # Required. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/`
      "rules": [ # Required. A list of detailed rules defining how to route traffic. Within a single GrpcRoute, the GrpcRoute.RouteAction associated with the first matching GrpcRoute.RouteRule will be executed. At least one rule must be supplied.
        { # Describes how to route traffic.
          "action": { # Specifies how to route matched traffic. # Required. A detailed rule defining how to route traffic. This field is required.
            "destinations": [ # Optional. The destination services to which traffic should be forwarded. If multiple destinations are specified, traffic will be split between Backend Service(s) according to the weight field of these destinations.
              { # The destination to which traffic will be routed.
                "serviceName": "A String", # Required. The URL of a destination service to which to route traffic. Must refer to either a BackendService or ServiceDirectoryService.
                "weight": 42, # Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.
              },
            ],
            "faultInjectionPolicy": { # The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. # Optional. The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy
              "abort": { # Specification of how client requests are aborted as part of fault injection before being sent to a destination. # The specification for aborting to client requests.
                "httpStatus": 42, # The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive.
                "percentage": 42, # The percentage of traffic which will be aborted. The value must be between [0, 100]
              },
              "delay": { # Specification of how client requests are delayed as part of fault injection before being sent to a destination. # The specification for injecting delay to client requests.
                "fixedDelay": "A String", # Specify a fixed delay before forwarding the request.
                "percentage": 42, # The percentage of traffic on which delay will be injected. The value must be between [0, 100]
              },
            },
            "idleTimeout": "A String", # Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 1 hour. If set to 0s, the timeout will be disabled.
            "retryPolicy": { # The specifications for retries. # Optional. Specifies the retry policy associated with this route.
              "numRetries": 42, # Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1.
              "retryConditions": [ # - connect-failure: Router will retry on failures connecting to Backend Services, for example due to connection timeouts. - refused-stream: Router will retry if the backend service resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: Router will retry if the gRPC status code in the response header is set to cancelled - deadline-exceeded: Router will retry if the gRPC status code in the response header is set to deadline-exceeded - resource-exhausted: Router will retry if the gRPC status code in the response header is set to resource-exhausted - unavailable: Router will retry if the gRPC status code in the response header is set to unavailable
                "A String",
              ],
            },
            "statefulSessionAffinity": { # The specification for cookie-based stateful session affinity where the date plane supplies a “session cookie” with the name "GSSA" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next. # Optional. Specifies cookie-based stateful session affinity.
              "cookieTtl": "A String", # Required. The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.
            },
            "timeout": "A String", # Optional. Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries.
          },
          "matches": [ # Optional. Matches define conditions used for matching the rule against incoming gRPC requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic.
            { # Criteria for matching traffic. A RouteMatch will be considered to match when all supplied fields match.
              "headers": [ # Optional. Specifies a collection of headers to match.
                { # A match against a collection of headers.
                  "key": "A String", # Required. The key of the header.
                  "type": "A String", # Optional. Specifies how to match against the value of the header. If not specified, a default value of EXACT is used.
                  "value": "A String", # Required. The value of the header.
                },
              ],
              "method": { # Specifies a match against a method. # Optional. A gRPC method to match against. If this field is empty or omitted, will match all methods.
                "caseSensitive": True or False, # Optional. Specifies that matches are case sensitive. The default value is true. case_sensitive must not be used with a type of REGULAR_EXPRESSION.
                "grpcMethod": "A String", # Required. Name of the method to match against. If unspecified, will match all methods.
                "grpcService": "A String", # Required. Name of the service to match against. If unspecified, will match all services.
                "type": "A String", # Optional. Specifies how to match against the name. If not specified, a default value of "EXACT" is used.
              },
            },
          ],
        },
      ],
      "selfLink": "A String", # Output only. Server-defined URL of this resource
      "updateTime": "A String", # Output only. The timestamp when the resource was updated.
    },
  ],
  "nextPageToken": "A String", # If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.
}
list_next()
Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
patch(name, body=None, updateMask=None, x__xgafv=None)
Updates the parameters of a single GrpcRoute.

Args:
  name: string, Required. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/` (required)
  body: object, The request body.
    The object takes the form of:

{ # GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or Gateway resource is routed.
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "description": "A String", # Optional. A free-text description of the resource. Max length 1024 characters.
  "gateways": [ # Optional. Gateways defines a list of gateways this GrpcRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`
    "A String",
  ],
  "hostnames": [ # Required. Service hostnames with an optional port for which this route describes traffic. Format: [:] Hostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 2 notable exceptions: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be "precise" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or "wildcard", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateway must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same route, it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`. If a port is specified, then gRPC clients must use the channel URI with the port to match this rule (i.e. "xds:///service:123"), otherwise they must supply the URI without a port (i.e. "xds:///service").
    "A String",
  ],
  "labels": { # Optional. Set of label tags associated with the GrpcRoute resource.
    "a_key": "A String",
  },
  "meshes": [ # Optional. Meshes defines a list of meshes this GrpcRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/`
    "A String",
  ],
  "name": "A String", # Required. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/`
  "rules": [ # Required. A list of detailed rules defining how to route traffic. Within a single GrpcRoute, the GrpcRoute.RouteAction associated with the first matching GrpcRoute.RouteRule will be executed. At least one rule must be supplied.
    { # Describes how to route traffic.
      "action": { # Specifies how to route matched traffic. # Required. A detailed rule defining how to route traffic. This field is required.
        "destinations": [ # Optional. The destination services to which traffic should be forwarded. If multiple destinations are specified, traffic will be split between Backend Service(s) according to the weight field of these destinations.
          { # The destination to which traffic will be routed.
            "serviceName": "A String", # Required. The URL of a destination service to which to route traffic. Must refer to either a BackendService or ServiceDirectoryService.
            "weight": 42, # Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.
          },
        ],
        "faultInjectionPolicy": { # The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. # Optional. The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy
          "abort": { # Specification of how client requests are aborted as part of fault injection before being sent to a destination. # The specification for aborting to client requests.
            "httpStatus": 42, # The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive.
            "percentage": 42, # The percentage of traffic which will be aborted. The value must be between [0, 100]
          },
          "delay": { # Specification of how client requests are delayed as part of fault injection before being sent to a destination. # The specification for injecting delay to client requests.
            "fixedDelay": "A String", # Specify a fixed delay before forwarding the request.
            "percentage": 42, # The percentage of traffic on which delay will be injected. The value must be between [0, 100]
          },
        },
        "idleTimeout": "A String", # Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 1 hour. If set to 0s, the timeout will be disabled.
        "retryPolicy": { # The specifications for retries. # Optional. Specifies the retry policy associated with this route.
          "numRetries": 42, # Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1.
          "retryConditions": [ # - connect-failure: Router will retry on failures connecting to Backend Services, for example due to connection timeouts. - refused-stream: Router will retry if the backend service resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: Router will retry if the gRPC status code in the response header is set to cancelled - deadline-exceeded: Router will retry if the gRPC status code in the response header is set to deadline-exceeded - resource-exhausted: Router will retry if the gRPC status code in the response header is set to resource-exhausted - unavailable: Router will retry if the gRPC status code in the response header is set to unavailable
            "A String",
          ],
        },
        "statefulSessionAffinity": { # The specification for cookie-based stateful session affinity where the date plane supplies a “session cookie” with the name "GSSA" which encodes a specific destination host and each request containing that cookie will be directed to that host as long as the destination host remains up and healthy. The gRPC proxyless mesh library or sidecar proxy will manage the session cookie but the client application code is responsible for copying the cookie from each RPC in the session to the next. # Optional. Specifies cookie-based stateful session affinity.
          "cookieTtl": "A String", # Required. The cookie TTL value for the Set-Cookie header generated by the data plane. The lifetime of the cookie may be set to a value from 1 to 86400 seconds (24 hours) inclusive.
        },
        "timeout": "A String", # Optional. Specifies the timeout for selected route. Timeout is computed from the time the request has been fully processed (i.e. end of stream) up until the response has been completely processed. Timeout includes all retries.
      },
      "matches": [ # Optional. Matches define conditions used for matching the rule against incoming gRPC requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic.
        { # Criteria for matching traffic. A RouteMatch will be considered to match when all supplied fields match.
          "headers": [ # Optional. Specifies a collection of headers to match.
            { # A match against a collection of headers.
              "key": "A String", # Required. The key of the header.
              "type": "A String", # Optional. Specifies how to match against the value of the header. If not specified, a default value of EXACT is used.
              "value": "A String", # Required. The value of the header.
            },
          ],
          "method": { # Specifies a match against a method. # Optional. A gRPC method to match against. If this field is empty or omitted, will match all methods.
            "caseSensitive": True or False, # Optional. Specifies that matches are case sensitive. The default value is true. case_sensitive must not be used with a type of REGULAR_EXPRESSION.
            "grpcMethod": "A String", # Required. Name of the method to match against. If unspecified, will match all methods.
            "grpcService": "A String", # Required. Name of the service to match against. If unspecified, will match all services.
            "type": "A String", # Optional. Specifies how to match against the name. If not specified, a default value of "EXACT" is used.
          },
        },
      ],
    },
  ],
  "selfLink": "A String", # Output only. Server-defined URL of this resource
  "updateTime": "A String", # Output only. The timestamp when the resource was updated.
}

  updateMask: string, Optional. Field mask is used to specify the fields to be overwritten in the GrpcRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}