From b75c00f2208aed8314e39c496f1a80003170924e Mon Sep 17 00:00:00 2001 From: tanayam Date: Mon, 15 Apr 2024 15:01:47 -0700 Subject: [PATCH] Update imagestatus proto: add new skip cause Change-Id: If46bae47992ef43912e1b2a0047231f75688ccb4 --- arista/workspace.v1/services.gen.proto | 164 ++++++++++++ arista/workspace.v1/services.gen.swagger.json | 233 ++++++++++++------ arista/workspace.v1/workspace-changelog.yaml | 4 + arista/workspace.v1/workspace.proto | 3 + 4 files changed, 332 insertions(+), 72 deletions(-) diff --git a/arista/workspace.v1/services.gen.proto b/arista/workspace.v1/services.gen.proto index 930ecde1..3b51deed 100644 --- a/arista/workspace.v1/services.gen.proto +++ b/arista/workspace.v1/services.gen.proto @@ -137,6 +137,45 @@ message WorkspaceStreamResponse { arista.subscriptions.Operation type = 3; }; +message WorkspaceBatchedStreamRequest { + // 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. + repeated Workspace partial_eq_filter = 1; + + // 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. + // + // For GetAll, the fields start and end can be used as follows: + // + // * end: Returns the state of each Workspace at end. + // * Each Workspace response is fully-specified (all fields set). + // * start: Returns the state of each Workspace at start, followed by updates until now. + // * Each Workspace response at start is fully-specified, but updates may be partial. + // * start and end: Returns the state of each Workspace at start, followed by updates + // until end. + // * Each Workspace response at start is fully-specified, but updates until end may + // be partial. + // + // This field is not allowed in the Subscribe RPC. + arista.time.TimeBounds time = 3; + + // MaxMessages limits the maximum number of messages that can be contained in one batch. + // MaxMessages is required to be at least 1. + // The maximum number of messages in a batch is min(max_messages, INTERNAL_BATCH_LIMIT) + // INTERNAL_BATCH_LIMIT is set based on the maximum message size. + google.protobuf.UInt32Value max_messages = 4; +}; + +message WorkspaceBatchedStreamResponse { + // Values are the values deemed relevant to the initiating request. + // The length of this structure is guaranteed to be between (inclusive) 1 and + // min(req.max_messages, INTERNAL_BATCH_LIMIT). + repeated WorkspaceStreamResponse responses = 1; +}; + service WorkspaceService { rpc GetOne (WorkspaceRequest) returns (WorkspaceResponse); rpc GetSome (WorkspaceSomeRequest) returns (stream WorkspaceSomeResponse); @@ -144,6 +183,8 @@ service WorkspaceService { rpc Subscribe (WorkspaceStreamRequest) returns (stream WorkspaceStreamResponse); rpc GetMeta (WorkspaceStreamRequest) returns (MetaResponse); rpc SubscribeMeta (WorkspaceStreamRequest) returns (stream MetaResponse); + rpc GetAllBatched (WorkspaceBatchedStreamRequest) returns (stream WorkspaceBatchedStreamResponse); + rpc SubscribeBatched (WorkspaceBatchedStreamRequest) returns (stream WorkspaceBatchedStreamResponse); } message WorkspaceBuildRequest { @@ -231,6 +272,45 @@ message WorkspaceBuildStreamResponse { arista.subscriptions.Operation type = 3; }; +message WorkspaceBuildBatchedStreamRequest { + // 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. + repeated WorkspaceBuild partial_eq_filter = 1; + + // 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. + // + // For GetAll, the fields start and end can be used as follows: + // + // * end: Returns the state of each WorkspaceBuild at end. + // * Each WorkspaceBuild response is fully-specified (all fields set). + // * start: Returns the state of each WorkspaceBuild at start, followed by updates until now. + // * Each WorkspaceBuild response at start is fully-specified, but updates may be partial. + // * start and end: Returns the state of each WorkspaceBuild at start, followed by updates + // until end. + // * Each WorkspaceBuild response at start is fully-specified, but updates until end may + // be partial. + // + // This field is not allowed in the Subscribe RPC. + arista.time.TimeBounds time = 3; + + // MaxMessages limits the maximum number of messages that can be contained in one batch. + // MaxMessages is required to be at least 1. + // The maximum number of messages in a batch is min(max_messages, INTERNAL_BATCH_LIMIT) + // INTERNAL_BATCH_LIMIT is set based on the maximum message size. + google.protobuf.UInt32Value max_messages = 4; +}; + +message WorkspaceBuildBatchedStreamResponse { + // Values are the values deemed relevant to the initiating request. + // The length of this structure is guaranteed to be between (inclusive) 1 and + // min(req.max_messages, INTERNAL_BATCH_LIMIT). + repeated WorkspaceBuildStreamResponse responses = 1; +}; + service WorkspaceBuildService { rpc GetOne (WorkspaceBuildRequest) returns (WorkspaceBuildResponse); rpc GetSome (WorkspaceBuildSomeRequest) returns (stream WorkspaceBuildSomeResponse); @@ -238,6 +318,8 @@ service WorkspaceBuildService { rpc Subscribe (WorkspaceBuildStreamRequest) returns (stream WorkspaceBuildStreamResponse); rpc GetMeta (WorkspaceBuildStreamRequest) returns (MetaResponse); rpc SubscribeMeta (WorkspaceBuildStreamRequest) returns (stream MetaResponse); + rpc GetAllBatched (WorkspaceBuildBatchedStreamRequest) returns (stream WorkspaceBuildBatchedStreamResponse); + rpc SubscribeBatched (WorkspaceBuildBatchedStreamRequest) returns (stream WorkspaceBuildBatchedStreamResponse); } message WorkspaceBuildDetailsRequest { @@ -325,6 +407,45 @@ message WorkspaceBuildDetailsStreamResponse { arista.subscriptions.Operation type = 3; }; +message WorkspaceBuildDetailsBatchedStreamRequest { + // 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. + repeated WorkspaceBuildDetails partial_eq_filter = 1; + + // 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. + // + // For GetAll, the fields start and end can be used as follows: + // + // * end: Returns the state of each WorkspaceBuildDetails at end. + // * Each WorkspaceBuildDetails response is fully-specified (all fields set). + // * start: Returns the state of each WorkspaceBuildDetails at start, followed by updates until now. + // * Each WorkspaceBuildDetails response at start is fully-specified, but updates may be partial. + // * start and end: Returns the state of each WorkspaceBuildDetails at start, followed by updates + // until end. + // * Each WorkspaceBuildDetails response at start is fully-specified, but updates until end may + // be partial. + // + // This field is not allowed in the Subscribe RPC. + arista.time.TimeBounds time = 3; + + // MaxMessages limits the maximum number of messages that can be contained in one batch. + // MaxMessages is required to be at least 1. + // The maximum number of messages in a batch is min(max_messages, INTERNAL_BATCH_LIMIT) + // INTERNAL_BATCH_LIMIT is set based on the maximum message size. + google.protobuf.UInt32Value max_messages = 4; +}; + +message WorkspaceBuildDetailsBatchedStreamResponse { + // Values are the values deemed relevant to the initiating request. + // The length of this structure is guaranteed to be between (inclusive) 1 and + // min(req.max_messages, INTERNAL_BATCH_LIMIT). + repeated WorkspaceBuildDetailsStreamResponse responses = 1; +}; + service WorkspaceBuildDetailsService { rpc GetOne (WorkspaceBuildDetailsRequest) returns (WorkspaceBuildDetailsResponse); rpc GetSome (WorkspaceBuildDetailsSomeRequest) returns (stream WorkspaceBuildDetailsSomeResponse); @@ -332,6 +453,8 @@ service WorkspaceBuildDetailsService { rpc Subscribe (WorkspaceBuildDetailsStreamRequest) returns (stream WorkspaceBuildDetailsStreamResponse); rpc GetMeta (WorkspaceBuildDetailsStreamRequest) returns (MetaResponse); rpc SubscribeMeta (WorkspaceBuildDetailsStreamRequest) returns (stream MetaResponse); + rpc GetAllBatched (WorkspaceBuildDetailsBatchedStreamRequest) returns (stream WorkspaceBuildDetailsBatchedStreamResponse); + rpc SubscribeBatched (WorkspaceBuildDetailsBatchedStreamRequest) returns (stream WorkspaceBuildDetailsBatchedStreamResponse); } message WorkspaceConfigRequest { @@ -419,6 +542,45 @@ message WorkspaceConfigStreamResponse { arista.subscriptions.Operation type = 3; }; +message WorkspaceConfigBatchedStreamRequest { + // 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. + repeated WorkspaceConfig partial_eq_filter = 1; + + // 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. + // + // For GetAll, the fields start and end can be used as follows: + // + // * end: Returns the state of each WorkspaceConfig at end. + // * Each WorkspaceConfig response is fully-specified (all fields set). + // * start: Returns the state of each WorkspaceConfig at start, followed by updates until now. + // * Each WorkspaceConfig response at start is fully-specified, but updates may be partial. + // * start and end: Returns the state of each WorkspaceConfig at start, followed by updates + // until end. + // * Each WorkspaceConfig response at start is fully-specified, but updates until end may + // be partial. + // + // This field is not allowed in the Subscribe RPC. + arista.time.TimeBounds time = 3; + + // MaxMessages limits the maximum number of messages that can be contained in one batch. + // MaxMessages is required to be at least 1. + // The maximum number of messages in a batch is min(max_messages, INTERNAL_BATCH_LIMIT) + // INTERNAL_BATCH_LIMIT is set based on the maximum message size. + google.protobuf.UInt32Value max_messages = 4; +}; + +message WorkspaceConfigBatchedStreamResponse { + // Values are the values deemed relevant to the initiating request. + // The length of this structure is guaranteed to be between (inclusive) 1 and + // min(req.max_messages, INTERNAL_BATCH_LIMIT). + repeated WorkspaceConfigStreamResponse responses = 1; +}; + message WorkspaceConfigSetRequest { // WorkspaceConfig carries the value to set into the datastore. // See the documentation on the WorkspaceConfig struct for which fields are required. @@ -515,4 +677,6 @@ service WorkspaceConfigService { rpc Delete (WorkspaceConfigDeleteRequest) returns (WorkspaceConfigDeleteResponse); rpc DeleteSome (WorkspaceConfigDeleteSomeRequest) returns (stream WorkspaceConfigDeleteSomeResponse); rpc DeleteAll (WorkspaceConfigDeleteAllRequest) returns (stream WorkspaceConfigDeleteAllResponse); + rpc GetAllBatched (WorkspaceConfigBatchedStreamRequest) returns (stream WorkspaceConfigBatchedStreamResponse); + rpc SubscribeBatched (WorkspaceConfigBatchedStreamRequest) returns (stream WorkspaceConfigBatchedStreamResponse); } diff --git a/arista/workspace.v1/services.gen.swagger.json b/arista/workspace.v1/services.gen.swagger.json index 7a3d5c79..6b363bbf 100644 --- a/arista/workspace.v1/services.gen.swagger.json +++ b/arista/workspace.v1/services.gen.swagger.json @@ -185,24 +185,12 @@ }, "parameters": [ { - "name": "keys", + "name": "body", "in": "body", "required": true, "schema": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/arista.workspace.v1.WorkspaceKey" - } + "$ref": "#/definitions/arista.workspace.v1.WorkspaceSomeRequest" } - }, - { - "name": "time", - "description": "Time indicates the time for which you are interested in the data.\nIf no time is given, the server will use the time at which it makes the request.", - "in": "query", - "required": false, - "type": "string", - "format": "date-time" } ], "tags": [ @@ -610,24 +598,12 @@ }, "parameters": [ { - "name": "keys", + "name": "body", "in": "body", "required": true, "schema": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/arista.workspace.v1.WorkspaceBuildKey" - } + "$ref": "#/definitions/arista.workspace.v1.WorkspaceBuildSomeRequest" } - }, - { - "name": "time", - "description": "Time indicates the time for which you are interested in the data.\nIf no time is given, the server will use the time at which it makes the request.", - "in": "query", - "required": false, - "type": "string", - "format": "date-time" } ], "tags": [ @@ -1042,24 +1018,12 @@ }, "parameters": [ { - "name": "keys", + "name": "body", "in": "body", "required": true, "schema": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/arista.workspace.v1.WorkspaceBuildDetailsKey" - } + "$ref": "#/definitions/arista.workspace.v1.WorkspaceBuildDetailsSomeRequest" } - }, - { - "name": "time", - "description": "Time indicates the time for which you are interested in the data.\nIf no time is given, the server will use the time at which it makes the request.", - "in": "query", - "required": false, - "type": "string", - "format": "date-time" } ], "tags": [ @@ -1549,16 +1513,11 @@ }, "parameters": [ { - "name": "keys", - "description": "key contains a list of WorkspaceConfig keys to delete", + "name": "body", "in": "body", "required": true, "schema": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/arista.workspace.v1.WorkspaceKey" - } + "$ref": "#/definitions/arista.workspace.v1.WorkspaceConfigDeleteSomeRequest" } } ], @@ -1595,24 +1554,12 @@ }, "parameters": [ { - "name": "keys", + "name": "body", "in": "body", "required": true, "schema": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/arista.workspace.v1.WorkspaceKey" - } + "$ref": "#/definitions/arista.workspace.v1.WorkspaceConfigSomeRequest" } - }, - { - "name": "time", - "description": "Time indicates the time for which you are interested in the data.\nIf no time is given, the server will use the time at which it makes the request.", - "in": "query", - "required": false, - "type": "string", - "format": "date-time" } ], "tags": [ @@ -1716,16 +1663,11 @@ }, "parameters": [ { - "name": "values", - "description": "value contains a list of WorkspaceConfig values to write.\nIt is possible to provide more values than can fit within either:\n - the maxiumum send size of the client\n - the maximum receive size of the server\nIf this error occurs you must reduce the number of values sent.\nSee gRPC \"maximum message size\" documentation for more information.", + "name": "body", "in": "body", "required": true, "schema": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/arista.workspace.v1.WorkspaceConfig" - } + "$ref": "#/definitions/arista.workspace.v1.WorkspaceConfigSetSomeRequest" } } ], @@ -2685,10 +2627,11 @@ "IMAGE_VALIDATION_SKIP_CAUSE_UNSPECIFIED", "IMAGE_VALIDATION_SKIP_CAUSE_INACTIVE", "IMAGE_VALIDATION_SKIP_CAUSE_PRE_PROVISIONED", - "IMAGE_VALIDATION_SKIP_CAUSE_IMAGE_UNCHANGED" + "IMAGE_VALIDATION_SKIP_CAUSE_IMAGE_UNCHANGED", + "IMAGE_VALIDATION_SKIP_CAUSE_NO_PROPOSED_SOFTWARE" ], "default": "IMAGE_VALIDATION_SKIP_CAUSE_UNSPECIFIED", - "description": "ImageValidationSkipCause enumerates the set of reasons a device can skip the image\nvalidation stage.\n\n - IMAGE_VALIDATION_SKIP_CAUSE_UNSPECIFIED: IMAGE_VALIDATION_SKIP_CAUSE_UNSPECIFIED indicates image validation skip cause is\nunspecified.\n - IMAGE_VALIDATION_SKIP_CAUSE_INACTIVE: IMAGE_VALIDATION_SKIP_CAUSE_INACTIVE indicates that the stage was skipped\nbecause the device is not streaming.\n - IMAGE_VALIDATION_SKIP_CAUSE_PRE_PROVISIONED: IMAGE_VALIDATION_SKIP_CAUSE_PRE_PROVISIONED indicates that the stage was\nskipped because the device is pre-provisioned.\n - IMAGE_VALIDATION_SKIP_CAUSE_IMAGE_UNCHANGED: IMAGE_VALIDATION_SKIP_CAUSE_IMAGE_UNCHANGED indicates that the stage was\nskipped because the device has no image changes in the workspace." + "description": "ImageValidationSkipCause enumerates the set of reasons a device can skip the image\nvalidation stage.\n\n - IMAGE_VALIDATION_SKIP_CAUSE_UNSPECIFIED: IMAGE_VALIDATION_SKIP_CAUSE_UNSPECIFIED indicates image validation skip cause is\nunspecified.\n - IMAGE_VALIDATION_SKIP_CAUSE_INACTIVE: IMAGE_VALIDATION_SKIP_CAUSE_INACTIVE indicates that the stage was skipped\nbecause the device is not streaming.\n - IMAGE_VALIDATION_SKIP_CAUSE_PRE_PROVISIONED: IMAGE_VALIDATION_SKIP_CAUSE_PRE_PROVISIONED indicates that the stage was\nskipped because the device is pre-provisioned.\n - IMAGE_VALIDATION_SKIP_CAUSE_IMAGE_UNCHANGED: IMAGE_VALIDATION_SKIP_CAUSE_IMAGE_UNCHANGED indicates that the stage was\nskipped because the device has no image changes in the workspace.\n - IMAGE_VALIDATION_SKIP_CAUSE_NO_PROPOSED_SOFTWARE: IMAGE_VALIDATION_SKIP_CAUSE_NO_PROPOSED_SOFTWARE indicates that the stage was\nskipped because the device has no proposed software changes in the workspace." }, "arista.workspace.v1.InputError": { "type": "object", @@ -2953,6 +2896,19 @@ }, "description": "Workspace holds the status of a workspace." }, + "arista.workspace.v1.WorkspaceBatchedStreamResponse": { + "type": "object", + "properties": { + "responses": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/arista.workspace.v1.WorkspaceStreamResponse" + }, + "description": "Values are the values deemed relevant to the initiating request.\nThe length of this structure is guaranteed to be between (inclusive) 1 and \nmin(req.max_messages, INTERNAL_BATCH_LIMIT)." + } + } + }, "arista.workspace.v1.WorkspaceBuild": { "type": "object", "properties": { @@ -2979,6 +2935,19 @@ }, "description": "WorkspaceBuild holds the details for a build of a workspace." }, + "arista.workspace.v1.WorkspaceBuildBatchedStreamResponse": { + "type": "object", + "properties": { + "responses": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/arista.workspace.v1.WorkspaceBuildStreamResponse" + }, + "description": "Values are the values deemed relevant to the initiating request.\nThe length of this structure is guaranteed to be between (inclusive) 1 and \nmin(req.max_messages, INTERNAL_BATCH_LIMIT)." + } + } + }, "arista.workspace.v1.WorkspaceBuildDetails": { "type": "object", "properties": { @@ -3029,6 +2998,19 @@ }, "description": "WorkspaceBuildDetails holds the details for a build of a device in a workspace." }, + "arista.workspace.v1.WorkspaceBuildDetailsBatchedStreamResponse": { + "type": "object", + "properties": { + "responses": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/arista.workspace.v1.WorkspaceBuildDetailsStreamResponse" + }, + "description": "Values are the values deemed relevant to the initiating request.\nThe length of this structure is guaranteed to be between (inclusive) 1 and \nmin(req.max_messages, INTERNAL_BATCH_LIMIT)." + } + } + }, "arista.workspace.v1.WorkspaceBuildDetailsKey": { "type": "object", "properties": { @@ -3066,6 +3048,23 @@ } } }, + "arista.workspace.v1.WorkspaceBuildDetailsSomeRequest": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/arista.workspace.v1.WorkspaceBuildDetailsKey" + } + }, + "time": { + "type": "string", + "format": "date-time", + "description": "Time indicates the time for which you are interested in the data.\nIf no time is given, the server will use the time at which it makes the request." + } + } + }, "arista.workspace.v1.WorkspaceBuildDetailsSomeResponse": { "type": "object", "properties": { @@ -3150,6 +3149,23 @@ } } }, + "arista.workspace.v1.WorkspaceBuildSomeRequest": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/arista.workspace.v1.WorkspaceBuildKey" + } + }, + "time": { + "type": "string", + "format": "date-time", + "description": "Time indicates the time for which you are interested in the data.\nIf no time is given, the server will use the time at which it makes the request." + } + } + }, "arista.workspace.v1.WorkspaceBuildSomeResponse": { "type": "object", "properties": { @@ -3228,6 +3244,19 @@ }, "description": "WorkspaceConfig holds the configuration of a workspace." }, + "arista.workspace.v1.WorkspaceConfigBatchedStreamResponse": { + "type": "object", + "properties": { + "responses": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/arista.workspace.v1.WorkspaceConfigStreamResponse" + }, + "description": "Values are the values deemed relevant to the initiating request.\nThe length of this structure is guaranteed to be between (inclusive) 1 and \nmin(req.max_messages, INTERNAL_BATCH_LIMIT)." + } + } + }, "arista.workspace.v1.WorkspaceConfigDeleteAllResponse": { "type": "object", "properties": { @@ -3265,6 +3294,19 @@ } } }, + "arista.workspace.v1.WorkspaceConfigDeleteSomeRequest": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/arista.workspace.v1.WorkspaceKey" + }, + "title": "key contains a list of WorkspaceConfig keys to delete" + } + } + }, "arista.workspace.v1.WorkspaceConfigDeleteSomeResponse": { "type": "object", "properties": { @@ -3306,6 +3348,19 @@ } } }, + "arista.workspace.v1.WorkspaceConfigSetSomeRequest": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/arista.workspace.v1.WorkspaceConfig" + }, + "description": "value contains a list of WorkspaceConfig values to write.\nIt is possible to provide more values than can fit within either:\n - the maxiumum send size of the client\n - the maximum receive size of the server\nIf this error occurs you must reduce the number of values sent.\nSee gRPC \"maximum message size\" documentation for more information." + } + } + }, "arista.workspace.v1.WorkspaceConfigSetSomeResponse": { "type": "object", "properties": { @@ -3317,6 +3372,23 @@ } } }, + "arista.workspace.v1.WorkspaceConfigSomeRequest": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/arista.workspace.v1.WorkspaceKey" + } + }, + "time": { + "type": "string", + "format": "date-time", + "description": "Time indicates the time for which you are interested in the data.\nIf no time is given, the server will use the time at which it makes the request." + } + } + }, "arista.workspace.v1.WorkspaceConfigSomeResponse": { "type": "object", "properties": { @@ -3396,6 +3468,23 @@ } } }, + "arista.workspace.v1.WorkspaceSomeRequest": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/arista.workspace.v1.WorkspaceKey" + } + }, + "time": { + "type": "string", + "format": "date-time", + "description": "Time indicates the time for which you are interested in the data.\nIf no time is given, the server will use the time at which it makes the request." + } + } + }, "arista.workspace.v1.WorkspaceSomeResponse": { "type": "object", "properties": { diff --git a/arista/workspace.v1/workspace-changelog.yaml b/arista/workspace.v1/workspace-changelog.yaml index f60f3e5d..666abf3e 100644 --- a/arista/workspace.v1/workspace-changelog.yaml +++ b/arista/workspace.v1/workspace-changelog.yaml @@ -7,6 +7,10 @@ # New entries go on top. Changes: + - date: 2024-04-15 + description: Add no proposed software skip cause + version: 1.3.3 + cvaas: true - date: 2024-04-12 description: Add no config source skip cause version: 1.3.2 diff --git a/arista/workspace.v1/workspace.proto b/arista/workspace.v1/workspace.proto index 31e6e27c..6baffffe 100644 --- a/arista/workspace.v1/workspace.proto +++ b/arista/workspace.v1/workspace.proto @@ -478,4 +478,7 @@ enum ImageValidationSkipCause { // IMAGE_VALIDATION_SKIP_CAUSE_IMAGE_UNCHANGED indicates that the stage was // skipped because the device has no image changes in the workspace. IMAGE_VALIDATION_SKIP_CAUSE_IMAGE_UNCHANGED = 3; + // IMAGE_VALIDATION_SKIP_CAUSE_NO_PROPOSED_SOFTWARE indicates that the stage was + // skipped because the device has no proposed software changes in the workspace. + IMAGE_VALIDATION_SKIP_CAUSE_NO_PROPOSED_SOFTWARE = 4; }