| 
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