Skip to content

Latest commit

 

History

History
159 lines (124 loc) · 7.08 KB

azure_share.md

File metadata and controls

159 lines (124 loc) · 7.08 KB

Document: "edgegateway"

Path: "https://github.com/Azure/azure-rest-api-specs/blob/2fbb5118cd34f412a51d9bc8a274224b216763cf/specification/edgegateway/resource-manager/Microsoft.DataBoxEdge/stable/2019-03-01/edgegateway.json")

Share

Represents a share on the Data Box Edge/Gateway device.

azure_share {
  api_version => "api_version",
  device_name => "device_name",
  properties => $azure_share_properties
  resource_group_name => "resource_group_name",
  share => "share",
  subscription_id => "subscription_id",
}
Name Type Required Description
api_version String true The API version.
device_name String true The device name.
properties ShareProperties true The share properties.
resource_group_name String true The resource group name.
share Hash true The share properties.
subscription_id String true The subscription ID.

ShareProperties

The share properties.

$azure_share_properties = {
  accessProtocol => "accessProtocol",
  azureContainerInfo => $azure_azure_container_info
  clientAccessRights => $azure_client_access_right
  dataPolicy => "dataPolicy (optional)",
  description => "description (optional)",
  monitoringStatus => "monitoringStatus",
  refreshDetails => $azure_refresh_details
  shareMappings => $azure_mount_point_map
  shareStatus => "shareStatus",
  userAccessRights => $azure_user_access_right
}
Name Type Required Description
accessProtocol String true Access protocol to be used by the share.
azureContainerInfo AzureContainerInfo false Azure container mapping for the share.
clientAccessRights ClientAccessRight false List of IP addresses and corresponding access rights on the share(required for NFS protocol).
dataPolicy String false Data policy of the share.
description String false Description for the share.
monitoringStatus String true Current monitoring status of the share.
refreshDetails RefreshDetails false Details of the refresh job on this share.
shareMappings MountPointMap false Share mount point to the role.
shareStatus String true Current status of the share.
userAccessRights UserAccessRight false Mapping of users and corresponding access rights on the share (required for SMB protocol).

AzureContainerInfo

Azure container mapping of the endpoint.

$azure_azure_container_info = {
  containerName => "containerName",
  dataFormat => "dataFormat",
  storageAccountCredentialId => "storageAccountCredentialId",
}
Name Type Required Description
containerName String true Container name (Based on the data format specified, this represents the name of Azure Files/Page blob/Block blob).
dataFormat String true Storage format used for the file represented by the share.
storageAccountCredentialId String true ID of the storage account credential used to access storage.

ClientAccessRight

The mapping between a particular client IP and the type of access client has on the NFS share.

$azure_client_access_right = {
  accessPermission => "accessPermission",
  client => "client",
}
Name Type Required Description
accessPermission String true Type of access to be allowed for the client.
client String true IP of the client.

RefreshDetails

Fields for tracking refresh job on the share.

$azure_refresh_details = {
  errorManifestFile => "errorManifestFile (optional)",
  inProgressRefreshJobId => "inProgressRefreshJobId (optional)",
  lastCompletedRefreshJobTimeInUTC => "lastCompletedRefreshJobTimeInUTC (optional)",
  lastJob => "lastJob (optional)",
}
Name Type Required Description
errorManifestFile String false Indicates the relative path of the error xml for the last refresh job on this particular share, if any. This could be a failed job or a successful job.
inProgressRefreshJobId String false If a refresh share job is currently in progress on this share, this field indicates the ARM resource ID of that job. The field is empty if no job is in progress.
lastCompletedRefreshJobTimeInUTC String false Indicates the completed time for the last refresh job on this particular share, if any.This could be a failed job or a successful job.
lastJob String false Indicates the id of the last refresh job on this particular share,if any. This could be a failed job or a successful job.

MountPointMap

The share mount point.

$azure_mount_point_map = {
  shareId => "shareId",
}
Name Type Required Description
shareId String true ID of the share mounted to the role VM.

UserAccessRight

The mapping between a particular user and the access type on the SMB share.

$azure_user_access_right = {
  accessType => "accessType",
  userId => "userId",
}
Name Type Required Description
accessType String true Type of access to be allowed for the user.
userId String true User ID (already existing in the device).

CRUD operations

Here is a list of endpoints that we use to create, read, update and delete the Share

Operation Path Verb Description OperationID
Create /subscriptions/%{subscription_id}/resourceGroups/%{resource_group_name}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/%{device_name}/shares/%{name} Put Shares_CreateOrUpdate
List - list all ``
List - get one /subscriptions/%{subscription_id}/resourceGroups/%{resource_group_name}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/%{device_name}/shares/%{name} Get Shares_Get
List - get list using params /subscriptions/%{subscription_id}/resourceGroups/%{resource_group_name}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/%{device_name}/shares Get Shares_ListByDataBoxEdgeDevice
Update /subscriptions/%{subscription_id}/resourceGroups/%{resource_group_name}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/%{device_name}/shares/%{name} Put Shares_CreateOrUpdate
Delete /subscriptions/%{subscription_id}/resourceGroups/%{resource_group_name}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/%{device_name}/shares/%{name} Delete Deletes the share on the data box edge/gateway device. Shares_Delete