# Google Cloud RuntimeConfig API . projects . configs . variables

## Instance Methods

Creates a variable within the given configuration.

Deletes variable or variables.

Gets the variable resource object.

Lists variables within given RuntimeConfig object, matching optionally

Retrieves the next page of results.

Updates an existing variable with a new value.

WatchVariable watches for a variable to change and then returns the new

### Method Details

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

    Creates a variable within the given configuration.
    Create variable will create all required intermediate path elements.
    It is a FAILED_PRECONDITION error to create a variable with a name that is
    a prefix of an existing variable name, or that has an existing variable
    name as a prefix.

    Args:
      parent: string, The configuration parent, that will own the variable.
    Required, must a valid configuration name within project_id. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # Variable message describes a single variable within a Configuration object.
        # name denotes the hierarchical variable name, e.g.
        # ports/serving_port within flags configuration object.
        # Value is an opaque string and only leaf variables can have values.
      "updateTime": "A String", # [Output Only] The time of the last variable update.
      "state": "A String", # [Ouput only] The current state of the variable.
          # State denotes the outcome of the Watch call and is unset by the Get/List
          # calls.
      "value": "A String", # `len(value)` must be less than 4096 bytes. Empty values are also accepted.
          # value must be Base64 encoded.
      "name": "A String", # Name of the variable resource.
          # It has format of
          # "projects/{project_id}/configs/{config_id}/variables/{variable_id}",
          # Where `project_id` must be a valid Google Cloud project ID, `config_id`
          # must be a valid RuntimeConfig object and `variable_id` follows Unix
          # file system file path naming.
          # `variable_id` can contain ASCII letters, numbers, slashes and dashes.
          # Slashes are used as path element separators and are not part of the
          # `variable_id` itself, so `variable_id` must contain at least one non-slash
          # character. Multiple slashes are coalesced into single slash character.
          # Each path segment should follow RFC 1035 segment specification.
          # `len(variable_id)` must be less than 256 bytes.
          # The name is assigned by the client, but will be validated on the server
          # side to adhere to the format.
          # Name is immutable and cannot be changed.
    }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Variable message describes a single variable within a Configuration object.
          # name denotes the hierarchical variable name, e.g.
          # ports/serving_port within flags configuration object.
          # Value is an opaque string and only leaf variables can have values.
        "updateTime": "A String", # [Output Only] The time of the last variable update.
        "state": "A String", # [Ouput only] The current state of the variable.
            # State denotes the outcome of the Watch call and is unset by the Get/List
            # calls.
        "value": "A String", # `len(value)` must be less than 4096 bytes. Empty values are also accepted.
            # value must be Base64 encoded.
        "name": "A String", # Name of the variable resource.
            # It has format of
            # "projects/{project_id}/configs/{config_id}/variables/{variable_id}",
            # Where `project_id` must be a valid Google Cloud project ID, `config_id`
            # must be a valid RuntimeConfig object and `variable_id` follows Unix
            # file system file path naming.
            # `variable_id` can contain ASCII letters, numbers, slashes and dashes.
            # Slashes are used as path element separators and are not part of the
            # `variable_id` itself, so `variable_id` must contain at least one non-slash
            # character. Multiple slashes are coalesced into single slash character.
            # Each path segment should follow RFC 1035 segment specification.
            # `len(variable_id)` must be less than 256 bytes.
            # The name is assigned by the client, but will be validated on the server
            # side to adhere to the format.
            # Name is immutable and cannot be changed.
      }

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

    Deletes variable or variables.
    If name denotes a variable, that variable is deleted. If name is a prefix
    and recursive is true, then all variables with that prefix are deleted,
    it's a FAILED_PRECONDITION to delete a prefix without recursive being true.

    Args:
      name: string, The name of the variable to delete. (required)
      recursive: boolean, If recursive is false and name is a prefix of other variables, then
    the request will fail.
      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, x__xgafv=None)`

    Gets the variable resource object.

    Args:
      name: string, What variable to return. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Variable message describes a single variable within a Configuration object.
          # name denotes the hierarchical variable name, e.g.
          # ports/serving_port within flags configuration object.
          # Value is an opaque string and only leaf variables can have values.
        "updateTime": "A String", # [Output Only] The time of the last variable update.
        "state": "A String", # [Ouput only] The current state of the variable.
            # State denotes the outcome of the Watch call and is unset by the Get/List
            # calls.
        "value": "A String", # `len(value)` must be less than 4096 bytes. Empty values are also accepted.
            # value must be Base64 encoded.
        "name": "A String", # Name of the variable resource.
            # It has format of
            # "projects/{project_id}/configs/{config_id}/variables/{variable_id}",
            # Where `project_id` must be a valid Google Cloud project ID, `config_id`
            # must be a valid RuntimeConfig object and `variable_id` follows Unix
            # file system file path naming.
            # `variable_id` can contain ASCII letters, numbers, slashes and dashes.
            # Slashes are used as path element separators and are not part of the
            # `variable_id` itself, so `variable_id` must contain at least one non-slash
            # character. Multiple slashes are coalesced into single slash character.
            # Each path segment should follow RFC 1035 segment specification.
            # `len(variable_id)` must be less than 256 bytes.
            # The name is assigned by the client, but will be validated on the server
            # side to adhere to the format.
            # Name is immutable and cannot be changed.
      }

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

    Lists variables within given RuntimeConfig object, matching optionally
    provided filter.
    List contains only variable metadata, but not values.

    Args:
      parent: string, Which RuntimeConfig object to list for variables. (required)
      pageSize: integer, List pagination support.
    The size of the page to return. We may return fewer elements.
      filter: string, List only variables matching filter prefix exactly.
    e.g. `projects/{project_id}/config/{config_id}/variables/{variable/id}`.
      pageToken: string, The token for pagination.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Response for the `ListVariables()` method.
          # Order of returned variable objects is arbitrary.
        "nextPageToken": "A String", # Pagination support.
        "variables": [ # Matched variables and their values.
          { # Variable message describes a single variable within a Configuration object.
              # name denotes the hierarchical variable name, e.g.
              # ports/serving_port within flags configuration object.
              # Value is an opaque string and only leaf variables can have values.
            "updateTime": "A String", # [Output Only] The time of the last variable update.
            "state": "A String", # [Ouput only] The current state of the variable.
                # State denotes the outcome of the Watch call and is unset by the Get/List
                # calls.
            "value": "A String", # `len(value)` must be less than 4096 bytes. Empty values are also accepted.
                # value must be Base64 encoded.
            "name": "A String", # Name of the variable resource.
                # It has format of
                # "projects/{project_id}/configs/{config_id}/variables/{variable_id}",
                # Where `project_id` must be a valid Google Cloud project ID, `config_id`
                # must be a valid RuntimeConfig object and `variable_id` follows Unix
                # file system file path naming.
                # `variable_id` can contain ASCII letters, numbers, slashes and dashes.
                # Slashes are used as path element separators and are not part of the
                # `variable_id` itself, so `variable_id` must contain at least one non-slash
                # character. Multiple slashes are coalesced into single slash character.
                # Each path segment should follow RFC 1035 segment specification.
                # `len(variable_id)` must be less than 256 bytes.
                # The name is assigned by the client, but will be validated on the server
                # side to adhere to the format.
                # Name is immutable and cannot be changed.
          },
        ],
      }

`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.

