# Google Service Management API . services . rollouts

## Instance Methods

Creates a new service configuration rollout. Based on rollout, the

Gets a service configuration rollout.

Lists the history of the service configuration rollouts for a managed

Retrieves the next page of results.

### Method Details

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

    Creates a new service configuration rollout. Based on rollout, the
    Google Service Management will roll out the service configurations to
    different backend services. For example, the logging configuration will be
    pushed to Google Cloud Logging.

    Please note that any previous pending and running Rollouts and associated
    Operations will be automatically cancelled so that the latest Rollout will
    not be blocked by previous Rollouts.

    Operation

    Args:
      serviceName: string, The name of the service.  See the [overview](/service-management/overview)
    for naming requirements.  For example: `example.googleapis.com`. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # A rollout resource that defines how service configuration versions are pushed
          # to control plane systems. Typically, you create a new version of the
          # service config, and then create a Rollout to push the service config.
        "status": "A String", # The status of this rollout. Readonly. In case of a failed rollout,
            # the system will automatically rollback to the current Rollout
            # version. Readonly.
        "trafficPercentStrategy": { # Strategy that specifies how Google Service Control should select # Google Service Control selects service configurations based on
            # traffic percentage.
            # different
            # versions of service configurations based on traffic percentage.
            #
            # One example of how to gradually rollout a new service configuration using
            # this
            # strategy:
            # Day 1
            #
            #     Rollout {
            #       id: "example.googleapis.com/rollout_20160206"
            #       traffic_percent_strategy {
            #         percentages: {
            #           "example.googleapis.com/20160201": 70.00
            #           "example.googleapis.com/20160206": 30.00
            #         }
            #       }
            #     }
            #
            # Day 2
            #
            #     Rollout {
            #       id: "example.googleapis.com/rollout_20160207"
            #       traffic_percent_strategy: {
            #         percentages: {
            #           "example.googleapis.com/20160206": 100.00
            #         }
            #       }
            #     }
          "percentages": { # Maps service configuration IDs to their corresponding traffic percentage.
              # Key is the service configuration ID, Value is the traffic percentage
              # which must be greater than 0.0 and the sum must equal to 100.0.
            "a_key": 3.14,
          },
        },
        "rolloutId": "A String", # Optional unique identifier of this Rollout. Only lower case letters, digits
            #  and '-' are allowed.
            #
            # If not specified by client, the server will generate one. The generated id
            # will have the form of , where "date" is the create
            # date in ISO 8601 format.  "revision number" is a monotonically increasing
            # positive number that is reset every day for each service.
            # An example of the generated rollout_id is '2016-02-16r1'
        "serviceName": "A String", # The name of the service associated with this Rollout.
        "createdBy": "A String", # The user who created the Rollout. Readonly.
        "deleteServiceStrategy": { # Strategy used to delete a service. This strategy is a placeholder only # The strategy associated with a rollout to delete a `ManagedService`.
            # Readonly.
            # used by the system generated rollout to delete a service.
        },
        "createTime": "A String", # Creation time of the rollout. Readonly.
      }

      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.
        "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` that 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.
            #
            # - 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.
            },
          ],
        },
        "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`.
        "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.
        },
      }

