# Google Cloud RuntimeConfig API . projects . configs . waiters

## Instance Methods

Creates a Waiter resource. This operation returns a long-running Operation

Deletes the waiter with the specified name.

Gets information about a single waiter.

List waiters within the given configuration.

Retrieves the next page of results.

Returns permissions that a caller has on the specified resource.

### Method Details

`create(parent=None, body, requestId=None, x__xgafv=None)`

    Creates a Waiter resource. This operation returns a long-running Operation
    resource which can be polled for completion. However, a waiter with the
    given name will exist (and can be retrieved) prior to the operation
    completing. If the operation fails, the failed Waiter resource will
    still exist and must be deleted prior to subsequent creation attempts.

    Args:
      parent: string, The path to the configuration that will own the waiter.
    The configuration must exist beforehand; the path must by in the format:

    `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # A Waiter resource waits for some end condition within a RuntimeConfig resource
          # to be met before it returns. For example, assume you have a distributed
          # system where each node writes to a Variable resource indidicating the node's
          # readiness as part of the startup process.
          #
          # You then configure a Waiter resource with the success condition set to wait
          # until some number of nodes have checked in. Afterwards, your application
          # runs some arbitrary code after the condition has been met and the waiter
          # returns successfully.
          #
          # Once created, a Waiter resource is immutable.
          #
          # To learn more about using waiters, read the
          # [Creating a Waiter](/deployment-manager/runtime-configurator/creating-a-waiter)
          # documentation.
        "name": "A String", # The name of the Waiter resource, in the format:
            #
            #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]
            #
            # The `[PROJECT_ID]` must be a valid Google Cloud project ID,
            # the `[CONFIG_NAME]` must be a valid RuntimeConfig resource, the
            # `[WAITER_NAME]` must match RFC 1035 segment specification, and the length
            # of `[WAITER_NAME]` must be less than 64 bytes.
            #
            # After you create a Waiter resource, you cannot change the resource name.
        "success": { # The condition that a Waiter resource is waiting for. # [Required] The success condition. If this condition is met, `done` will be
            # set to `true` and the `error` value will remain unset. The failure condition
            # takes precedence over the success condition. If both conditions are met, a
            # failure will be indicated.
          "cardinality": { # A Cardinality condition for the Waiter resource. A cardinality condition is # The cardinality of the `EndCondition`.
              # met when the number of variables under a specified path prefix reaches a
              # predefined number. For example, if you set a Cardinality condition where
              # the `path` is set to `/foo` and the number of paths is set to 2, the
              # following variables would meet the condition in a RuntimeConfig resource:
              #
              # + `/foo/variable1 = "value1"`
              # + `/foo/variable2 = "value2"`
              # + `/bar/variable3 = "value3"`
              #
              # It would not would not satisify the same condition with the `number` set to
              # 3, however, because there is only 2 paths that start with `/foo`.
              # Cardinality conditions are recursive; all subtrees under the specific
              # path prefix are counted.
            "path": "A String", # The root of the variable subtree to monitor. For example, `/foo`.
            "number": 42, # The number variables under the `path` that must exist to meet this
                # condition. Defaults to 1 if not specified.
          },
        },
        "failure": { # The condition that a Waiter resource is waiting for. # [Optional] The failure condition of this waiter. If this condition is met,
            # `done` will be set to `true` and the `error` code will be set to `ABORTED`.
            # The failure condition takes precedence over the success condition. If both
            # conditions are met, a failure will be indicated. This value is optional; if
            # no failure condition is set, the only failure scenario will be a timeout.
          "cardinality": { # A Cardinality condition for the Waiter resource. A cardinality condition is # The cardinality of the `EndCondition`.
              # met when the number of variables under a specified path prefix reaches a
              # predefined number. For example, if you set a Cardinality condition where
              # the `path` is set to `/foo` and the number of paths is set to 2, the
              # following variables would meet the condition in a RuntimeConfig resource:
              #
              # + `/foo/variable1 = "value1"`
              # + `/foo/variable2 = "value2"`
              # + `/bar/variable3 = "value3"`
              #
              # It would not would not satisify the same condition with the `number` set to
              # 3, however, because there is only 2 paths that start with `/foo`.
              # Cardinality conditions are recursive; all subtrees under the specific
              # path prefix are counted.
            "path": "A String", # The root of the variable subtree to monitor. For example, `/foo`.
            "number": 42, # The number variables under the `path` that must exist to meet this
                # condition. Defaults to 1 if not specified.
          },
        },
        "done": True or False, # [Output Only] If the value is `false`, it means the waiter is still waiting
            # for one of its conditions to be met.
            #
            # If true, the waiter has finished. If the waiter finished due to a timeout
            # or failure, `error` will be set.
        "timeout": "A String", # [Required] Specifies the timeout of the waiter in seconds, beginning from
            # the instant that `waiters().create` method is called. If this time elapses
            # before the success or failure conditions are met, the waiter fails and sets
            # the `error` code to `DEADLINE_EXCEEDED`.
        "error": { # The `Status` type defines a logical error model that is suitable for different # [Output Only] If the waiter ended due to a failure or timeout, this value
            # will be set.
            # programming environments, including REST APIs and RPC APIs. It is used by
            # [gRPC](https://github.com/grpc). The error model is designed to be:
            #
            # - Simple to use and understand for most users
            # - Flexible enough to meet unexpected needs
            #
            # # Overview
            #
            # The `Status` message contains three pieces of data: error code, error message,
            # and error details. The error code should be an enum value of
            # google.rpc.Code, but it may accept additional error codes if needed.  The
            # error message should be a developer-facing English message that helps
            # developers *understand* and *resolve* the error. If a localized user-facing
            # error message is needed, put the localized message in the error details or
            # localize it in the client. The optional error details may contain arbitrary
            # information about the error. There is a predefined set of error detail types
            # in the package `google.rpc` which can be used for common error conditions.
            #
            # # Language mapping
            #
            # The `Status` message is the logical representation of the error model, but it
            # is not necessarily the actual wire format. When the `Status` message is
            # exposed in different client libraries and different wire protocols, it can be
            # mapped differently. For example, it will likely be mapped to some exceptions
            # in Java, but more likely mapped to some error codes in C.
            #
            # # Other uses
            #
            # The error model and the `Status` message can be used in a variety of
            # environments, either with or without APIs, to provide a
            # consistent developer experience across different environments.
            #
            # Example uses of this error model include:
            #
            # - Partial errors. If a service needs to return partial errors to the client,
            #     it may embed the `Status` in the normal response to indicate the partial
            #     errors.
            #
            # - Workflow errors. A typical workflow has multiple steps. Each step may
            #     have a `Status` message for error reporting purpose.
            #
            # - Batch operations. If a client uses batch request and batch response, the
            #     `Status` message should be used directly inside batch response, one for
            #     each error sub-response.
            #
            # - Asynchronous operations. If an API call embeds asynchronous operation
            #     results in its response, the status of those operations should be
            #     represented directly using the `Status` message.
            #
            # - Logging. If some API errors are stored in logs, the message `Status` could
            #     be used directly after any stripping needed for security/privacy reasons.
          "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.
          "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 will be a
              # common set of message types for APIs to use.
            {
              "a_key": "", # Properties of the object. Contains field @type with type URL.
            },
          ],
        },
        "createTime": "A String", # [Output Only] The instant at which this Waiter resource was created. Adding
            # the value of `timeout` to this instant yields the timeout deadline for the
            # waiter.
      }

      requestId: string, An optional but recommended unique request_id. If the server
    receives two create() requests  with the same
    request_id, then the second request will be ignored and the
    first resource created and stored in the backend is returned.
    Empty request_id fields are ignored.

    It is responsibility of the client to ensure uniqueness of the
    request_id strings.

    request_id strings are limited to 64 characters.
      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.
        "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.
        },
        "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.
        "response": { # The normal response of the operation in case of success.  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.
        },
        "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 have the format of `operations/some/unique/name`.
        "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
            # programming environments, including REST APIs and RPC APIs. It is used by
            # [gRPC](https://github.com/grpc). The error model is designed to be:
            #
            # - Simple to use and understand for most users
            # - Flexible enough to meet unexpected needs
            #
            # # Overview
            #
            # The `Status` message contains three pieces of data: error code, error message,
            # and error details. The error code should be an enum value of
            # google.rpc.Code, but it may accept additional error codes if needed.  The
            # error message should be a developer-facing English message that helps
            # developers *understand* and *resolve* the error. If a localized user-facing
            # error message is needed, put the localized message in the error details or
            # localize it in the client. The optional error details may contain arbitrary
            # information about the error. There is a predefined set of error detail types
            # in the package `google.rpc` which can be used for common error conditions.
            #
            # # Language mapping
            #
            # The `Status` message is the logical representation of the error model, but it
            # is not necessarily the actual wire format. When the `Status` message is
            # exposed in different client libraries and different wire protocols, it can be
            # mapped differently. For example, it will likely be mapped to some exceptions
            # in Java, but more likely mapped to some error codes in C.
            #
            # # Other uses
            #
            # The error model and the `Status` message can be used in a variety of
            # environments, either with or without APIs, to provide a
            # consistent developer experience across different environments.
            #
            # Example uses of this error model include:
            #
            # - Partial errors. If a service needs to return partial errors to the client,
            #     it may embed the `Status` in the normal response to indicate the partial
            #     errors.
            #
            # - Workflow errors. A typical workflow has multiple steps. Each step may
            #     have a `Status` message for error reporting purpose.
            #
            # - Batch operations. If a client uses batch request and batch response, the
            #     `Status` message should be used directly inside batch response, one for
            #     each error sub-response.
            #
            # - Asynchronous operations. If an API call embeds asynchronous operation
            #     results in its response, the status of those operations should be
            #     represented directly using the `Status` message.
            #
            # - Logging. If some API errors are stored in logs, the message `Status` could
            #     be used directly after any stripping needed for security/privacy reasons.
          "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.
          "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 will be a
              # common set of message types for APIs to use.
            {
              "a_key": "", # Properties of the object. Contains field @type with type URL.
            },
          ],
        },
      }

`delete(name=None, x__xgafv=None)`

    Deletes the waiter with the specified name.

    Args:
      name: string, The Waiter resource to delete, in the format:

     `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]` (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A generic empty message that you can re-use to avoid defining duplicated
          # empty messages in your APIs. A typical example is to use it as the request
          # or the response type of an API method. For instance:
          #
          #     service Foo {
          #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
          #     }
          #
          # The JSON representation for `Empty` is empty JSON object `{}`.
      }

`get(name=None, x__xgafv=None)`

    Gets information about a single waiter.

    Args:
      name: string, The fully-qualified name of the Waiter resource object to retrieve, in the
    format:

    `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]` (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A Waiter resource waits for some end condition within a RuntimeConfig resource
            # to be met before it returns. For example, assume you have a distributed
            # system where each node writes to a Variable resource indidicating the node's
            # readiness as part of the startup process.
            #
            # You then configure a Waiter resource with the success condition set to wait
            # until some number of nodes have checked in. Afterwards, your application
            # runs some arbitrary code after the condition has been met and the waiter
            # returns successfully.
            #
            # Once created, a Waiter resource is immutable.
            #
            # To learn more about using waiters, read the
            # [Creating a Waiter](/deployment-manager/runtime-configurator/creating-a-waiter)
            # documentation.
          "name": "A String", # The name of the Waiter resource, in the format:
              #
              #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]
              #
              # The `[PROJECT_ID]` must be a valid Google Cloud project ID,
              # the `[CONFIG_NAME]` must be a valid RuntimeConfig resource, the
              # `[WAITER_NAME]` must match RFC 1035 segment specification, and the length
              # of `[WAITER_NAME]` must be less than 64 bytes.
              #
              # After you create a Waiter resource, you cannot change the resource name.
          "success": { # The condition that a Waiter resource is waiting for. # [Required] The success condition. If this condition is met, `done` will be
              # set to `true` and the `error` value will remain unset. The failure condition
              # takes precedence over the success condition. If both conditions are met, a
              # failure will be indicated.
            "cardinality": { # A Cardinality condition for the Waiter resource. A cardinality condition is # The cardinality of the `EndCondition`.
                # met when the number of variables under a specified path prefix reaches a
                # predefined number. For example, if you set a Cardinality condition where
                # the `path` is set to `/foo` and the number of paths is set to 2, the
                # following variables would meet the condition in a RuntimeConfig resource:
                #
                # + `/foo/variable1 = "value1"`
                # + `/foo/variable2 = "value2"`
                # + `/bar/variable3 = "value3"`
                #
                # It would not would not satisify the same condition with the `number` set to
                # 3, however, because there is only 2 paths that start with `/foo`.
                # Cardinality conditions are recursive; all subtrees under the specific
                # path prefix are counted.
              "path": "A String", # The root of the variable subtree to monitor. For example, `/foo`.
              "number": 42, # The number variables under the `path` that must exist to meet this
                  # condition. Defaults to 1 if not specified.
            },
          },
          "failure": { # The condition that a Waiter resource is waiting for. # [Optional] The failure condition of this waiter. If this condition is met,
              # `done` will be set to `true` and the `error` code will be set to `ABORTED`.
              # The failure condition takes precedence over the success condition. If both
              # conditions are met, a failure will be indicated. This value is optional; if
              # no failure condition is set, the only failure scenario will be a timeout.
            "cardinality": { # A Cardinality condition for the Waiter resource. A cardinality condition is # The cardinality of the `EndCondition`.
                # met when the number of variables under a specified path prefix reaches a
                # predefined number. For example, if you set a Cardinality condition where
                # the `path` is set to `/foo` and the number of paths is set to 2, the
                # following variables would meet the condition in a RuntimeConfig resource:
                #
                # + `/foo/variable1 = "value1"`
                # + `/foo/variable2 = "value2"`
                # + `/bar/variable3 = "value3"`
                #
                # It would not would not satisify the same condition with the `number` set to
                # 3, however, because there is only 2 paths that start with `/foo`.
                # Cardinality conditions are recursive; all subtrees under the specific
                # path prefix are counted.
              "path": "A String", # The root of the variable subtree to monitor. For example, `/foo`.
              "number": 42, # The number variables under the `path` that must exist to meet this
                  # condition. Defaults to 1 if not specified.
            },
          },
          "done": True or False, # [Output Only] If the value is `false`, it means the waiter is still waiting
              # for one of its conditions to be met.
              #
              # If true, the waiter has finished. If the waiter finished due to a timeout
              # or failure, `error` will be set.
          "timeout": "A String", # [Required] Specifies the timeout of the waiter in seconds, beginning from
              # the instant that `waiters().create` method is called. If this time elapses
              # before the success or failure conditions are met, the waiter fails and sets
              # the `error` code to `DEADLINE_EXCEEDED`.
          "error": { # The `Status` type defines a logical error model that is suitable for different # [Output Only] If the waiter ended due to a failure or timeout, this value
              # will be set.
              # programming environments, including REST APIs and RPC APIs. It is used by
              # [gRPC](https://github.com/grpc). The error model is designed to be:
              #
              # - Simple to use and understand for most users
              # - Flexible enough to meet unexpected needs
              #
              # # Overview
              #
              # The `Status` message contains three pieces of data: error code, error message,
              # and error details. The error code should be an enum value of
              # google.rpc.Code, but it may accept additional error codes if needed.  The
              # error message should be a developer-facing English message that helps
              # developers *understand* and *resolve* the error. If a localized user-facing
              # error message is needed, put the localized message in the error details or
              # localize it in the client. The optional error details may contain arbitrary
              # information about the error. There is a predefined set of error detail types
              # in the package `google.rpc` which can be used for common error conditions.
              #
              # # Language mapping
              #
              # The `Status` message is the logical representation of the error model, but it
              # is not necessarily the actual wire format. When the `Status` message is
              # exposed in different client libraries and different wire protocols, it can be
              # mapped differently. For example, it will likely be mapped to some exceptions
              # in Java, but more likely mapped to some error codes in C.
              #
              # # Other uses
              #
              # The error model and the `Status` message can be used in a variety of
              # environments, either with or without APIs, to provide a
              # consistent developer experience across different environments.
              #
              # Example uses of this error model include:
              #
              # - Partial errors. If a service needs to return partial errors to the client,
              #     it may embed the `Status` in the normal response to indicate the partial
              #     errors.
              #
              # - Workflow errors. A typical workflow has multiple steps. Each step may
              #     have a `Status` message for error reporting purpose.
              #
              # - Batch operations. If a client uses batch request and batch response, the
              #     `Status` message should be used directly inside batch response, one for
              #     each error sub-response.
              #
              # - Asynchronous operations. If an API call embeds asynchronous operation
              #     results in its response, the status of those operations should be
              #     represented directly using the `Status` message.
              #
              # - Logging. If some API errors are stored in logs, the message `Status` could
              #     be used directly after any stripping needed for security/privacy reasons.
            "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.
            "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 will be a
                # common set of message types for APIs to use.
              {
                "a_key": "", # Properties of the object. Contains field @type with type URL.
              },
            ],
          },
          "createTime": "A String", # [Output Only] The instant at which this Waiter resource was created. Adding
              # the value of `timeout` to this instant yields the timeout deadline for the
              # waiter.
        }

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

    List waiters within the given configuration.

    Args:
      parent: string, The path to the configuration for which you want to get a list of waiters.
    The configuration must exist beforehand; the path must by in the format:

    `projects/[PROJECT_ID]/configs/[CONFIG_NAME]` (required)
      pageToken: string, Specifies a page token to use. Set `pageToken` to a `nextPageToken`
    returned by a previous list request to get the next page of results.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format
      pageSize: integer, Specifies the number of results to return per page. If there are fewer
    elements than the specified number, returns all elements.

    Returns:
      An object of the form:

        { # Response for the `ListWaiters()` method.
          # Order of returned waiter objects is arbitrary.
        "nextPageToken": "A String", # This token allows you to get the next page of results for list requests.
            # If the number of results is larger than `pageSize`, use the `nextPageToken`
            # as a value for the query parameter `pageToken` in the next list request.
            # Subsequent list requests will have their own `nextPageToken` to continue
            # paging through the results
        "waiters": [ # Found waiters in the project.
          { # A Waiter resource waits for some end condition within a RuntimeConfig resource
                # to be met before it returns. For example, assume you have a distributed
                # system where each node writes to a Variable resource indidicating the node's
                # readiness as part of the startup process.
                #
                # You then configure a Waiter resource with the success condition set to wait
                # until some number of nodes have checked in. Afterwards, your application
                # runs some arbitrary code after the condition has been met and the waiter
                # returns successfully.
                #
                # Once created, a Waiter resource is immutable.
                #
                # To learn more about using waiters, read the
                # [Creating a Waiter](/deployment-manager/runtime-configurator/creating-a-waiter)
                # documentation.
              "name": "A String", # The name of the Waiter resource, in the format:
                  #
                  #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]
                  #
                  # The `[PROJECT_ID]` must be a valid Google Cloud project ID,
                  # the `[CONFIG_NAME]` must be a valid RuntimeConfig resource, the
                  # `[WAITER_NAME]` must match RFC 1035 segment specification, and the length
                  # of `[WAITER_NAME]` must be less than 64 bytes.
                  #
                  # After you create a Waiter resource, you cannot change the resource name.
              "success": { # The condition that a Waiter resource is waiting for. # [Required] The success condition. If this condition is met, `done` will be
                  # set to `true` and the `error` value will remain unset. The failure condition
                  # takes precedence over the success condition. If both conditions are met, a
                  # failure will be indicated.
                "cardinality": { # A Cardinality condition for the Waiter resource. A cardinality condition is # The cardinality of the `EndCondition`.
                    # met when the number of variables under a specified path prefix reaches a
                    # predefined number. For example, if you set a Cardinality condition where
                    # the `path` is set to `/foo` and the number of paths is set to 2, the
                    # following variables would meet the condition in a RuntimeConfig resource:
                    #
                    # + `/foo/variable1 = "value1"`
                    # + `/foo/variable2 = "value2"`
                    # + `/bar/variable3 = "value3"`
                    #
                    # It would not would not satisify the same condition with the `number` set to
                    # 3, however, because there is only 2 paths that start with `/foo`.
                    # Cardinality conditions are recursive; all subtrees under the specific
                    # path prefix are counted.
                  "path": "A String", # The root of the variable subtree to monitor. For example, `/foo`.
                  "number": 42, # The number variables under the `path` that must exist to meet this
                      # condition. Defaults to 1 if not specified.
                },
              },
              "failure": { # The condition that a Waiter resource is waiting for. # [Optional] The failure condition of this waiter. If this condition is met,
                  # `done` will be set to `true` and the `error` code will be set to `ABORTED`.
                  # The failure condition takes precedence over the success condition. If both
                  # conditions are met, a failure will be indicated. This value is optional; if
                  # no failure condition is set, the only failure scenario will be a timeout.
                "cardinality": { # A Cardinality condition for the Waiter resource. A cardinality condition is # The cardinality of the `EndCondition`.
                    # met when the number of variables under a specified path prefix reaches a
                    # predefined number. For example, if you set a Cardinality condition where
                    # the `path` is set to `/foo` and the number of paths is set to 2, the
                    # following variables would meet the condition in a RuntimeConfig resource:
                    #
                    # + `/foo/variable1 = "value1"`
                    # + `/foo/variable2 = "value2"`
                    # + `/bar/variable3 = "value3"`
                    #
                    # It would not would not satisify the same condition with the `number` set to
                    # 3, however, because there is only 2 paths that start with `/foo`.
                    # Cardinality conditions are recursive; all subtrees under the specific
                    # path prefix are counted.
                  "path": "A String", # The root of the variable subtree to monitor. For example, `/foo`.
                  "number": 42, # The number variables under the `path` that must exist to meet this
                      # condition. Defaults to 1 if not specified.
                },
              },
              "done": True or False, # [Output Only] If the value is `false`, it means the waiter is still waiting
                  # for one of its conditions to be met.
                  #
                  # If true, the waiter has finished. If the waiter finished due to a timeout
                  # or failure, `error` will be set.
              "timeout": "A String", # [Required] Specifies the timeout of the waiter in seconds, beginning from
                  # the instant that `waiters().create` method is called. If this time elapses
                  # before the success or failure conditions are met, the waiter fails and sets
                  # the `error` code to `DEADLINE_EXCEEDED`.
              "error": { # The `Status` type defines a logical error model that is suitable for different # [Output Only] If the waiter ended due to a failure or timeout, this value
                  # will be set.
                  # programming environments, including REST APIs and RPC APIs. It is used by
                  # [gRPC](https://github.com/grpc). The error model is designed to be:
                  #
                  # - Simple to use and understand for most users
                  # - Flexible enough to meet unexpected needs
                  #
                  # # Overview
                  #
                  # The `Status` message contains three pieces of data: error code, error message,
                  # and error details. The error code should be an enum value of
                  # google.rpc.Code, but it may accept additional error codes if needed.  The
                  # error message should be a developer-facing English message that helps
                  # developers *understand* and *resolve* the error. If a localized user-facing
                  # error message is needed, put the localized message in the error details or
                  # localize it in the client. The optional error details may contain arbitrary
                  # information about the error. There is a predefined set of error detail types
                  # in the package `google.rpc` which can be used for common error conditions.
                  #
                  # # Language mapping
                  #
                  # The `Status` message is the logical representation of the error model, but it
                  # is not necessarily the actual wire format. When the `Status` message is
                  # exposed in different client libraries and different wire protocols, it can be
                  # mapped differently. For example, it will likely be mapped to some exceptions
                  # in Java, but more likely mapped to some error codes in C.
                  #
                  # # Other uses
                  #
                  # The error model and the `Status` message can be used in a variety of
                  # environments, either with or without APIs, to provide a
                  # consistent developer experience across different environments.
                  #
                  # Example uses of this error model include:
                  #
                  # - Partial errors. If a service needs to return partial errors to the client,
                  #     it may embed the `Status` in the normal response to indicate the partial
                  #     errors.
                  #
                  # - Workflow errors. A typical workflow has multiple steps. Each step may
                  #     have a `Status` message for error reporting purpose.
                  #
                  # - Batch operations. If a client uses batch request and batch response, the
                  #     `Status` message should be used directly inside batch response, one for
                  #     each error sub-response.
                  #
                  # - Asynchronous operations. If an API call embeds asynchronous operation
                  #     results in its response, the status of those operations should be
                  #     represented directly using the `Status` message.
                  #
                  # - Logging. If some API errors are stored in logs, the message `Status` could
                  #     be used directly after any stripping needed for security/privacy reasons.
                "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.
                "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 will be a
                    # common set of message types for APIs to use.
                  {
                    "a_key": "", # Properties of the object. Contains field @type with type URL.
                  },
                ],
              },
              "createTime": "A String", # [Output Only] The instant at which this Waiter resource was created. Adding
                  # the value of `timeout` to this instant yields the timeout deadline for the
                  # waiter.
            },
        ],
      }

`list_next(previous_request, previous_response)`

    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.

`testIamPermissions(resource=None, x__xgafv=None, permissions=None)`

    Returns permissions that a caller has on the specified resource.
    If the resource does not exist, this will return an empty set of
    permissions, not a NOT_FOUND error.

    Args:
      resource: string, REQUIRED: The resource for which the policy detail is being requested.
    `resource` is usually specified as a path. For example, a Project
    resource is specified as `projects/{project}`. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format
      permissions: string, The set of permissions to check for the `resource`. Permissions with
    wildcards (such as '*' or 'storage.*') are not allowed. For more
    information see
    [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). (repeated)

    Returns:
      An object of the form:

        { # Response message for `TestIamPermissions` method.
        "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
            # allowed.
          "A String",
        ],
      }