Zededa AssetGroupService API
The AssetGroupService API from Zededa — 3 operation(s) for assetgroupservice.
The AssetGroupService API from Zededa — 3 operation(s) for assetgroupservice.
swagger: '2.0'
info:
title: ZEDEDA App Profiles Service AppProfileService AssetGroupService API
description: The ZEDEDA App Profiles Service is part of ZEDEDA Edge Orchestration Platform. This service enables customers to define their app profiles on ZEDEDA platform and to manage them remotely.
termsOfService: https://www.zededa.com/terms
version: '1.0'
contact:
name: ZEDEDA API Support
url: https://www.zededa.com/support
email: support@zededa.com
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
basePath: /api
schemes:
- https
consumes:
- application/json
produces:
- application/json
security:
- BearerToken: []
tags:
- name: AssetGroupService
paths:
/v1/assetgroups:
get:
summary: Query asset groups
description: Query the asset group records.
operationId: AssetGroupService_QueryAssetGroups
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/AssetGroupList'
'400':
description: Bad Request. The API gateway did not process the request because of invalid value of filter parameters.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. The API gateway did not process the request because it lacks valid authentication credentials for the target resource. The request header has either no authorization details or an authorization that has been refused.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. The API gateway did not process the request because the requestor does not have application level access permission for the operation or does not have access scope to the project.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. The API gateway experienced an unexpected condition. Specific error condition is indicated in error codes.
schema:
$ref: '#/definitions/ZsrvResponse'
'504':
description: Gateway Timeout. The API gateway did not receive a timely response from an upstream microservice it needed to communicate with in order to complete the request.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: projectNamePattern
description: project name pattern
in: query
required: false
type: string
- name: namePattern
description: asset group name pattern
in: query
required: false
type: string
- name: next.pageToken
description: Page Token
in: query
required: false
type: string
- name: next.orderBy
description: OrderBy helps in sorting the list response
in: query
required: false
type: array
items:
type: string
collectionFormat: multi
- name: next.pageNum
description: Page Number
in: query
required: false
type: number
format: int64
- name: next.pageSize
description: Defines the page size
in: query
required: false
type: number
format: int64
- name: next.totalPages
description: Total number of pages to be fetched.
in: query
required: false
type: number
format: int64
- name: summary
description: Only summary of the records required
in: query
required: false
type: boolean
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- AssetGroupService
externalDocs:
description: ZEDEDA Product Documentation
url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/assetgroups
post:
summary: Create asset group
description: Create a asset group record. An assetGroup is a subset of entities in a project identified by assetIds
operationId: AssetGroupService_CreateAssetGroup
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/ZsrvResponse'
'400':
description: Bad Request. The API gateway did not process the request because of missing parameter or invalid value of parameters.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. The API gateway did not process the request because it lacks valid authentication credentials for the target resource. The request header has either no authorization details or an authorization that has been refused.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. The API gateway did not process the request because the requestor does not have application level access permission for the operation or does not have access scope to the project.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. The API gateway did not process the request because this asset group record will conflict with an already existing asset group record.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. The API gateway experienced an unexpected condition. Specific error condition is indicated in error codes.
schema:
$ref: '#/definitions/ZsrvResponse'
'504':
description: Gateway Timeout. The API gateway did not receive a timely response from an upstream microservice it needed to communicate with in order to complete the request.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/AssetGroup'
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- AssetGroupService
externalDocs:
description: ZEDEDA Product Documentation
url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/assetgroups
/v1/assetgroups/id/{id}:
get:
summary: Get asset group
description: Get the configuration (without security details) of a asset group record.
operationId: AssetGroupService_GetAssetGroup
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/AssetGroupRead'
'401':
description: Unauthorized. The API gateway did not process the request because it lacks valid authentication credentials for the target resource. The request header has either no authorization details or an authorization that has been refused.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. The API gateway did not process the request because the requestor does not have application level access permission for the operation or does not have access scope to the project.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. The API gateway did not process the request because the requested resource could not be found.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. The API gateway experienced an unexpected condition. Specific error condition is indicated in error codes.
schema:
$ref: '#/definitions/ZsrvResponse'
'504':
description: Gateway Timeout. The API gateway did not receive a timely response from an upstream microservice it needed to communicate with in order to complete the request.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: id
description: unique Id of the asset group
in: path
required: true
type: string
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- AssetGroupService
externalDocs:
description: ZEDEDA Product Documentation
url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/assetgroups
delete:
summary: Delete asset group
description: Delete a asset group record.
operationId: AssetGroupService_DeleteAssetGroup
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. The API gateway did not process the request because it lacks valid authentication credentials for the target resource. The request header has either no authorization details or an authorization that has been refused.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. The API gateway did not process the request because the requestor does not have application level access permission for the operation or does not have access scope to the project.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. The API gateway did not process the request because the requested resource could not be found.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. The API gateway did not process the request because there are instances of this asset group deployed in edge node(s)
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. The API gateway experienced an unexpected condition. Specific error condition is indicated in error codes.
schema:
$ref: '#/definitions/ZsrvResponse'
'504':
description: Gateway Timeout. The API gateway did not receive a timely response from an upstream microservice it needed to communicate with in order to complete the request.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: id
description: unique Id of the asset group
in: path
required: true
type: string
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- AssetGroupService
externalDocs:
description: ZEDEDA Product Documentation
url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/assetgroups
put:
summary: Update asset group
description: Update a asset group record. The usual pattern to update a asset group record is to retrieve the record and update with the modified values in a new body to update the asset group record. If the asset group has a profile deployment associated with it, the newly added assets will automatically be applied with the corresponding app profile. Similarly if the assets are removed from this asset group, corresponding policies will be removed from these assets.
operationId: AssetGroupService_UpdateAssetGroup
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/ZsrvResponse'
'401':
description: Unauthorized. The API gateway did not process the request because it lacks valid authentication credentials for the target resource. The request header has either no authorization details or an authorization that has been refused.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. The API gateway did not process the request because the requestor does not have application level access permission for the operation or does not have access scope to the project.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. The API gateway did not process the request because the requested resource could not be found.
schema:
$ref: '#/definitions/ZsrvResponse'
'409':
description: Conflict. The API gateway did not process the request because this operation will conflict with an already existing asset group record.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. The API gateway experienced an unexpected condition. Specific error condition is indicated in error codes.
schema:
$ref: '#/definitions/ZsrvResponse'
'504':
description: Gateway Timeout. The API gateway did not receive a timely response from an upstream microservice it needed to communicate with in order to complete the request.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: id
description: unique Id of the asset group.
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
type: object
properties:
name:
type: string
description: User defined name of the asset group, unique across the enterprise. Once asset group is created, name can’t be changed.
maxLength: 256
minLength: 3
pattern: '[a-zA-Z0-9][a-zA-Z0-9_.-]+'
uniqueItems: true
title:
type: string
description: User defined title of the asset group. Title can be changed at any time.
maxLength: 256
minLength: 3
pattern: '[a-zA-Z0-9]+[a-zA-Z0-9!-~ ]+'
description:
type: string
description: Detailed description of the asset group.
maxLength: 256
projectId:
type: string
description: project id
assetIds:
$ref: '#/definitions/AssetIDs'
assetTags:
$ref: '#/definitions/AssetTags'
description: Assetgroups is a proto that should be used by user-agents to create/update asset groups to group various assets like devices
title: Asset groups
required:
- name
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- AssetGroupService
externalDocs:
description: ZEDEDA Product Documentation
url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/assetgroups
/v1/assetgroups/name/{name}:
get:
summary: Get asset group by name
description: Get the configuration (without security details) of a asset group record by name.
operationId: AssetGroupService_GetAssetGroupByName
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/AssetGroupRead'
'401':
description: Unauthorized. The API gateway did not process the request because it lacks valid authentication credentials for the target resource. The request header has either no authorization details or an authorization that has been refused.
schema:
$ref: '#/definitions/ZsrvResponse'
'403':
description: Forbidden. The API gateway did not process the request because the requestor does not have application level access permission for the operation or does not have access scope to the project.
schema:
$ref: '#/definitions/ZsrvResponse'
'404':
description: Not Found. The API gateway did not process the request because the requested resource could not be found.
schema:
$ref: '#/definitions/ZsrvResponse'
'500':
description: Internal Server Error. The API gateway experienced an unexpected condition. Specific error condition is indicated in error codes.
schema:
$ref: '#/definitions/ZsrvResponse'
'504':
description: Gateway Timeout. The API gateway did not receive a timely response from an upstream microservice it needed to communicate with in order to complete the request.
schema:
$ref: '#/definitions/ZsrvResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
description: User defined name of the asset group, unique across the enterprise. Once object is created, name can’t be changed
in: path
required: true
type: string
- name: X-Request-Id
in: header
required: false
description: User-Agent specified id to track a request
type: string
tags:
- AssetGroupService
externalDocs:
description: ZEDEDA Product Documentation
url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/assetgroups
definitions:
protobufAny:
type: object
properties:
typeUrl:
type: string
value:
type: string
format: byte
ZcOpsType:
type: string
enum:
- OPS_TYPE_UNSPECIFIED
- OPS_TYPE_READ
- OPS_TYPE_DELETE
- OPS_TYPE_CREATE
- OPS_TYPE_UPDATE
- OPS_TYPE_LIST
default: OPS_TYPE_UNSPECIFIED
title: ZedCloud internal operation type
Cursor:
type: object
properties:
pageToken:
type: string
description: Page Token
orderBy:
type: array
items:
type: string
description: OrderBy helps in sorting the list response
pageNum:
type: number
format: int64
description: Page Number
pageSize:
type: number
format: int64
description: Defines the page size
totalPages:
type: number
format: int64
description: Total number of pages to be fetched.
description: 'Cursor helps in filtering the various list response like edge-app bundle list, model list, bundle list etc. '
title: Cursor is used as filter in list operation.
ZsrvResponse:
type: object
properties:
operationType:
$ref: '#/definitions/ZcOpsType'
title: "Describes one of the operations type : possible values\n Read/Delete/Create/Update/List"
operationStatus:
$ref: '#/definitions/ZcOpsStatus'
title: if this is log running job
objectKind:
type: string
title: zedcloud object kind on which the operation was performed
objectId:
type: string
title: Unique value identifies the object that was operated on
objectName:
type: string
title: name of the object
objectRevision:
type: string
title: 'object revision post the operation, note Read operation
doesn''t change the revision'
objectType:
$ref: '#/definitions/ObjectType'
operationTime:
type: string
title: time of operation
startTime:
type: string
title: total time taken by operations
endTime:
type: string
user:
type: string
title: the operation is performed on behalf of this user
httpStatusCode:
type: integer
format: int32
title: http response
httpStatusMsg:
type: string
title: summary of the error in text format
jobId:
type: string
title: for tracking asynchronous tasks
error:
type: array
items:
$ref: '#/definitions/ZsrvError'
title: 'one or more errors will be set if the operation failed
i.e. httpStatusCode != 2xx'
ObjectType:
type: string
enum:
- OBJECT_TYPE_UNSPECIFIED
- OBJECT_TYPE_USER
- OBJECT_TYPE_EDGE_NODE
- OBJECT_TYPE_EDGE_APP
- OBJECT_TYPE_IMAGE
- OBJECT_TYPE_EDGE_APP_INSTANCE
- OBJECT_TYPE_PROJECT
- OBJECT_TYPE_NETWORK
- OBJECT_TYPE_DATASTORE
- OBJECT_TYPE_SERVICE
- OBJECT_TYPE_SERVICE_INSTANCE
- OBJECT_TYPE_ENTERPRISE
- OBJECT_TYPE_ROLE
- OBJECT_TYPE_CREDENTIAL
- OBJECT_TYPE_NETWORK_INSTANCE
- OBJECT_TYPE_VOLUME_INSTANCE
- OBJECT_TYPE_REALM
- OBJECT_TYPE_AUTHPROFILE
- OBJECT_TYPE_POLICY
- OBJECT_TYPE_APP_POLICY
- OBJECT_TYPE_CLUSTER_INSTANCE
- OBJECT_TYPE_PLUGIN
- OBJECT_TYPE_DOC_POLICY
- OBJECT_TYPE_ORCHESTRATOR_CLUSTER
- OBJECT_TYPE_TAGS
- OBJECT_TYPE_EDGE_NODE_INTERFACE
- OBJECT_TYPE_DEPLOYMENT
- OBJECT_TYPE_ENTITLEMENTS
- OBJECT_TYPE_DATA_STREAM
- OBJECT_TYPE_API_USAGE
- OBJECT_TYPE_APP_INSTANCE_SNAPSHOT
- OBJECT_TYPE_PATCH_ENVELOPE
- OBJECT_TYPE_RESOURCE_USAGE_TRACK
- OBJECT_TYPE_PATCH_ENVELOPE_REFERENCE
- OBJECT_TYPE_DEV_PASSTHROUGH
- OBJECT_TYPE_EDGE_NODE_CLUSTER
- OBJECT_TYPE_ASSET_GROUP
- OBJECT_TYPE_APP_PROFILE
- OBJECT_TYPE_PROFILE_DEPLOYMENT
- OBJECT_TYPE_ZKS_INSTANCE
- OBJECT_TYPE_CLUSTER_GROUP
default: OBJECT_TYPE_UNSPECIFIED
AssetTags:
type: object
properties:
assetTag:
type: array
items:
$ref: '#/definitions/AssetTag'
AssetGroupRead:
type: object
properties:
id:
type: string
description: unique Id of the asset group.
readOnly: true
pattern: '[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}'
uniqueItems: true
name:
type: string
description: User defined name of the asset group, unique across the enterprise. Once asset group is created, name can’t be changed.
maxLength: 256
minLength: 3
pattern: '[a-zA-Z0-9][a-zA-Z0-9_.-]+'
uniqueItems: true
title:
type: string
description: User defined title of the asset group. Title can be changed at any time.
maxLength: 256
minLength: 3
pattern: '[a-zA-Z0-9]+[a-zA-Z0-9!-~ ]+'
description:
type: string
description: Detailed description of the asset group.
maxLength: 256
projectId:
type: string
description: project id
assetIds:
$ref: '#/definitions/AssetIDs'
assetTags:
$ref: '#/definitions/AssetTags'
assetCount:
type: integer
format: int64
title: AssetGroupRead - refers to the response object for reading a asset group
ZsrvErrorCode:
type: string
enum:
- zMsgErrorNone
- zMsgSucess
- NotFound
- AlreadyExists
- VersionMismatch
- RangeError
- LargeResult
- IncompleteData
- InvalidData
- FunctionUnsupported
- NoMemory
- SendFailure
- Timeout
- BadReqBody
- BadReqParam
- InvalidFieldFormat
- UrlNotFound
- ApiVersionNotSupported
- Unauthorized
- Forbidden
- Conflict
- NotModified
- DependencyConflict
- JsonFmtError
- ProtoFmtError
- CertError
- DataBaseConnection
- DBError
- zMsgAccepted
- zMsgCreated
- PreConditionFailed
- InternalServerError
default: zMsgErrorNone
description: "- zMsgErrorNone: common validation errors\n - IncompleteData: message had fields that weren't filled in\n - InvalidData: message contained the field that wasn't expected\n - FunctionUnsupported: this feature unavailable on this version of device\n - InvalidFieldFormat: message contained the field that wasn't correctly formatted\n - JsonFmtError: Marshal / Unmarshal errors\n - DataBaseConnection: generic DB error"
title: ZedCould internal error code
AssetGroupList:
type: object
properties:
next:
$ref: '#/definitions/Cursor'
description: cursor next
list:
type: array
items:
$ref: '#/definitions/AssetGroup'
description: asset group summary list
totalCount:
type: integer
format: int64
description: asset group total count
ZsrvError:
type: object
properties:
ec:
$ref: '#/definitions/ZsrvErrorCode'
title: 'Enumrated error code, describes more granular numerical
value than just httpStatus'
location:
type: string
title: 'Ignore: Internal field only'
details:
type: string
title: Field captures string description of details
googlerpcStatus:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
details:
type: array
items:
$ref: '#/definitions/protobufAny'
AssetGroup:
type: object
properties:
id:
type: string
description: unique Id of the asset group.
readOnly: true
pattern: '[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}'
uniqueItems: true
name:
type: string
description: User defined name of the asset group, unique across the enterprise. Once asset group is created, name can’t be changed.
maxLength: 256
minLength: 3
pattern: '[a-zA-Z0-9][a-zA-Z0-9_.-]+'
uniqueItems: true
title:
type: string
description: User defined title of the asset group. Title can be changed at any time.
maxLength: 256
minLength: 3
pattern: '[a-zA-Z0-9]+[a-zA-Z0-9!-~ ]+'
description:
type: string
description: Detailed description of the asset group.
maxLength: 256
projectId:
type: string
description: project id
assetIds:
$ref: '#/definitions/AssetIDs'
assetTags:
$ref: '#/definitions/AssetTags'
description: Assetgroups is a proto that should be used by user-agents to create/update asset groups to group various assets like devices
title: Asset groups
required:
- name
AssetIDs:
type: object
properties:
ids:
type: array
items:
type: string
title: AssetIDs - represents a list of asset IDs
AssetTag:
type: object
properties:
tag:
type: object
additionalProperties:
type: string
description: Tags are name/value pairs that enable you to categorize resources. Tag names are case insensitive with max_length 512 and min_length 3. Tag values are case sensitive with max_length 256 and min_length 3.
maxLength: 32
pattern: ^[^<%&?/\>]+$
ZcOpsStatus:
type: string
enum:
- OPS_STATUS_UNSPECIFIED
- OPS_STATUS_PENDING
- OPS_STATUS_ONGOING
- OPS_STATUS_COMPLETE
default: OPS_STATUS_UNSPECIFIED
description: "- OPS_STATUS_PENDING: In rare cases, system may not start operation when it was requested. Client will be notified that operation is PENDING\n - OPS_STATUS_ONGOING: system will start the operation, but at the time response was generated, operation is still ONGOING.\n - OPS_STATUS_COMPLETE: Even if the result of the operations may result in failure, but the OpsStatus will marked COMPLETE for almost all cases."
title: ZedCloud internal operation status
securityDefinitions:
BearerToken:
type: apiKey
description: Bearer token for user session
name: Authorization
in: header
externalDocs:
description: ZEDEDA Product Documentation
url: https://docs.zededa.com/-M-8m8d8KqdLpfOgY_jo/app-profiles