`get(serviceName, rolloutId, x__xgafv=None)`

    Gets a service configuration rollout.

    Args:
      serviceName: string, The name of the service.  See the [overview](/service-management/overview)
    for naming requirements.  For example: `example.googleapis.com`. (required)
      rolloutId: string, The id of the rollout resource. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A rollout resource that defines how service configuration versions are pushed
            # to control plane systems. Typically, you create a new version of the
            # service config, and then create a Rollout to push the service config.
          "status": "A String", # The status of this rollout. Readonly. In case of a failed rollout,
              # the system will automatically rollback to the current Rollout
              # version. Readonly.
          "trafficPercentStrategy": { # Strategy that specifies how Google Service Control should select # Google Service Control selects service configurations based on
              # traffic percentage.
              # different
              # versions of service configurations based on traffic percentage.
              #
              # One example of how to gradually rollout a new service configuration using
              # this
              # strategy:
              # Day 1
              #
              #     Rollout {
              #       id: "example.googleapis.com/rollout_20160206"
              #       traffic_percent_strategy {
              #         percentages: {
              #           "example.googleapis.com/20160201": 70.00
              #           "example.googleapis.com/20160206": 30.00
              #         }
              #       }
              #     }
              #
              # Day 2
              #
              #     Rollout {
              #       id: "example.googleapis.com/rollout_20160207"
              #       traffic_percent_strategy: {
              #         percentages: {
              #           "example.googleapis.com/20160206": 100.00
              #         }
              #       }
              #     }
            "percentages": { # Maps service configuration IDs to their corresponding traffic percentage.
                # Key is the service configuration ID, Value is the traffic percentage
                # which must be greater than 0.0 and the sum must equal to 100.0.
              "a_key": 3.14,
            },
          },
          "rolloutId": "A String", # Optional unique identifier of this Rollout. Only lower case letters, digits
              #  and '-' are allowed.
              #
              # If not specified by client, the server will generate one. The generated id
              # will have the form of , where "date" is the create
              # date in ISO 8601 format.  "revision number" is a monotonically increasing
              # positive number that is reset every day for each service.
              # An example of the generated rollout_id is '2016-02-16r1'
          "serviceName": "A String", # The name of the service associated with this Rollout.
          "createdBy": "A String", # The user who created the Rollout. Readonly.
          "deleteServiceStrategy": { # Strategy used to delete a service. This strategy is a placeholder only # The strategy associated with a rollout to delete a `ManagedService`.
              # Readonly.
              # used by the system generated rollout to delete a service.
          },
          "createTime": "A String", # Creation time of the rollout. Readonly.
        }

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

    Lists the history of the service configuration rollouts for a managed
    service, from the newest to the oldest.

    Args:
      serviceName: string, The name of the service.  See the [overview](/service-management/overview)
    for naming requirements.  For example: `example.googleapis.com`. (required)
      pageSize: integer, The max number of items to include in the response list.
      filter: string, Use `filter` to return subset of rollouts.
    The following filters are supported:
      -- To limit the results to only those in
         [status](google.api.servicemanagement.v1.RolloutStatus) 'SUCCESS',
         use filter='status=SUCCESS'
      -- To limit the results to those in
         [status](google.api.servicemanagement.v1.RolloutStatus) 'CANCELLED'
         or 'FAILED', use filter='status=CANCELLED OR status=FAILED'
      pageToken: string, The token of the page to retrieve.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Response message for ListServiceRollouts method.
        "nextPageToken": "A String", # The token of the next page of results.
        "rollouts": [ # The list of rollout resources.
          { # A rollout resource that defines how service configuration versions are pushed
                # to control plane systems. Typically, you create a new version of the
                # service config, and then create a Rollout to push the service config.
              "status": "A String", # The status of this rollout. Readonly. In case of a failed rollout,
                  # the system will automatically rollback to the current Rollout
                  # version. Readonly.
              "trafficPercentStrategy": { # Strategy that specifies how Google Service Control should select # Google Service Control selects service configurations based on
                  # traffic percentage.
                  # different
                  # versions of service configurations based on traffic percentage.
                  #
                  # One example of how to gradually rollout a new service configuration using
                  # this
                  # strategy:
                  # Day 1
                  #
                  #     Rollout {
                  #       id: "example.googleapis.com/rollout_20160206"
                  #       traffic_percent_strategy {
                  #         percentages: {
                  #           "example.googleapis.com/20160201": 70.00
                  #           "example.googleapis.com/20160206": 30.00
                  #         }
                  #       }
                  #     }
                  #
                  # Day 2
                  #
                  #     Rollout {
                  #       id: "example.googleapis.com/rollout_20160207"
                  #       traffic_percent_strategy: {
                  #         percentages: {
                  #           "example.googleapis.com/20160206": 100.00
                  #         }
                  #       }
                  #     }
                "percentages": { # Maps service configuration IDs to their corresponding traffic percentage.
                    # Key is the service configuration ID, Value is the traffic percentage
                    # which must be greater than 0.0 and the sum must equal to 100.0.
                  "a_key": 3.14,
                },
              },
              "rolloutId": "A String", # Optional unique identifier of this Rollout. Only lower case letters, digits
                  #  and '-' are allowed.
                  #
                  # If not specified by client, the server will generate one. The generated id
                  # will have the form of , where "date" is the create
                  # date in ISO 8601 format.  "revision number" is a monotonically increasing
                  # positive number that is reset every day for each service.
                  # An example of the generated rollout_id is '2016-02-16r1'
              "serviceName": "A String", # The name of the service associated with this Rollout.
              "createdBy": "A String", # The user who created the Rollout. Readonly.
              "deleteServiceStrategy": { # Strategy used to delete a service. This strategy is a placeholder only # The strategy associated with a rollout to delete a `ManagedService`.
                  # Readonly.
                  # used by the system generated rollout to delete a service.
              },
              "createTime": "A String", # Creation time of the rollout. Readonly.
            },
        ],
      }

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