changecontrol.v1

Top

arista/changecontrol.v1/changecontrol.proto

Action

Action is an action to perform during the execution of a stage of a change control. Available actions can be fetched using the “action” services.

Field NameTypeDescription
namegoogle.protobuf.StringValue

name is the name of the action.

timeoutgoogle.protobuf.UInt32Value

timeout is the maximum duration in seconds that

the action can execute before timing out. If this

is not set, then this is interpreted to mean there

is no timeout.

argsfmp.MapStringString

args are the arguments of the action.

ApproveConfig

ApproveConfig is used to configure the approval of a change control.

Field NameTypeDescription
keyChangeControlKey

key uniquely identifies the change control.

approveFlagConfig

approve is the flag to approve (approve.value set to true)

or unapprove (approve.value set to false) the change control.

versiongoogle.protobuf.Timestamp

version is the timestamp of the change control to approve.

This field must be set when approve.value is set to true

and is intended to safeguard against approving a change control

that has been updated since last read.

Change

Change holds the configuration and status of the change of a change control.

Field NameTypeDescription
namegoogle.protobuf.StringValue

name is the name of the change.

root_stage_idgoogle.protobuf.StringValue

root_stage_id is the ID of the root stage or the stage that

should execute first.

stagesStageMap

stages holds a configuration of stages and their statuses.

notesgoogle.protobuf.StringValue

notes are any notes associated with the change.

timegoogle.protobuf.Timestamp

time is the time at which the change was last updated.

usergoogle.protobuf.StringValue

user is the user by which the change was last updated.

ChangeConfig

ChangeConfig holds a configuration for the change of a change control which is essentially a named configuration of stages.

Field NameTypeDescription
namegoogle.protobuf.StringValue

name is the name of the change.

root_stage_idgoogle.protobuf.StringValue

root_stage_id is the ID of the root stage or the stage that

should execute first.

stagesStageConfigMap

stages holds a configuration of stages. See StageConfigMap

description for more information.

notesgoogle.protobuf.StringValue

notes are any notes associated with the change.

ChangeControl

ChangeControl holds the configuration and status of a change control.

Field NameTypeDescription
keyChangeControlKey

key uniquely identifies the change control.

changeChange

change holds the configuration and status of the change of

the change control.

approveFlag

approve indicates whether the change control was flagged

as approved (approve.value set to true) or unapproved

(approve.value set to false).

startFlag

start indicates whether the change control was flagged to

start (start.value set to true) or stop (start.value

set to false) execution.

statusChangeControlStatus

status is the execution status of the change control.

errorgoogle.protobuf.StringValue

error is any error that occurred during the execution of the

change control.

scheduleTimestampFlag

schedule indicates whether the change control was flagged

to be scheduled (schedule.value set to some timestamp) or

unscheduled (schedule.value set to nil) for execution.

ChangeControlConfig

ChangeControlConfig holds the configuration of a change control.

Field NameTypeDescription
keyChangeControlKey

key uniquely identifies the change control.

changeChangeConfig

change is the change subject to execution.

startFlagConfig

start is the flag to start (start.value set to true)

or stop (start.value set to false) execution of the

change control.

scheduleTimestampFlagConfig

schedule is the flag to schedule (schedule.value set to

some timestamp) or unschedule (schedule.value set to

nil) the change control for execution.

ChangeControlKey

ChangeControlKey uniquely identifies a change control.

Field NameTypeDescription
idgoogle.protobuf.StringValue

id is the ID of the change control.

Flag

Flag holds the configuration of a boolean flag plus some information about when and by whom it was set.

Field NameTypeDescription
valuegoogle.protobuf.BoolValue

value is the value of the flag (true or false).

notesgoogle.protobuf.StringValue

notes are any notes associated with the setting of the flag.

timegoogle.protobuf.Timestamp

time is the time at which the flag was last updated.

usergoogle.protobuf.StringValue

user is the user by which the flag was last updated.

FlagConfig

FlagConfig is used to set a flag on a change control that takes a boolean value (e.g. start/stop, approve/unapprove).

Field NameTypeDescription
valuegoogle.protobuf.BoolValue

value is the value of the flag (true or false).

notesgoogle.protobuf.StringValue

notes are any notes associated with the flag value.

RepeatedRepeatedString

RepeatedRepeatedString wraps a repeated fmp.RepeatedString to define a string matrix which is used to represent stage rows (see StageConfig).

Field NameTypeDescription
valuesfmp.RepeatedString[…]

values is a list of fmp.RepeatedString.

Stage

Stage holds the configuration and status of a stage.

Field NameTypeDescription
namegoogle.protobuf.StringValue

