cloudvision.api.arista.softwaremanagement.v1 package

Module contents

class cloudvision.api.arista.softwaremanagement.v1.Arch(value: int)[source]

Bases: Enum

Arch is an enum used to specify the target architecture of an image or extension.

AARCH64 = Arch.AARCH64

ARCH_AARCH64 indicates that the software is intended to be run on ARM 64-bit platforms

I386 = Arch.I386

ARCH_I386 indicates that the software is intended for the i386 architecture

I686 = Arch.I686

ARCH_I686 indicates that the software is intended for the i686 architecture

MULTIARCH = Arch.MULTIARCH

ARCH_MULTIARCH indicates that the software supports all architectures

NO_ARCH = Arch.NO_ARCH

ARCH_NO_ARCH indicates that the software is architecture agnostic

UNSPECIFIED = Arch.UNSPECIFIED

ARCH_UNSPECIFIED indicates an unknown or unspecified architecture

X86_64 = Arch.X86_64

ARCH_X86_64 indicates that the software is intended to be run on 64-bit platforms

name: str | None
value: int
class cloudvision.api.arista.softwaremanagement.v1.ConcreteFile(name: str | None = <PLACEHOLDER>, file_server_path: str | None = <PLACEHOLDER>, size: int | None = <PLACEHOLDER>, release: str | None = <PLACEHOLDER>)[source]

Bases: Message

ConcreteFile contains the name and corresponding metadata of the file (like fileserver, file size)

file_server_path: str | None = <PLACEHOLDER>

file_server_path is the location of the image or extension as stored in CloudVision

name: str | None = <PLACEHOLDER>

name is the name of the concrete file

release: str | None = <PLACEHOLDER>

release is the release version of the concrete file

size: int | None = <PLACEHOLDER>

size is the size of the image or extension in bytes

class cloudvision.api.arista.softwaremanagement.v1.ConcreteTypeToConcreteSwiMap(values: ~typing.Dict[str, ~cloudvision.api.arista.softwaremanagement.v1.ConcreteFile] = <PLACEHOLDER>)[source]

Bases: Message

ConcreteTypeToConcreteSwiMap indicates a map keyed by stringified concrete type (limited to i386, i686, x86_64 and aarch64, but can be extended to platform types in the future) to the concrete swi map.

values: Dict[str, ConcreteFile] = <PLACEHOLDER>

values contains a collection of ConcreteTypeToConcreteSwiMap items.

class cloudvision.api.arista.softwaremanagement.v1.DigestType(value: int)[source]

Bases: Enum

DigestType is the digest algorithm used as a checksum on the software file.

SHA512 = DigestType.SHA512

DIGEST_TYPE_SHA512 indicates that the SHA512 algorithm is used to calculate the digest

UNSPECIFIED = DigestType.UNSPECIFIED

DIGEST_TYPE_UNSPECIFIED indicates that the digest type is unknown

name: str | None
value: int
class cloudvision.api.arista.softwaremanagement.v1.ExtensionMetadata(description: str | None = <PLACEHOLDER>, name: str | None = <PLACEHOLDER>, version: str | None = <PLACEHOLDER>, release: str | None = <PLACEHOLDER>, epoch: str | None = <PLACEHOLDER>, arch: ~cloudvision.api.arista.softwaremanagement.v1.Arch = <PLACEHOLDER>, supported_eos_versions: ~cloudvision.api.fmp.RepeatedString = <PLACEHOLDER>)[source]

Bases: Message

ExtensionMetadata is versioning metadata describing extensions (.swix and .rpm).

arch: Arch = <PLACEHOLDER>

arch is the architecture of the swix or rpm extension

description: str | None = <PLACEHOLDER>

description is the swix or rpm description

epoch: str | None = <PLACEHOLDER>

epoch is versioning metadata in swix or rpm extensions which allows handling for hard-to-compare version numbers

name: str | None = <PLACEHOLDER>

name is the name of the swix or rpm extension

release: str | None = <PLACEHOLDER>

release is the value of the swix or rpm extension release

supported_eos_versions: ___fmp__.RepeatedString = <PLACEHOLDER>

supported_eos_versions is a list which contains EOS versions supported by the extension. An empty list indicates there are no known restrictions on the EOS versions supported by the extension

version: str | None = <PLACEHOLDER>

version is the version of the swix or rpm extension

class cloudvision.api.arista.softwaremanagement.v1.Flavor(value: int)[source]

Bases: Enum

Flavor is an enum containing the possible .swi flavor types.

CLOUD = Flavor.CLOUD

FLAVOR_CLOUD is a swi image that runs in a virtualized cloud environment

DEFAULT = Flavor.DEFAULT

FLAVOR_DEFAULT is the default swi image

DPE = Flavor.DPE

FLAVOR_DPE is a swi image that provides MacSec without a license

DPE_CTNR = Flavor.DPE_CTNR

FLAVOR_DPE_CTNR is a swi image that provides MacSec without a license and natively supports running containers on EOS

PDP = Flavor.PDP

FLAVOR_PDP is an image that defaults to support PDP but can also support CoPP

UNSPECIFIED = Flavor.UNSPECIFIED

FLAVOR_UNSPECIFIED indicates that the swi image flavor is unknown

name: str | None
value: int
class cloudvision.api.arista.softwaremanagement.v1.ImageFormatVersion(value: int)[source]

