|
26 | 26 | "Experiment",
|
27 | 27 | "VersionVariants",
|
28 | 28 | "VariantsHistory",
|
| 29 | + "RolloutConfig", |
| 30 | + "RolloutState", |
29 | 31 | "ListExperimentsRequest",
|
30 | 32 | "ListExperimentsResponse",
|
31 | 33 | "GetExperimentRequest",
|
@@ -57,12 +59,26 @@ class Experiment(proto.Message):
|
57 | 59 | state (google.cloud.dialogflowcx_v3.types.Experiment.State):
|
58 | 60 | The current state of the experiment.
|
59 | 61 | Transition triggered by
|
60 |
| - Expriments.StartExperiment: PENDING->RUNNING. |
| 62 | + Experiments.StartExperiment: DRAFT->RUNNING. |
61 | 63 | Transition triggered by
|
62 |
| - Expriments.CancelExperiment: PENDING->CANCELLED |
63 |
| - or RUNNING->CANCELLED. |
| 64 | + Experiments.CancelExperiment: DRAFT->DONE or |
| 65 | + RUNNING->DONE. |
64 | 66 | definition (google.cloud.dialogflowcx_v3.types.Experiment.Definition):
|
65 | 67 | The definition of the experiment.
|
| 68 | + rollout_config (google.cloud.dialogflowcx_v3.types.RolloutConfig): |
| 69 | + The configuration for auto rollout. If set, |
| 70 | + there should be exactly two variants in the |
| 71 | + experiment (control variant being the default |
| 72 | + version of the flow), the traffic allocation for |
| 73 | + the non-control variant will gradually increase |
| 74 | + to 100% when conditions are met, and eventually |
| 75 | + replace the control variant to become the |
| 76 | + default version of the flow. |
| 77 | + rollout_state (google.cloud.dialogflowcx_v3.types.RolloutState): |
| 78 | + State of the auto rollout process. |
| 79 | + rollout_failure_reason (str): |
| 80 | + The reason why rollout has failed. Should only be set when |
| 81 | + state is ROLLOUT_FAILED. |
66 | 82 | result (google.cloud.dialogflowcx_v3.types.Experiment.Result):
|
67 | 83 | Inference result of the experiment.
|
68 | 84 | create_time (google.protobuf.timestamp_pb2.Timestamp):
|
@@ -90,6 +106,7 @@ class State(proto.Enum):
|
90 | 106 | DRAFT = 1
|
91 | 107 | RUNNING = 2
|
92 | 108 | DONE = 3
|
| 109 | + ROLLOUT_FAILED = 4 |
93 | 110 |
|
94 | 111 | class Definition(proto.Message):
|
95 | 112 | r"""Definition of the experiment.
|
@@ -225,6 +242,9 @@ class VersionMetrics(proto.Message):
|
225 | 242 | description = proto.Field(proto.STRING, number=3,)
|
226 | 243 | state = proto.Field(proto.ENUM, number=4, enum=State,)
|
227 | 244 | definition = proto.Field(proto.MESSAGE, number=5, message=Definition,)
|
| 245 | + rollout_config = proto.Field(proto.MESSAGE, number=14, message="RolloutConfig",) |
| 246 | + rollout_state = proto.Field(proto.MESSAGE, number=15, message="RolloutState",) |
| 247 | + rollout_failure_reason = proto.Field(proto.STRING, number=16,) |
228 | 248 | result = proto.Field(proto.MESSAGE, number=6, message=Result,)
|
229 | 249 | create_time = proto.Field(proto.MESSAGE, number=7, message=timestamp_pb2.Timestamp,)
|
230 | 250 | start_time = proto.Field(proto.MESSAGE, number=8, message=timestamp_pb2.Timestamp,)
|
@@ -283,6 +303,72 @@ class VariantsHistory(proto.Message):
|
283 | 303 | update_time = proto.Field(proto.MESSAGE, number=2, message=timestamp_pb2.Timestamp,)
|
284 | 304 |
|
285 | 305 |
|
| 306 | +class RolloutConfig(proto.Message): |
| 307 | + r"""The configuration for auto rollout. |
| 308 | + Attributes: |
| 309 | + rollout_steps (Sequence[google.cloud.dialogflowcx_v3.types.RolloutConfig.RolloutStep]): |
| 310 | + Steps to roll out a flow version. Steps |
| 311 | + should be sorted by percentage in ascending |
| 312 | + order. |
| 313 | + rollout_condition (str): |
| 314 | + The conditions that are used to evaluate the success of a |
| 315 | + rollout step. If not specified, all rollout steps will |
| 316 | + proceed to the next one unless failure conditions are met. |
| 317 | + E.g. "containment_rate > 60% AND callback_rate < 20%". See |
| 318 | + the `conditions |
| 319 | + reference <https://cloud.google.com/dialogflow/cx/docs/reference/condition>`__. |
| 320 | + failure_condition (str): |
| 321 | + The conditions that are used to evaluate the failure of a |
| 322 | + rollout step. If not specified, no rollout steps will fail. |
| 323 | + E.g. "containment_rate < 10% OR average_turn_count < 3". See |
| 324 | + the `conditions |
| 325 | + reference <https://cloud.google.com/dialogflow/cx/docs/reference/condition>`__. |
| 326 | + """ |
| 327 | + |
| 328 | + class RolloutStep(proto.Message): |
| 329 | + r"""A single rollout step with specified traffic allocation. |
| 330 | + Attributes: |
| 331 | + display_name (str): |
| 332 | + The name of the rollout step; |
| 333 | + traffic_percent (int): |
| 334 | + The percentage of traffic allocated to the flow version of |
| 335 | + this rollout step. (0%, 100%]. |
| 336 | + min_duration (google.protobuf.duration_pb2.Duration): |
| 337 | + The minimum time that this step should last. |
| 338 | + Should be longer than 1 hour. If not set, the |
| 339 | + default minimum duration for each step will be 1 |
| 340 | + hour. |
| 341 | + """ |
| 342 | + |
| 343 | + display_name = proto.Field(proto.STRING, number=1,) |
| 344 | + traffic_percent = proto.Field(proto.INT32, number=2,) |
| 345 | + min_duration = proto.Field( |
| 346 | + proto.MESSAGE, number=3, message=duration_pb2.Duration, |
| 347 | + ) |
| 348 | + |
| 349 | + rollout_steps = proto.RepeatedField(proto.MESSAGE, number=1, message=RolloutStep,) |
| 350 | + rollout_condition = proto.Field(proto.STRING, number=2,) |
| 351 | + failure_condition = proto.Field(proto.STRING, number=3,) |
| 352 | + |
| 353 | + |
| 354 | +class RolloutState(proto.Message): |
| 355 | + r"""State of the auto-rollout process. |
| 356 | + Attributes: |
| 357 | + step (str): |
| 358 | + Display name of the current auto rollout |
| 359 | + step. |
| 360 | + step_index (int): |
| 361 | + Index of the current step in the auto rollout |
| 362 | + steps list. |
| 363 | + start_time (google.protobuf.timestamp_pb2.Timestamp): |
| 364 | + Start time of the current step. |
| 365 | + """ |
| 366 | + |
| 367 | + step = proto.Field(proto.STRING, number=1,) |
| 368 | + step_index = proto.Field(proto.INT32, number=3,) |
| 369 | + start_time = proto.Field(proto.MESSAGE, number=2, message=timestamp_pb2.Timestamp,) |
| 370 | + |
| 371 | + |
286 | 372 | class ListExperimentsRequest(proto.Message):
|
287 | 373 | r"""The request message for
|
288 | 374 | [Experiments.ListExperiments][google.cloud.dialogflow.cx.v3.Experiments.ListExperiments].
|
|
0 commit comments