name is the name of the stage.

actionAction

action is the action to perform during the stage.

rowsRepeatedRepeatedString

rows is a series of rows of parallel stages referenced

by ID. See StageConfig.rows for more details.

statusStageStatus

status is the execution status of the stage.

errorgoogle.protobuf.StringValue

error is any error that occured during the execution

of the stage.

StageConfig

StageConfig holds a configuration for a stage in a change control. Each stage generally defines either an action or a series of sub-stages.

Field NameTypeDescription
namegoogle.protobuf.StringValue

name is the name of the stage.

actionAction

action is the action to perform on stage execution.

rowsRepeatedRepeatedString

rows is a series of rows of parallel stages referenced

by ID. Each row is run one after the other and the

stages within each row are run in parallel.

For example:

</p><p>[["1a", "1b"], ["2"]]</p><p>

This configures stage 1a and stage 1b to run at the

same time, and then stage 2 once both of them have

completed.

StageConfigMap

StageConfigMap wraps a map from stage ID to StageConfig. This defines the configuration and order of execution for the stages in a change control.

For example:

{
    "root": { name: "root", rows: [["1-2"], ["3"]] },
    "1-2":  { name: "stages 1-2", rows: [["1"], ["2"]] },
    "1":    { name: "stage 1", rows: [["1a", "1b"]] },
    "1a":   { name: "stage 1a", action: { name: "task", args: { "TaskID": "101" } },
    "1b":   { name: "stage 1b", action: { name: "task", args: { "TaskID": "102" } },
    "2":    { name: "stage 2", action: { name: "task", args: { "TaskID": "103" } },
    "3":    { name: "stage 3", action: { name: "task", args: { "TaskID": "104" } }
}

Assuming the root stage ID of the enclosing change control is “root”, this would mean to do the following in sequence:

root
|- stages 1-2
|  |- stage 1
|  |  |- stage 1a, stage 1b (parallel)
|  |- stage 2
|- stage 3

That is, execute tasks 101 and 102 in parallel, then task 103, then task 104.

Field NameTypeDescription
valuesStageConfigMap.ValuesEntry[…]

values is a map from stage ID to StageConfig.

StageConfigMap.ValuesEntry

Field NameTypeDescription
keystring

valueStageConfig

StageMap

StageMap is a map from stage ID to Stage. This has essentially the same structure as StageConfigMap, but with each ID mapping to a Stage instead of StageConfig.

Field NameTypeDescription
valuesStageMap.ValuesEntry[…]

values is a map from stage ID to Stage.

StageMap.ValuesEntry

Field NameTypeDescription
keystring

valueStage

TimestampFlag

TimestampFlag holds the configuration of a timestamp flag plus some information about when and by whom is was set.

Field NameTypeDescription
valuegoogle.protobuf.Timestamp

value is the value of the flag (some timestamp).

notesgoogle.protobuf.StringValue

notes are any notes associated with the setting of the flag.

timegoogle.protobuf.Timestamp

time is the time at which the flag was last updated.

usergoogle.protobuf.StringValue

user is the user by which the flag was last updated.

TimestampFlagConfig

TimestampFlagConfig is used to set a flag on a change control that takes a timestamp value (e.g. schedule/unschedule).

Field NameTypeDescription
valuegoogle.protobuf.Timestamp

value is the value of the flag (some timestamp).

notesgoogle.protobuf.StringValue

notes are the notes associated with the flag value.

ChangeControlStatus

ChangeControlStatus defines the possible execution statuses of a change control.

NameNumberDescription
CHANGE_CONTROL_STATUS_UNSPECIFIED0

CHANGE_CONTROL_STATUS_RUNNING1

CHANGE_CONTROL_STATUS_RUNNING means the change control has begun

execution.

CHANGE_CONTROL_STATUS_COMPLETED2

CHANGE_CONTROL_STATUS_COMPLETED means the change control has ceased

execution. Success/failure of a change control cannot be inferred

from this status alone but rather this status plus the change control

error. That is, no error implies success and some error implies failure.

CHANGE_CONTROL_STATUS_SCHEDULED3

CHANGE_CONTROL_STATUS_SCHEDULED means the change control has been

scheduled for execution at some time. Any failure that occurs during

this process will cause a transition back to the unspecified status,

a reset of the schedule flag by the system, and an error on the change

control reporting the details of the failure.

StageStatus

StageStatus defines the possible execution statuses of a stage.

NameNumberDescription
STAGE_STATUS_UNSPECIFIED0

STAGE_STATUS_RUNNING1

STAGE_STATUS_RUNNING means the stage has begun execution.

STAGE_STATUS_COMPLETED2

STAGE_STATUS_COMPLETED means the stage has ceased execution.

Success/failure of a stage cannot be inferred from this status

alone but rather this status plus the stage error. That is, no

error implies success and some error implies failure.

Top

arista/changecontrol.v1/services.gen.proto

ApproveConfigDeleteRequest

Field NameTypeDescription
keyChangeControlKey

Key indicates which ApproveConfig instance to remove.

This field must always be set.

ApproveConfigDeleteResponse

Field NameTypeDescription
keyChangeControlKey

Key echoes back the key of the deleted ApproveConfig instance.

timegoogle.protobuf.Timestamp

Time indicates the (UTC) timestamp at which the system recognizes the

deletion. The only guarantees made about this timestamp are:

- it is after the time the request was received

- a time-ranged query with StartTime==DeletedAt will not include this instance.

ApproveConfigRequest

Field NameTypeDescription
keyChangeControlKey

Key uniquely identifies a ApproveConfig instance to retrieve.

This value must be populated.

timegoogle.protobuf.Timestamp

Time indicates the time for which you are interested in the data.

If no time is given, the server will use the time at which it makes the request.

ApproveConfigResponse

Field NameTypeDescription
valueApproveConfig

Value is the value requested.

This structure will be fully-populated as it exists in the datastore. If

optional fields were not given at creation, these fields will be empty or

set to default values.

timegoogle.protobuf.Timestamp

Time carries the (UTC) timestamp of the last-modification of the

ApproveConfig instance in this response.

ApproveConfigSetRequest

Field NameTypeDescription
valueApproveConfig

ApproveConfig carries the value to set into the datastore.

See the documentation on the ApproveConfig struct for which fields are required.

ApproveConfigSetResponse

Field NameTypeDescription
valueApproveConfig

Value carries all the values given in the ApproveConfigSetRequest as well

as any server-generated values.

timegoogle.protobuf.Timestamp

Time indicates the (UTC) timestamp at which the system recognizes the

creation. The only guarantees made about this timestamp are:

- it is after the time the request was received

- a time-ranged query with StartTime==CreatedAt will include this instance.

ApproveConfigStreamRequest

Field NameTypeDescription
partial_eq_filterApproveConfig[…]

PartialEqFilter provides a way to server-side filter a GetAll/Subscribe.

This requires all provided fields to be equal to the response.

While transparent to users, this field also allows services to optimize internal

subscriptions if filter(s) are sufficiently specific.

timearista.time.TimeBounds

TimeRange allows limiting response data to within a specified time window.

If this field is populated, at least one of the two time fields are required.

This field is not allowed in the Subscribe RPC.

ApproveConfigStreamResponse

Field NameTypeDescription
valueApproveConfig

Value is a value deemed relevant to the initiating request.

This structure will always have its key-field populated. Which other fields are

populated, and why, depends on the value of Operation and what triggered this notification.

timegoogle.protobuf.Timestamp

Time holds the timestamp of this ApproveConfig’s last modification.

typearista.subscriptions.Operation

Operation indicates how the ApproveConfig value in this response should be considered.

Under non-subscribe requests, this value should always be INITIAL. In a subscription,

once all initial data is streamed and the client begins to receive modification updates,

you should not see INITIAL again.

ChangeControlConfigDeleteRequest

Field NameTypeDescription
keyChangeControlKey

Key indicates which ChangeControlConfig instance to remove.

This field must always be set.

ChangeControlConfigDeleteResponse

Field NameTypeDescription
keyChangeControlKey

Key echoes back the key of the deleted ChangeControlConfig instance.

timegoogle.protobuf.Timestamp

Time indicates the (UTC) timestamp at which the system recognizes the

deletion. The only guarantees made about this timestamp are:

- it is after the time the request was received

- a time-ranged query with StartTime==DeletedAt will not include this instance.

ChangeControlConfigRequest

Field NameTypeDescription
keyChangeControlKey

Key uniquely identifies a ChangeControlConfig instance to retrieve.

This value must be populated.

timegoogle.protobuf.Timestamp

Time indicates the time for which you are interested in the data.

If no time is given, the server will use the time at which it makes the request.

ChangeControlConfigResponse

Field NameTypeDescription
valueChangeControlConfig

Value is the value requested.

This structure will be fully-populated as it exists in the datastore. If

optional fields were not given at creation, these fields will be empty or

set to default values.

timegoogle.protobuf.Timestamp

Time carries the (UTC) timestamp of the last-modification of the

ChangeControlConfig instance in this response.

ChangeControlConfigSetRequest

Field NameTypeDescription
valueChangeControlConfig

ChangeControlConfig carries the value to set into the datastore.

See the documentation on the ChangeControlConfig struct for which fields are required.

ChangeControlConfigSetResponse

Field NameTypeDescription
valueChangeControlConfig

Value carries all the values given in the ChangeControlConfigSetRequest as well

as any server-generated values.

timegoogle.protobuf.Timestamp

Time indicates the (UTC) timestamp at which the system recognizes the

creation. The only guarantees made about this timestamp are:

- it is after the time the request was received

- a time-ranged query with StartTime==CreatedAt will include this instance.

ChangeControlConfigStreamRequest

Field NameTypeDescription
partial_eq_filterChangeControlConfig[…]

PartialEqFilter provides a way to server-side filter a GetAll/Subscribe.

This requires all provided fields to be equal to the response.

While transparent to users, this field also allows services to optimize internal

subscriptions if filter(s) are sufficiently specific.

timearista.time.TimeBounds

TimeRange allows limiting response data to within a specified time window.

If this field is populated, at least one of the two time fields are required.

This field is not allowed in the Subscribe RPC.

ChangeControlConfigStreamResponse

Field NameTypeDescription
valueChangeControlConfig

Value is a value deemed relevant to the initiating request.

This structure will always have its key-field populated. Which other fields are

populated, and why, depends on the value of Operation and what triggered this notification.

timegoogle.protobuf.Timestamp

Time holds the timestamp of this ChangeControlConfig’s last modification.

typearista.subscriptions.Operation

Operation indicates how the ChangeControlConfig value in this response should be considered.

Under non-subscribe requests, this value should always be INITIAL. In a subscription,

once all initial data is streamed and the client begins to receive modification updates,

you should not see INITIAL again.

ChangeControlRequest

Field NameTypeDescription
keyChangeControlKey

Key uniquely identifies a ChangeControl instance to retrieve.

This value must be populated.

timegoogle.protobuf.Timestamp

Time indicates the time for which you are interested in the data.

If no time is given, the server will use the time at which it makes the request.

ChangeControlResponse

Field NameTypeDescription
valueChangeControl

Value is the value requested.

This structure will be fully-populated as it exists in the datastore. If

optional fields were not given at creation, these fields will be empty or

set to default values.

timegoogle.protobuf.Timestamp

Time carries the (UTC) timestamp of the last-modification of the

ChangeControl instance in this response.

ChangeControlStreamRequest

Field NameTypeDescription
partial_eq_filterChangeControl[…]

PartialEqFilter provides a way to server-side filter a GetAll/Subscribe.

This requires all provided fields to be equal to the response.

While transparent to users, this field also allows services to optimize internal

subscriptions if filter(s) are sufficiently specific.

timearista.time.TimeBounds

TimeRange allows limiting response data to within a specified time window.

If this field is populated, at least one of the two time fields are required.

This field is not allowed in the Subscribe RPC.

ChangeControlStreamResponse

Field NameTypeDescription
valueChangeControl

Value is a value deemed relevant to the initiating request.

This structure will always have its key-field populated. Which other fields are

populated, and why, depends on the value of Operation and what triggered this notification.

timegoogle.protobuf.Timestamp

Time holds the timestamp of this ChangeControl’s last modification.

typearista.subscriptions.Operation

Operation indicates how the ChangeControl value in this response should be considered.

Under non-subscribe requests, this value should always be INITIAL. In a subscription,

once all initial data is streamed and the client begins to receive modification updates,

you should not see INITIAL again.

ApproveConfigService

Method NameRequest TypeResponse TypeDescription
GetOneApproveConfigRequestApproveConfigResponse

GetAllApproveConfigStreamRequestApproveConfigStreamResponse stream

SubscribeApproveConfigStreamRequestApproveConfigStreamResponse stream

SetApproveConfigSetRequestApproveConfigSetResponse

DeleteApproveConfigDeleteRequestApproveConfigDeleteResponse

ChangeControlConfigService

Method NameRequest TypeResponse TypeDescription
GetOneChangeControlConfigRequestChangeControlConfigResponse

GetAllChangeControlConfigStreamRequestChangeControlConfigStreamResponse stream

SubscribeChangeControlConfigStreamRequestChangeControlConfigStreamResponse stream

SetChangeControlConfigSetRequestChangeControlConfigSetResponse

DeleteChangeControlConfigDeleteRequestChangeControlConfigDeleteResponse

ChangeControlService

Method NameRequest TypeResponse TypeDescription
GetOneChangeControlRequestChangeControlResponse

GetAllChangeControlStreamRequestChangeControlStreamResponse stream

SubscribeChangeControlStreamRequestChangeControlStreamResponse stream