`update(name=None, body, x__xgafv=None)`

    Updates an existing variable with a new value.

    Args:
      name: string, The name of the variable to update.
    In the format of:
    "projects/{project_id}/configs/{config_id}/variables/{variable_id}" (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # Variable message describes a single variable within a Configuration object.
        # name denotes the hierarchical variable name, e.g.
        # ports/serving_port within flags configuration object.
        # Value is an opaque string and only leaf variables can have values.
      "updateTime": "A String", # [Output Only] The time of the last variable update.
      "state": "A String", # [Ouput only] The current state of the variable.
          # State denotes the outcome of the Watch call and is unset by the Get/List
          # calls.
      "value": "A String", # `len(value)` must be less than 4096 bytes. Empty values are also accepted.
          # value must be Base64 encoded.
      "name": "A String", # Name of the variable resource.
          # It has format of
          # "projects/{project_id}/configs/{config_id}/variables/{variable_id}",
          # Where `project_id` must be a valid Google Cloud project ID, `config_id`
          # must be a valid RuntimeConfig object and `variable_id` follows Unix
          # file system file path naming.
          # `variable_id` can contain ASCII letters, numbers, slashes and dashes.
          # Slashes are used as path element separators and are not part of the
          # `variable_id` itself, so `variable_id` must contain at least one non-slash
          # character. Multiple slashes are coalesced into single slash character.
          # Each path segment should follow RFC 1035 segment specification.
          # `len(variable_id)` must be less than 256 bytes.
          # The name is assigned by the client, but will be validated on the server
          # side to adhere to the format.
          # Name is immutable and cannot be changed.
    }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Variable message describes a single variable within a Configuration object.
          # name denotes the hierarchical variable name, e.g.
          # ports/serving_port within flags configuration object.
          # Value is an opaque string and only leaf variables can have values.
        "updateTime": "A String", # [Output Only] The time of the last variable update.
        "state": "A String", # [Ouput only] The current state of the variable.
            # State denotes the outcome of the Watch call and is unset by the Get/List
            # calls.
        "value": "A String", # `len(value)` must be less than 4096 bytes. Empty values are also accepted.
            # value must be Base64 encoded.
        "name": "A String", # Name of the variable resource.
            # It has format of
            # "projects/{project_id}/configs/{config_id}/variables/{variable_id}",
            # Where `project_id` must be a valid Google Cloud project ID, `config_id`
            # must be a valid RuntimeConfig object and `variable_id` follows Unix
            # file system file path naming.
            # `variable_id` can contain ASCII letters, numbers, slashes and dashes.
            # Slashes are used as path element separators and are not part of the
            # `variable_id` itself, so `variable_id` must contain at least one non-slash
            # character. Multiple slashes are coalesced into single slash character.
            # Each path segment should follow RFC 1035 segment specification.
            # `len(variable_id)` must be less than 256 bytes.
            # The name is assigned by the client, but will be validated on the server
            # side to adhere to the format.
            # Name is immutable and cannot be changed.
      }