Bases: Enum

ImageFormatVersion is an enum defining the image format versions of a SWI image.

UNSPECIFIED = ImageFormatVersion.UNSPECIFIED

IMAGE_FORMAT_VERSION_UNSPECIFIED indicates an unknown image format

name: str | None
value: int
class cloudvision.api.arista.softwaremanagement.v1.Level(value: int)[source]

Bases: Enum

Level specifies relative importance of the information returned in the message field of the software releases status.

ERROR = Level.ERROR

LEVEL_ERROR is set when the message contains information alerting the user to an error condition that occurred while retrieving the set of software releases. Remedial user action may be required to clear this condition.

INFO = Level.INFO

LEVEL_INFO is set when the message contains useful, informational content. No user action is required.

UNSPECIFIED = Level.UNSPECIFIED

LEVEL_UNSPECIFIED is set when the message level is unknown

WARNING = Level.WARNING

LEVEL_WARNING is set when the message contains important information for the user that should be addressed for continued proper behavior

name: str | None
value: int
class cloudvision.api.arista.softwaremanagement.v1.MetaResponse(time: datetime.datetime = <PLACEHOLDER>, type: '__subscriptions__.Operation' = <PLACEHOLDER>, count: int | None = <PLACEHOLDER>)[source]

Bases: Message

count: int | None = <PLACEHOLDER>

Count is the number of items present under the conditions of the request.

time: datetime = <PLACEHOLDER>

Time holds the timestamp of the last item included in the metadata calculation.

type: __subscriptions__.Operation = <PLACEHOLDER>

Operation indicates how the 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.

class cloudvision.api.arista.softwaremanagement.v1.Progress(value: int)[source]

Bases: Enum

Progress is used by the Repository service to describe the stages of the software upload and verification process.

ERROR = Progress.ERROR

PROGRESS_ERROR indicates that an image or extension failed at either the upload or validation phase. This is a terminal state of an upload.

INITIAL = Progress.INITIAL

PROGRESS_INITIAL indicates that a software upload has begun

LOADING = Progress.LOADING

PROGRESS_LOADING indicates that an image or extension is currently being retrieved from Arista’s Software Download site or CloudVision file server for processing

QUEUED = Progress.QUEUED

PROGRESS_QUEUED indicates that an image or extension upload is waiting in a queue

SAVING = Progress.SAVING

PROGRESS_SAVING indicates that an image or extension is being uploaded to CloudVision file server

SUCCESS = Progress.SUCCESS

PROGRESS_SUCCESS indicates that an image or extension has been successfully uploaded and validated. This is a terminal state of an upload.

UNSPECIFIED = Progress.UNSPECIFIED

PROGRESS_UNSPECIFIED indicates that upload progress is not currently reportable

VALIDATING = Progress.VALIDATING

PROGRESS_VALIDATING indicates that an image or extension is being validated

name: str | None
value: int
class cloudvision.api.arista.softwaremanagement.v1.RecommendedAction(value: int)[source]

Bases: Enum

RecommendedAction is an enum containing all of the possible steps a user can take to address problems encountered while performing software management-related actions.

ACCEPT_EULA = RecommendedAction.ACCEPT_EULA

RECOMMENDED_ACTION_ACCEPT_EULA indicates that a particular issue can be resolved by accepting the EULA agreement available at the Arista Software Download site.

ADD_TOKEN = RecommendedAction.ADD_TOKEN

RECOMMENDED_ACTION_ADD_TOKEN indicates that a particular issue can be resolved by adding the access token stored in CloudVision.

CONTACT_TAC = RecommendedAction.CONTACT_TAC

RECOMMENDED_ACTION_CONTACT_TAC indicates that in order to resolve the current issue, Arista TAC assistance is recommended.

RETRY = RecommendedAction.RETRY

RECOMMENDED_ACTION_RETRY indicates that a paticular issue may be resolved by re-attempting the previous action.

UNSPECIFIED = RecommendedAction.UNSPECIFIED

RECOMMENDED_ACTION_UNSPECIFIED indicates that no remedial action is needed.

UPDATE_TOKEN = RecommendedAction.UPDATE_TOKEN

RECOMMENDED_ACTION_UPDATE_TOKEN indicates that a particular issue can be resolved by updating the access token stored in CloudVision.

name: str | None
value: int
class cloudvision.api.arista.softwaremanagement.v1.Releases(status: ~cloudvision.api.arista.softwaremanagement.v1.ReleasesStatus = <PLACEHOLDER>, uris: ~cloudvision.api.fmp.RepeatedString = <PLACEHOLDER>)[source]

Bases: Message

Releases is the entire set of software releases available from the Arista’s Software Download site. Once downloaded, a software release can be deployed to devices managed by CloudVision.

status: ReleasesStatus = <PLACEHOLDER>

status is providing additional information about the retrieval of the software releases returned in the message

uris: ___fmp__.RepeatedString = <PLACEHOLDER>

uris are the URI paths specifying the location of the available software releases that can be downloaded from the Arista’s Software Download site. These URIs are used by the RepositoryConfig API to add a software release to CloudVision.

class cloudvision.api.arista.softwaremanagement.v1.ReleasesRequest(time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

time: datetime = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.ReleasesResponse(value: 'Releases' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

time: datetime = <PLACEHOLDER>

Time carries the (UTC) timestamp of the last-modification of the Releases instance in this response.

value: Releases = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.ReleasesServiceBase[source]

Bases: ServiceBase

async get_all(releases_stream_request: ReleasesStreamRequest) AsyncIterator[ReleasesStreamResponse][source]
async get_one(releases_request: ReleasesRequest) ReleasesResponse[source]
async subscribe(releases_stream_request: ReleasesStreamRequest) AsyncIterator[ReleasesStreamResponse][source]
async subscribe_meta(releases_stream_request: ReleasesStreamRequest) AsyncIterator[MetaResponse][source]
class cloudvision.api.arista.softwaremanagement.v1.ReleasesServiceStub(channel: Channel, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: Mapping[str, str | bytes] | Collection[Tuple[str, str | bytes]] | None = None)[source]

Bases: ServiceStub

async get_all(releases_stream_request: ReleasesStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[ReleasesStreamResponse][source]
async get_one(releases_request: ReleasesRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) ReleasesResponse[source]
async subscribe(releases_stream_request: ReleasesStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[ReleasesStreamResponse][source]
async subscribe_meta(releases_stream_request: ReleasesStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[MetaResponse][source]
class cloudvision.api.arista.softwaremanagement.v1.ReleasesStatus(level: ~cloudvision.api.arista.softwaremanagement.v1.Level = <PLACEHOLDER>, message: str | None = <PLACEHOLDER>, recommended_action: ~cloudvision.api.arista.softwaremanagement.v1.RecommendedAction = <PLACEHOLDER>)[source]

Bases: Message

ReleasesStatus contains information about the state of the available software releases which are retrieved from Arista’s Software Download site by CloudVision.

level: Level = <PLACEHOLDER>

level is the relative importance of the message field contained in the status

message: str | None = <PLACEHOLDER>

message is populated with a string which will provide more information regarding the latest interaction with the Arista’s Software Download site while pulling the set of available software releases

recommended_action: RecommendedAction = <PLACEHOLDER>

recommended_action expresses a particular user-actionable step that can be carried out to ensure the proper operation of CloudVision while interacting with Arista’s Software Download site to obtain the set of available software releases.

class cloudvision.api.arista.softwaremanagement.v1.ReleasesStreamRequest(partial_eq_filter: List[ForwardRef('Releases')] = <PLACEHOLDER>, time: '__time__.TimeBounds' = <PLACEHOLDER>)[source]

Bases: Message

partial_eq_filter: List[Releases] = <PLACEHOLDER>

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.

time: __time__.TimeBounds = <PLACEHOLDER>

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 Releases at end. * Each Releases response is fully-specified (all fields set).

  • start: Returns the state of each Releases at start, followed by updates until now. * Each Releases response at start is fully-specified, but updates may be partial.

  • start and end: Returns the state of each Releases at start, followed by updates until end. * Each Releases response at start is fully-specified, but updates until end may

    be partial.

This field is not allowed in the Subscribe RPC.

class cloudvision.api.arista.softwaremanagement.v1.ReleasesStreamResponse(value: 'Releases' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>, type: '__subscriptions__.Operation' = <PLACEHOLDER>)[source]

Bases: Message

time: datetime = <PLACEHOLDER>

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

type: __subscriptions__.Operation = <PLACEHOLDER>

Operation indicates how the Releases 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.

value: Releases = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.Repository(key: ~cloudvision.api.arista.softwaremanagement.v1.RepositoryKey = <PLACEHOLDER>, uploaded_by: str | None = <PLACEHOLDER>, uploaded_at: ~datetime.datetime = <PLACEHOLDER>, last_modified_by: str | None = <PLACEHOLDER>, last_modified_at: ~datetime.datetime = <PLACEHOLDER>, software_status: ~cloudvision.api.arista.softwaremanagement.v1.SoftwareStatus = <PLACEHOLDER>, software_metadata: ~cloudvision.api.arista.softwaremanagement.v1.SoftwareMetadata = <PLACEHOLDER>)[source]

Bases: Message

Repository is the state model that displays metadata for software images and extensions.

Repository objects are created when new software is added via a Set request issued to the RepositoryConfig resource or when using the Software Upload REST API. The key uniquely identifies the software state and is identical to the key used to create it via the call to Set.

key: RepositoryKey = <PLACEHOLDER>

key is the unique identifier

last_modified_at: datetime = <PLACEHOLDER>

last_modified_at is the date and time of the most recent metadata modification

last_modified_by: str | None = <PLACEHOLDER>

last_modified_by is the author of the most recent metadata modification

software_metadata: SoftwareMetadata = <PLACEHOLDER>

software_metadata displays details about available software

software_status: SoftwareStatus = <PLACEHOLDER>

software_status displays status of the software that is being added to CloudVision

uploaded_at: datetime = <PLACEHOLDER>

uploaded_at specifies the date and time of the upload

uploaded_by: str | None = <PLACEHOLDER>

uploaded_by specifies the author of the upload

class cloudvision.api.arista.softwaremanagement.v1.RepositoryBatchedStreamRequest(partial_eq_filter: List[ForwardRef('Repository')] = <PLACEHOLDER>, time: '__time__.TimeBounds' = <PLACEHOLDER>, max_messages: int | None = <PLACEHOLDER>)[source]

Bases: Message

max_messages: int | None = <PLACEHOLDER>

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.

partial_eq_filter: List[Repository] = <PLACEHOLDER>

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.

time: __time__.TimeBounds = <PLACEHOLDER>

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 Repository at end. * Each Repository response is fully-specified (all fields set).

  • start: Returns the state of each Repository at start, followed by updates until now. * Each Repository response at start is fully-specified, but updates may be partial.

  • start and end: Returns the state of each Repository at start, followed by updates until end. * Each Repository response at start is fully-specified, but updates until end may

    be partial.

This field is not allowed in the Subscribe RPC.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryBatchedStreamResponse(responses: List[ForwardRef('RepositoryStreamResponse')] = <PLACEHOLDER>)[source]

Bases: Message

responses: List[RepositoryStreamResponse] = <PLACEHOLDER>

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

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfig(key: ~cloudvision.api.arista.softwaremanagement.v1.RepositoryKey = <PLACEHOLDER>, uri: str | None = <PLACEHOLDER>, reboot_required: bool | None = <PLACEHOLDER>)[source]

Bases: Message

RepositoryConfig objects are used to add, delete, and update images or extensions in CloudVision.

The Set method is used to add and modify software stored in CloudVision. The Delete method is used to remove software.

Adding Software to CloudVision:

When a Set is made, the software identified by the URI will be downloaded from Arista’s Software Download site and stored in CloudVision. The status of the software will be reflected by a corresponding Repository entry identified by the same RepositoryKey.

Here is an example where a .swi EOS image is added to CloudVision:

``` {

“value”: {
“key”: {

“name”: “EOS64-4.30.0.1F.swi”

}, “uri”: “/support/download/EOS-USA/Active Releases/4.30/EOS-4.30.0.1F/EOS64-4.30.0.1F.swi”, “rebootRequired”: true

},

}

The following is an example of a configuration that will add the _AristaAppForSplunk-2.0.1-4.27.swix_ extension to CloudVision:

``` {

“value”: {
“key”: {

“name”: “AristaAppForSplunk-2.0.1-4.27.swix”

}, “uri”: “/support/download/Extensions/Splunk/AristaAppForSplunk-2.0.1-4.27.swix”, “rebootRequired”: false

},

}

Updating Existing Software:

Repository metadata objects can be _updated_ by using the config Set method and specifying the field or fields to be modified. Currently, reboot_required is the only field that can be modified after software has been added to CloudVision. All other fields must match the existing configuration, or can be omitted.

NOTE: The reboot_required field must be true for .swi images.

In this example, we update the reboot_required field changing it from false to true while leaving out the uri field:

``` {

“value”: {
“key”: {

“name”: “AristaAppForSplunk-2.0.1-4.27.swix”

}, “rebootRequired”: true

},

}

Deleting Software:

Repository objects can be deleted using the RepositoryConfig Delete method. A Delete request will specify the key which uniquely identifies the image or extension in CloudVision. For example, a delete request will look like the following: ``` {

“value”: {
“key”: {

“name”: “AristaAppForSplunk-2.0.1-4.27.swix”

},

},

}

key: RepositoryKey = <PLACEHOLDER>

key is a unique identifier that must be supplied by the user to start a valid upload of software

reboot_required: bool | None = <PLACEHOLDER>

reboot_required is a Boolean indicating if a device requires a reboot after software installation. .swi images always require a reboot.

uri: str | None = <PLACEHOLDER>

uri value depends on the origin of the software. If you are downloading an image or extension file from Arista’s Software Download site, use the site identifier. If you are uploading software from your computer using the Software Upload REST API, this field will be populated with the CloudVision file server identifier.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigBatchedStreamRequest(partial_eq_filter: List[ForwardRef('RepositoryConfig')] = <PLACEHOLDER>, time: '__time__.TimeBounds' = <PLACEHOLDER>, max_messages: int | None = <PLACEHOLDER>)[source]

Bases: Message

max_messages: int | None = <PLACEHOLDER>

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.

partial_eq_filter: List[RepositoryConfig] = <PLACEHOLDER>

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.

time: __time__.TimeBounds = <PLACEHOLDER>

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 RepositoryConfig at end. * Each RepositoryConfig response is fully-specified (all fields set).

  • start: Returns the state of each RepositoryConfig at start, followed by updates until now. * Each RepositoryConfig response at start is fully-specified, but updates may be partial.

  • start and end: Returns the state of each RepositoryConfig at start, followed by updates until end. * Each RepositoryConfig response at start is fully-specified, but updates until end may

    be partial.

This field is not allowed in the Subscribe RPC.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigBatchedStreamResponse(responses: List[ForwardRef('RepositoryConfigStreamResponse')] = <PLACEHOLDER>)[source]

Bases: Message

responses: List[RepositoryConfigStreamResponse] = <PLACEHOLDER>

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

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigDeleteAllRequest(partial_eq_filter: List[ForwardRef('RepositoryConfig')] = <PLACEHOLDER>)[source]

Bases: Message

partial_eq_filter: List[RepositoryConfig] = <PLACEHOLDER>

PartialEqFilter provides a way to server-side filter a DeleteAll. This requires all provided fields to be equal to the response. A filtered DeleteAll will use GetAll with filter to find things to delete.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigDeleteAllResponse(type: '___fmp__.DeleteError' = <PLACEHOLDER>, error: str | None = <PLACEHOLDER>, key: 'RepositoryKey' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

error: str | None = <PLACEHOLDER>

This indicates the error message from the delete failure.

key: RepositoryKey = <PLACEHOLDER>

This is the key of the RepositoryConfig instance that failed to be deleted.

time: datetime = <PLACEHOLDER>

Time indicates the (UTC) timestamp when the key was being deleted.

type: ___fmp__.DeleteError = <PLACEHOLDER>

This describes the class of delete error. A DeleteAllResponse is only sent when there is an error.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigDeleteRequest(key: 'RepositoryKey' = <PLACEHOLDER>)[source]

Bases: Message

key: RepositoryKey = <PLACEHOLDER>

Key indicates which RepositoryConfig instance to remove. This field must always be set.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigDeleteResponse(key: 'RepositoryKey' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

key: RepositoryKey = <PLACEHOLDER>

Key echoes back the key of the deleted RepositoryConfig instance.

time: datetime = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigDeleteSomeRequest(keys: List[ForwardRef('RepositoryKey')] = <PLACEHOLDER>)[source]

Bases: Message

keys: List[RepositoryKey] = <PLACEHOLDER>

key contains a list of RepositoryConfig keys to delete

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigDeleteSomeResponse(key: ~cloudvision.api.arista.softwaremanagement.v1.RepositoryKey = <PLACEHOLDER>, error: str = <PLACEHOLDER>)[source]

Bases: Message

RepositoryConfigDeleteSomeResponse is only sent when there is an error.

error: str = <PLACEHOLDER>
key: RepositoryKey = <PLACEHOLDER>
class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigRequest(key: 'RepositoryKey' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

key: RepositoryKey = <PLACEHOLDER>

Key uniquely identifies a RepositoryConfig instance to retrieve. This value must be populated.

time: datetime = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigResponse(value: 'RepositoryConfig' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

time: datetime = <PLACEHOLDER>

Time carries the (UTC) timestamp of the last-modification of the RepositoryConfig instance in this response.

value: RepositoryConfig = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigServiceBase[source]

Bases: ServiceBase

async delete(repository_config_delete_request: RepositoryConfigDeleteRequest) RepositoryConfigDeleteResponse[source]
async delete_all(repository_config_delete_all_request: RepositoryConfigDeleteAllRequest) AsyncIterator[RepositoryConfigDeleteAllResponse][source]
async delete_some(repository_config_delete_some_request: RepositoryConfigDeleteSomeRequest) AsyncIterator[RepositoryConfigDeleteSomeResponse][source]
async get_all(repository_config_stream_request: RepositoryConfigStreamRequest) AsyncIterator[RepositoryConfigStreamResponse][source]
async get_all_batched(repository_config_batched_stream_request: RepositoryConfigBatchedStreamRequest) AsyncIterator[RepositoryConfigBatchedStreamResponse][source]
async get_meta(repository_config_stream_request: RepositoryConfigStreamRequest) MetaResponse[source]
async get_one(repository_config_request: RepositoryConfigRequest) RepositoryConfigResponse[source]
async get_some(repository_config_some_request: RepositoryConfigSomeRequest) AsyncIterator[RepositoryConfigSomeResponse][source]
async set(repository_config_set_request: RepositoryConfigSetRequest) RepositoryConfigSetResponse[source]
async set_some(repository_config_set_some_request: RepositoryConfigSetSomeRequest) AsyncIterator[RepositoryConfigSetSomeResponse][source]
async subscribe(repository_config_stream_request: RepositoryConfigStreamRequest) AsyncIterator[RepositoryConfigStreamResponse][source]
async subscribe_batched(repository_config_batched_stream_request: RepositoryConfigBatchedStreamRequest) AsyncIterator[RepositoryConfigBatchedStreamResponse][source]
async subscribe_meta(repository_config_stream_request: RepositoryConfigStreamRequest) AsyncIterator[MetaResponse][source]
class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigServiceStub(channel: Channel, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: Mapping[str, str | bytes] | Collection[Tuple[str, str | bytes]] | None = None)[source]

Bases: ServiceStub

async delete(repository_config_delete_request: RepositoryConfigDeleteRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) RepositoryConfigDeleteResponse[source]
async delete_all(repository_config_delete_all_request: RepositoryConfigDeleteAllRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryConfigDeleteAllResponse][source]
async delete_some(repository_config_delete_some_request: RepositoryConfigDeleteSomeRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryConfigDeleteSomeResponse][source]
async get_all(repository_config_stream_request: RepositoryConfigStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryConfigStreamResponse][source]
async get_all_batched(repository_config_batched_stream_request: RepositoryConfigBatchedStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryConfigBatchedStreamResponse][source]
async get_meta(repository_config_stream_request: RepositoryConfigStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) MetaResponse[source]
async get_one(repository_config_request: RepositoryConfigRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) RepositoryConfigResponse[source]
async get_some(repository_config_some_request: RepositoryConfigSomeRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryConfigSomeResponse][source]
async set(repository_config_set_request: RepositoryConfigSetRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) RepositoryConfigSetResponse[source]
async set_some(repository_config_set_some_request: RepositoryConfigSetSomeRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryConfigSetSomeResponse][source]
async subscribe(repository_config_stream_request: RepositoryConfigStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryConfigStreamResponse][source]
async subscribe_batched(repository_config_batched_stream_request: RepositoryConfigBatchedStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryConfigBatchedStreamResponse][source]
async subscribe_meta(repository_config_stream_request: RepositoryConfigStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[MetaResponse][source]
class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigSetRequest(value: 'RepositoryConfig' = <PLACEHOLDER>)[source]

Bases: Message

value: RepositoryConfig = <PLACEHOLDER>

RepositoryConfig carries the value to set into the datastore. See the documentation on the RepositoryConfig struct for which fields are required.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigSetResponse(value: 'RepositoryConfig' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

time: datetime = <PLACEHOLDER>

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.

value: RepositoryConfig = <PLACEHOLDER>

Value carries all the values given in the RepositoryConfigSetRequest as well as any server-generated values.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigSetSomeRequest(values: List[ForwardRef('RepositoryConfig')] = <PLACEHOLDER>)[source]

Bases: Message

values: List[RepositoryConfig] = <PLACEHOLDER>

value contains a list of RepositoryConfig values to write. It is possible to provide more values than can fit within either:

  • the maxiumum send size of the client

  • the maximum receive size of the server

If this error occurs you must reduce the number of values sent. See gRPC “maximum message size” documentation for more information.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigSetSomeResponse(key: 'RepositoryKey' = <PLACEHOLDER>, error: str = <PLACEHOLDER>)[source]

Bases: Message

error: str = <PLACEHOLDER>
key: RepositoryKey = <PLACEHOLDER>
class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigSomeRequest(keys: List[ForwardRef('RepositoryKey')] = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

keys: List[RepositoryKey] = <PLACEHOLDER>
time: datetime = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigSomeResponse(value: 'RepositoryConfig' = <PLACEHOLDER>, error: str | None = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

error: str | None = <PLACEHOLDER>

Error is an optional field. It should be filled when there is an error in the GetSome process.

time: datetime = <PLACEHOLDER>
value: RepositoryConfig = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigStreamRequest(partial_eq_filter: List[ForwardRef('RepositoryConfig')] = <PLACEHOLDER>, time: '__time__.TimeBounds' = <PLACEHOLDER>)[source]

Bases: Message

partial_eq_filter: List[RepositoryConfig] = <PLACEHOLDER>

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.

time: __time__.TimeBounds = <PLACEHOLDER>

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 RepositoryConfig at end. * Each RepositoryConfig response is fully-specified (all fields set).

  • start: Returns the state of each RepositoryConfig at start, followed by updates until now. * Each RepositoryConfig response at start is fully-specified, but updates may be partial.

  • start and end: Returns the state of each RepositoryConfig at start, followed by updates until end. * Each RepositoryConfig response at start is fully-specified, but updates until end may

    be partial.

This field is not allowed in the Subscribe RPC.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryConfigStreamResponse(value: 'RepositoryConfig' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>, type: '__subscriptions__.Operation' = <PLACEHOLDER>)[source]

Bases: Message

time: datetime = <PLACEHOLDER>

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

type: __subscriptions__.Operation = <PLACEHOLDER>

Operation indicates how the RepositoryConfig 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.

value: RepositoryConfig = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryKey(name: str | None = <PLACEHOLDER>)[source]

Bases: Message

RepositoryKey is the key used by the Repository state and config models to uniquely identify an image or extension.

The name field must contain the file suffix. Valid file types include .swi, .swix and .rpm files. Streaming Agent files must also contain the term: TerminAttr (case insensitive).

name: str | None = <PLACEHOLDER>

name is a unique identifier that will be used to identify the image or extension in CloudVision

class cloudvision.api.arista.softwaremanagement.v1.RepositoryRequest(key: 'RepositoryKey' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

key: RepositoryKey = <PLACEHOLDER>

Key uniquely identifies a Repository instance to retrieve. This value must be populated.

time: datetime = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryResponse(value: 'Repository' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

time: datetime = <PLACEHOLDER>

Time carries the (UTC) timestamp of the last-modification of the Repository instance in this response.

value: Repository = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryServiceBase[source]

Bases: ServiceBase

async get_all(repository_stream_request: RepositoryStreamRequest) AsyncIterator[RepositoryStreamResponse][source]
async get_all_batched(repository_batched_stream_request: RepositoryBatchedStreamRequest) AsyncIterator[RepositoryBatchedStreamResponse][source]
async get_meta(repository_stream_request: RepositoryStreamRequest) MetaResponse[source]
async get_one(repository_request: RepositoryRequest) RepositoryResponse[source]
async get_some(repository_some_request: RepositorySomeRequest) AsyncIterator[RepositorySomeResponse][source]
async subscribe(repository_stream_request: RepositoryStreamRequest) AsyncIterator[RepositoryStreamResponse][source]
async subscribe_batched(repository_batched_stream_request: RepositoryBatchedStreamRequest) AsyncIterator[RepositoryBatchedStreamResponse][source]
async subscribe_meta(repository_stream_request: RepositoryStreamRequest) AsyncIterator[MetaResponse][source]
class cloudvision.api.arista.softwaremanagement.v1.RepositoryServiceStub(channel: Channel, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: Mapping[str, str | bytes] | Collection[Tuple[str, str | bytes]] | None = None)[source]

Bases: ServiceStub

async get_all(repository_stream_request: RepositoryStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryStreamResponse][source]
async get_all_batched(repository_batched_stream_request: RepositoryBatchedStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryBatchedStreamResponse][source]
async get_meta(repository_stream_request: RepositoryStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) MetaResponse[source]
async get_one(repository_request: RepositoryRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) RepositoryResponse[source]
async get_some(repository_some_request: RepositorySomeRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositorySomeResponse][source]
async subscribe(repository_stream_request: RepositoryStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryStreamResponse][source]
async subscribe_batched(repository_batched_stream_request: RepositoryBatchedStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[RepositoryBatchedStreamResponse][source]
async subscribe_meta(repository_stream_request: RepositoryStreamRequest, *, timeout: float | None = None, deadline: Deadline | None = None, metadata: MetadataLike | None = None) AsyncIterator[MetaResponse][source]
class cloudvision.api.arista.softwaremanagement.v1.RepositorySomeRequest(keys: List[ForwardRef('RepositoryKey')] = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

keys: List[RepositoryKey] = <PLACEHOLDER>
time: datetime = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.RepositorySomeResponse(value: 'Repository' = <PLACEHOLDER>, error: str | None = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>)[source]

Bases: Message

error: str | None = <PLACEHOLDER>

Error is an optional field. It should be filled when there is an error in the GetSome process.

time: datetime = <PLACEHOLDER>
value: Repository = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryStreamRequest(partial_eq_filter: List[ForwardRef('Repository')] = <PLACEHOLDER>, time: '__time__.TimeBounds' = <PLACEHOLDER>)[source]

Bases: Message

partial_eq_filter: List[Repository] = <PLACEHOLDER>

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.

time: __time__.TimeBounds = <PLACEHOLDER>

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 Repository at end. * Each Repository response is fully-specified (all fields set).

  • start: Returns the state of each Repository at start, followed by updates until now. * Each Repository response at start is fully-specified, but updates may be partial.

  • start and end: Returns the state of each Repository at start, followed by updates until end. * Each Repository response at start is fully-specified, but updates until end may

    be partial.

This field is not allowed in the Subscribe RPC.

class cloudvision.api.arista.softwaremanagement.v1.RepositoryStreamResponse(value: 'Repository' = <PLACEHOLDER>, time: datetime.datetime = <PLACEHOLDER>, type: '__subscriptions__.Operation' = <PLACEHOLDER>)[source]

Bases: Message

time: datetime = <PLACEHOLDER>

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

type: __subscriptions__.Operation = <PLACEHOLDER>

Operation indicates how the Repository 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.

value: Repository = <PLACEHOLDER>

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.

class cloudvision.api.arista.softwaremanagement.v1.SoftwareMetadata(digest_type: ~cloudvision.api.arista.softwaremanagement.v1.DigestType = <PLACEHOLDER>, digest: str | None = <PLACEHOLDER>, size: int | None = <PLACEHOLDER>, reboot_required: bool | None = <PLACEHOLDER>, software_type: ~cloudvision.api.arista.softwaremanagement.v1.SoftwareType = <PLACEHOLDER>, swi_metadata: ~cloudvision.api.arista.softwaremanagement.v1.SwiMetadata = <PLACEHOLDER>, extension_metadata: ~cloudvision.api.arista.softwaremanagement.v1.ExtensionMetadata = <PLACEHOLDER>, file_server_path: str | None = <PLACEHOLDER>, software_source: ~cloudvision.api.arista.softwaremanagement.v1.SoftwareSource = <PLACEHOLDER>)[source]

Bases: Message

SoftwareMetadata is the detailed metadata describing software files.

digest: str | None = <PLACEHOLDER>

digest is the digest value for the image or extension

digest_type: DigestType = <PLACEHOLDER>

digest_type specifies the type of digest algorithm used to calculate the digest for this image or extension

extension_metadata: ExtensionMetadata = <PLACEHOLDER>

extension_metadata is versioning information for extensions (.rpm and .swix)

file_server_path: str | None = <PLACEHOLDER>

file_server_path is the location of the image or extension as stored in CloudVision

reboot_required: bool | None = <PLACEHOLDER>

reboot_required boolean indicating if a device requires a reboot after software installation

size: int | None = <PLACEHOLDER>

size is the size of the image or extension in bytes

software_source: SoftwareSource = <PLACEHOLDER>

software_source indicates if the software being processed has been downloaded from Arista’s Software Download site or uploaded to CloudVision from a user’s local computer

software_type: SoftwareType = <PLACEHOLDER>

software_type determines which version field is populated - .swi image metadata appears in swi_metadata. .swix and .rpm extensions appear in extension_metadata.

swi_metadata: SwiMetadata = <PLACEHOLDER>

swi_metadata is versioning information for .swi type images

class cloudvision.api.arista.softwaremanagement.v1.SoftwareSource(value: int)[source]

Bases: Enum

SoftwareSource describes the software upload mode.

CLOUD = SoftwareSource.CLOUD

SOFTWARE_SOURCE_CLOUD indicates that the image or extension has been downloaded from Arista’s Software Download site

LOCAL = SoftwareSource.LOCAL

SOFTWARE_SOURCE_LOCAL indicates that the image or extension file has been uploaded directly to CloudVision by the user

NP_MIGRATION = SoftwareSource.NP_MIGRATION

SOFTWARE_SOURCE_NP_MIGRATION indicates that the image or extension file has been internally transferred from Network Provisioning to Software Management Studio as part of the migration process.

PRELOADED = SoftwareSource.PRELOADED

SOFTWARE_SOURCE_PRELOADED indicates that the image or extension file has been added as part of an upgrade of CloudVision.

UNSPECIFIED = SoftwareSource.UNSPECIFIED

SOFTWARE_SOURCE_UNSPECIFIED indicates that the source is not known

name: str | None
value: int
class cloudvision.api.arista.softwaremanagement.v1.SoftwareStatus(progress: ~cloudvision.api.arista.softwaremanagement.v1.Progress = <PLACEHOLDER>, message: str | None = <PLACEHOLDER>, recommended_action: ~cloudvision.api.arista.softwaremanagement.v1.RecommendedAction = <PLACEHOLDER>)[source]

Bases: Message

SoftwareStatus contains a progress field and a description explaining the progress during software upload.

message: str | None = <PLACEHOLDER>

message describes the progress of the software upload

progress: Progress = <PLACEHOLDER>

progress displays the current status of the software upload

recommended_action: RecommendedAction = <PLACEHOLDER>

recommended_action expresses a particular user-actionable step that can be carried out to ensure the proper operation of CloudVision while managing software.

class cloudvision.api.arista.softwaremanagement.v1.SoftwareType(value: int)[source]

Bases: Enum

SoftwareType is an enum containing the possible Software types. SOFTWARE_TYPE_TERMINATTR, which corresponds to an EOS Streaming Agent, is first-classed due to it’s importance to CloudVision.

RPM = SoftwareType.RPM

SOFTWARE_TYPE_RPM identifies an RPM file. The corresponding files will have a .rpm extension.

SWI = SoftwareType.SWI

SOFTWARE_TYPE_SWI identifies an EOS swi image type. The corresponding image files will have a .swi extension.

SWIX = SoftwareType.SWIX

SOFTWARE_TYPE_SWIX identifies an extension type. The corresponding files will have a .swix extension.

TERMINATTR = SoftwareType.TERMINATTR

SOFTWARE_TYPE_TERMINATTR identifies a Streaming Agent extension. The corresponding files will contain the term: “TerminAttr” (case insensitive) and a .swix extension.

UNSPECIFIED = SoftwareType.UNSPECIFIED

SOFTWARE_TYPE_UNSPECIFIED indicates that the type cannot or has not been determined

name: str | None
value: int
class cloudvision.api.arista.softwaremanagement.v1.SwiMetadata(version: str | None = <PLACEHOLDER>, release: str | None = <PLACEHOLDER>, variant: ~cloudvision.api.arista.softwaremanagement.v1.Variant = <PLACEHOLDER>, flavor: ~cloudvision.api.arista.softwaremanagement.v1.Flavor = <PLACEHOLDER>, arch: ~cloudvision.api.arista.softwaremanagement.v1.Arch = <PLACEHOLDER>, max_hardware_epoch: int | None = <PLACEHOLDER>, blessed: bool | None = <PLACEHOLDER>, image_format_version: ~cloudvision.api.arista.softwaremanagement.v1.ImageFormatVersion = <PLACEHOLDER>, embedded_terminattr: ~cloudvision.api.arista.softwaremanagement.v1.ExtensionMetadata = <PLACEHOLDER>, optimization: str | None = <PLACEHOLDER>, concrete_type_to_concrete_swi_map: ~cloudvision.api.arista.softwaremanagement.v1.ConcreteTypeToConcreteSwiMap = <PLACEHOLDER>)[source]

Bases: Message

SwiMetadata is versioning metadata describing .swi type images.

arch: Arch = <PLACEHOLDER>

arch is the swi architecture

blessed: bool | None = <PLACEHOLDER>

blessed indicates if the swi image is blessed

concrete_type_to_concrete_swi_map: ConcreteTypeToConcreteSwiMap = <PLACEHOLDER>

concrete_type_to_concrete_swi_map indicates a map to the concrete swi metadata

embedded_terminattr: ExtensionMetadata = <PLACEHOLDER>

embedded_terminattr specifies the default embedded TerminAttr version pre-installed in the EOS swi image

flavor: Flavor = <PLACEHOLDER>

flavor is the swi image flavor

image_format_version: ImageFormatVersion = <PLACEHOLDER>

image_format_version specifies the EOS image format version

max_hardware_epoch: int | None = <PLACEHOLDER>

max_hardware_epoch specifies the max hardware epoch value supported

optimization: str | None = <PLACEHOLDER>

optimization specifies any adaptations made to the image for specific products or use-cases

release: str | None = <PLACEHOLDER>

release specifies the swi image release information

variant: Variant = <PLACEHOLDER>

variant specifies the swi image variant

version: str | None = <PLACEHOLDER>

version specifies the version of the swi image

class cloudvision.api.arista.softwaremanagement.v1.Variant(value: int)[source]

Bases: Enum

Variant is an enum containing the possible .swi variant types.

INTERNATIONAL = Variant.INTERNATIONAL

VARIANT_INTERNATIONAL specifies an international EOS image variant

UNSPECIFIED = Variant.UNSPECIFIED

VARIANT_UNSPECIFIED is used to indicate an unknown or unspecified EOS image variant

US = Variant.US

VARIANT_US specifies a US or default version of an EOS image variant

name: str | None
value: int