`watch(name, body, x__xgafv=None)`

    WatchVariable watches for a variable to change and then returns the new
    value or times out.
    If variable is deleted while being watched, VariableState will be DELETED
    and the Value will contain the last known value.
    If the operation deadline is set to a larger value than internal timeout
    existing, current variable value will be returned and Variable state will
    be VARIABLE_STATE_UNSPECIFIED.

    Args:
      name: string, The name of the variable to retrieve. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # Request for the `WatchVariable()` method.
        "newerThan": "A String", # If backend has a variable that has a newer value than this timestamp, then
            # request will return immediately with current value.
            # If not specified or variable has an older timestamp, will wait for the new
            # value.
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Variable message describes a single variable within a Configuration object.
          # name denotes the hierarchical variable name, e.g.
          # ports/serving_port within flags configuration object.
          # Value is an opaque string and only leaf variables can have values.
        "updateTime": "A String", # [Output Only] The time of the last variable update.
        "state": "A String", # [Ouput only] The current state of the variable.
            # State denotes the outcome of the Watch call and is unset by the Get/List
            # calls.
        "value": "A String", # `len(value)` must be less than 4096 bytes. Empty values are also accepted.
            # value must be Base64 encoded.
        "name": "A String", # Name of the variable resource.
            # It has format of
            # "projects/{project_id}/configs/{config_id}/variables/{variable_id}",
            # Where `project_id` must be a valid Google Cloud project ID, `config_id`
            # must be a valid RuntimeConfig object and `variable_id` follows Unix
            # file system file path naming.
            # `variable_id` can contain ASCII letters, numbers, slashes and dashes.
            # Slashes are used as path element separators and are not part of the
            # `variable_id` itself, so `variable_id` must contain at least one non-slash
            # character. Multiple slashes are coalesced into single slash character.
            # Each path segment should follow RFC 1035 segment specification.
            # `len(variable_id)` must be less than 256 bytes.
            # The name is assigned by the client, but will be validated on the server
            # side to adhere to the format.
            # Name is immutable and cannot be changed.
      }