Microsoft.DataBoxEdge dataBoxEdgeDevices/roles

Bicep resource definition

The dataBoxEdgeDevices/roles resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles@2023-12-01' = {
  name: 'string'
  kind: 'string'
  // For remaining properties, see Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles objects
}

Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles objects

Set the kind property to specify the type of object.

For CloudEdgeManagement, use:

{
  kind: 'CloudEdgeManagement'
  properties: {
    roleStatus: 'string'
  }
}

For IOT, use:

{
  kind: 'IOT'
  properties: {
    computeResource: {
      memoryInGB: int
      processorCount: int
    }
    hostPlatform: 'string'
    ioTDeviceDetails: {
      authentication: {
        symmetricKey: {
          connectionString: {
            encryptionAlgorithm: 'string'
            encryptionCertThumbprint: 'string'
            value: 'string'
          }
        }
      }
      deviceId: 'string'
      ioTHostHub: 'string'
      ioTHostHubId: 'string'
    }
    ioTEdgeAgentInfo: {
      imageName: 'string'
      imageRepository: {
        imageRepositoryUrl: 'string'
        password: {
          encryptionAlgorithm: 'string'
          encryptionCertThumbprint: 'string'
          value: 'string'
        }
        userName: 'string'
      }
      tag: 'string'
    }
    ioTEdgeDeviceDetails: {
      authentication: {
        symmetricKey: {
          connectionString: {
            encryptionAlgorithm: 'string'
            encryptionCertThumbprint: 'string'
            value: 'string'
          }
        }
      }
      deviceId: 'string'
      ioTHostHub: 'string'
      ioTHostHubId: 'string'
    }
    roleStatus: 'string'
    shareMappings: [
      {
        shareId: 'string'
      }
    ]
  }
}

For Kubernetes, use:

{
  kind: 'Kubernetes'
  properties: {
    hostPlatform: 'string'
    kubernetesClusterInfo: {
      version: 'string'
    }
    kubernetesRoleResources: {
      compute: {
        vmProfile: 'string'
      }
      storage: {
        endpoints: [
          {
            shareId: 'string'
          }
        ]
      }
    }
    roleStatus: 'string'
  }
}

For MEC, use:

{
  kind: 'MEC'
  properties: {
    connectionString: {
      encryptionAlgorithm: 'string'
      encryptionCertThumbprint: 'string'
      value: 'string'
    }
    controllerEndpoint: 'string'
    resourceUniqueId: 'string'
    roleStatus: 'string'
  }
}

Property Values

Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles

Name Description Value
kind Set to 'CloudEdgeManagement' for type CloudEdgeManagementRole. Set to 'IOT' for type IoTRole. Set to 'Kubernetes' for type KubernetesRole. Set to 'MEC' for type MECRole. 'CloudEdgeManagement'
'IOT'
'Kubernetes'
'MEC' (required)
name The resource name string (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: dataBoxEdgeDevices

AsymmetricEncryptedSecret

Name Description Value
encryptionAlgorithm The algorithm used to encrypt "Value". 'AES256'
'None'
'RSAES_PKCS1_v_1_5' (required)
encryptionCertThumbprint Thumbprint certificate used to encrypt "Value". If the value is unencrypted, it will be null. string

Constraints:
Sensitive value. Pass in as a secure parameter.
value The value of the secret. string (required)

Authentication

Name Description Value
symmetricKey Symmetric key for authentication. SymmetricKey

CloudEdgeManagementRole

Name Description Value
kind Role type. 'CloudEdgeManagement' (required)
properties Properties specific to CloudEdgeManagementRole role. CloudEdgeManagementRoleProperties

CloudEdgeManagementRoleProperties

Name Description Value
roleStatus Role status. 'Disabled'
'Enabled' (required)

ComputeResource

Name Description Value
memoryInGB Memory in GB int (required)
processorCount Processor count int (required)

ImageRepositoryCredential

Name Description Value
imageRepositoryUrl Image repository url (e.g.: mcr.microsoft.com). string (required)
password Repository user password. AsymmetricEncryptedSecret
userName Repository user name. string (required)

IoTDeviceInfo

Name Description Value
authentication Encrypted IoT device/IoT edge device connection string. Authentication
deviceId ID of the IoT device/edge device. string (required)
ioTHostHub Host name for the IoT hub associated to the device. string (required)
ioTHostHubId Id for the IoT hub associated to the device. string

IoTEdgeAgentInfo

Name Description Value
imageName Name of the IoT edge agent image. string (required)
imageRepository Image repository details. ImageRepositoryCredential
tag Image Tag. string (required)

IoTRole

Name Description Value
kind Role type. 'IOT' (required)
properties Properties specific to IoT role. IoTRoleProperties

IoTRoleProperties

Name Description Value
computeResource Resource allocation ComputeResource
hostPlatform Host OS supported by the IoT role. 'Linux'
'Windows' (required)
ioTDeviceDetails IoT device metadata to which data box edge device needs to be connected. IoTDeviceInfo (required)
ioTEdgeAgentInfo Iot edge agent details to download the agent and bootstrap iot runtime. IoTEdgeAgentInfo
ioTEdgeDeviceDetails IoT edge device to which the IoT role needs to be configured. IoTDeviceInfo (required)
roleStatus Role status. 'Disabled'
'Enabled' (required)
shareMappings Mount points of shares in role(s). MountPointMap[]

KubernetesClusterInfo

Name Description Value
version Kubernetes cluster version string (required)

KubernetesRole

Name Description Value
kind Role type. 'Kubernetes' (required)
properties Properties specific to Kubernetes role. KubernetesRoleProperties

KubernetesRoleCompute

Name Description Value
vmProfile VM profile string (required)

KubernetesRoleProperties

Name Description Value
hostPlatform Host OS supported by the Kubernetes role. 'Linux'
'Windows' (required)
kubernetesClusterInfo Kubernetes cluster configuration KubernetesClusterInfo (required)
kubernetesRoleResources Kubernetes role resources KubernetesRoleResources (required)
roleStatus Role status. 'Disabled'
'Enabled' (required)

KubernetesRoleResources

Name Description Value
compute Kubernetes role compute resource KubernetesRoleCompute (required)
storage Kubernetes role storage resource KubernetesRoleStorage

KubernetesRoleStorage

Name Description Value
endpoints Mount points of shares in role(s). MountPointMap[]

MECRole

Name Description Value
kind Role type. 'MEC' (required)
properties Properties specific to MEC role. MECRoleProperties

MECRoleProperties

Name Description Value
connectionString Activation key of the MEC. AsymmetricEncryptedSecret
controllerEndpoint Controller Endpoint. string
resourceUniqueId Unique Id of the Resource. string
roleStatus Role status. 'Disabled'
'Enabled' (required)

MountPointMap

Name Description Value
shareId ID of the share mounted to the role VM. string (required)

SymmetricKey

Name Description Value
connectionString Connection string based on the symmetric key. AsymmetricEncryptedSecret

ARM template resource definition

The dataBoxEdgeDevices/roles resource type can be deployed with operations that target:

Usage Examples

Resource format

To create a Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles resource, add the following JSON to your template.

{
  "name": "string",
  "kind": "string"
  // For remaining properties, see Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles objects
}

Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles objects

Set the kind property to specify the type of object.

For CloudEdgeManagement, use:

{
  "kind": "CloudEdgeManagement",
  "properties": {
    "roleStatus": "string"
  }
}

For IOT, use:

{
  "kind": "IOT",
  "properties": {
    "computeResource": {
      "memoryInGB": "int",
      "processorCount": "int"
    },
    "hostPlatform": "string",
    "ioTDeviceDetails": {
      "authentication": {
        "symmetricKey": {
          "connectionString": {
            "encryptionAlgorithm": "string",
            "encryptionCertThumbprint": "string",
            "value": "string"
          }
        }
      },
      "deviceId": "string",
      "ioTHostHub": "string",
      "ioTHostHubId": "string"
    },
    "ioTEdgeAgentInfo": {
      "imageName": "string",
      "imageRepository": {
        "imageRepositoryUrl": "string",
        "password": {
          "encryptionAlgorithm": "string",
          "encryptionCertThumbprint": "string",
          "value": "string"
        },
        "userName": "string"
      },
      "tag": "string"
    },
    "ioTEdgeDeviceDetails": {
      "authentication": {
        "symmetricKey": {
          "connectionString": {
            "encryptionAlgorithm": "string",
            "encryptionCertThumbprint": "string",
            "value": "string"
          }
        }
      },
      "deviceId": "string",
      "ioTHostHub": "string",
      "ioTHostHubId": "string"
    },
    "roleStatus": "string",
    "shareMappings": [
      {
        "shareId": "string"
      }
    ]
  }
}

For Kubernetes, use:

{
  "kind": "Kubernetes",
  "properties": {
    "hostPlatform": "string",
    "kubernetesClusterInfo": {
      "version": "string"
    },
    "kubernetesRoleResources": {
      "compute": {
        "vmProfile": "string"
      },
      "storage": {
        "endpoints": [
          {
            "shareId": "string"
          }
        ]
      }
    },
    "roleStatus": "string"
  }
}

For MEC, use:

{
  "kind": "MEC",
  "properties": {
    "connectionString": {
      "encryptionAlgorithm": "string",
      "encryptionCertThumbprint": "string",
      "value": "string"
    },
    "controllerEndpoint": "string",
    "resourceUniqueId": "string",
    "roleStatus": "string"
  }
}

Property Values

Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles

Name Description Value
apiVersion The api version '2023-12-01'
kind Set to 'CloudEdgeManagement' for type CloudEdgeManagementRole. Set to 'IOT' for type IoTRole. Set to 'Kubernetes' for type KubernetesRole. Set to 'MEC' for type MECRole. 'CloudEdgeManagement'
'IOT'
'Kubernetes'
'MEC' (required)
name The resource name string (required)
type The resource type 'Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles'

AsymmetricEncryptedSecret

Name Description Value
encryptionAlgorithm The algorithm used to encrypt "Value". 'AES256'
'None'
'RSAES_PKCS1_v_1_5' (required)
encryptionCertThumbprint Thumbprint certificate used to encrypt "Value". If the value is unencrypted, it will be null. string

Constraints:
Sensitive value. Pass in as a secure parameter.
value The value of the secret. string (required)

Authentication

Name Description Value
symmetricKey Symmetric key for authentication. SymmetricKey

CloudEdgeManagementRole

Name Description Value
kind Role type. 'CloudEdgeManagement' (required)
properties Properties specific to CloudEdgeManagementRole role. CloudEdgeManagementRoleProperties

CloudEdgeManagementRoleProperties

Name Description Value
roleStatus Role status. 'Disabled'
'Enabled' (required)

ComputeResource

Name Description Value
memoryInGB Memory in GB int (required)
processorCount Processor count int (required)

ImageRepositoryCredential

Name Description Value
imageRepositoryUrl Image repository url (e.g.: mcr.microsoft.com). string (required)
password Repository user password. AsymmetricEncryptedSecret
userName Repository user name. string (required)

IoTDeviceInfo

Name Description Value
authentication Encrypted IoT device/IoT edge device connection string. Authentication
deviceId ID of the IoT device/edge device. string (required)
ioTHostHub Host name for the IoT hub associated to the device. string (required)
ioTHostHubId Id for the IoT hub associated to the device. string

IoTEdgeAgentInfo

Name Description Value
imageName Name of the IoT edge agent image. string (required)
imageRepository Image repository details. ImageRepositoryCredential
tag Image Tag. string (required)

IoTRole

Name Description Value
kind Role type. 'IOT' (required)
properties Properties specific to IoT role. IoTRoleProperties

IoTRoleProperties

Name Description Value
computeResource Resource allocation ComputeResource
hostPlatform Host OS supported by the IoT role. 'Linux'
'Windows' (required)
ioTDeviceDetails IoT device metadata to which data box edge device needs to be connected. IoTDeviceInfo (required)
ioTEdgeAgentInfo Iot edge agent details to download the agent and bootstrap iot runtime. IoTEdgeAgentInfo
ioTEdgeDeviceDetails IoT edge device to which the IoT role needs to be configured. IoTDeviceInfo (required)
roleStatus Role status. 'Disabled'
'Enabled' (required)
shareMappings Mount points of shares in role(s). MountPointMap[]

KubernetesClusterInfo

Name Description Value
version Kubernetes cluster version string (required)

KubernetesRole

Name Description Value
kind Role type. 'Kubernetes' (required)
properties Properties specific to Kubernetes role. KubernetesRoleProperties

KubernetesRoleCompute

Name Description Value
vmProfile VM profile string (required)

KubernetesRoleProperties

Name Description Value
hostPlatform Host OS supported by the Kubernetes role. 'Linux'
'Windows' (required)
kubernetesClusterInfo Kubernetes cluster configuration KubernetesClusterInfo (required)
kubernetesRoleResources Kubernetes role resources KubernetesRoleResources (required)
roleStatus Role status. 'Disabled'
'Enabled' (required)

KubernetesRoleResources

Name Description Value
compute Kubernetes role compute resource KubernetesRoleCompute (required)
storage Kubernetes role storage resource KubernetesRoleStorage

KubernetesRoleStorage

Name Description Value
endpoints Mount points of shares in role(s). MountPointMap[]

MECRole

Name Description Value
kind Role type. 'MEC' (required)
properties Properties specific to MEC role. MECRoleProperties

MECRoleProperties

Name Description Value
connectionString Activation key of the MEC. AsymmetricEncryptedSecret
controllerEndpoint Controller Endpoint. string
resourceUniqueId Unique Id of the Resource. string
roleStatus Role status. 'Disabled'
'Enabled' (required)

MountPointMap

Name Description Value
shareId ID of the share mounted to the role VM. string (required)

SymmetricKey

Name Description Value
connectionString Connection string based on the symmetric key. AsymmetricEncryptedSecret

Terraform (AzAPI provider) resource definition

The dataBoxEdgeDevices/roles resource type can be deployed with operations that target:

  • Resource groups For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  name = "string"
  kind = "string"
  // For remaining properties, see Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles objects
}

Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles objects

Set the kind property to specify the type of object.

For CloudEdgeManagement, use:

{
  kind = "CloudEdgeManagement"
  properties = {
    roleStatus = "string"
  }
}

For IOT, use:

{
  kind = "IOT"
  properties = {
    computeResource = {
      memoryInGB = int
      processorCount = int
    }
    hostPlatform = "string"
    ioTDeviceDetails = {
      authentication = {
        symmetricKey = {
          connectionString = {
            encryptionAlgorithm = "string"
            encryptionCertThumbprint = "string"
            value = "string"
          }
        }
      }
      deviceId = "string"
      ioTHostHub = "string"
      ioTHostHubId = "string"
    }
    ioTEdgeAgentInfo = {
      imageName = "string"
      imageRepository = {
        imageRepositoryUrl = "string"
        password = {
          encryptionAlgorithm = "string"
          encryptionCertThumbprint = "string"
          value = "string"
        }
        userName = "string"
      }
      tag = "string"
    }
    ioTEdgeDeviceDetails = {
      authentication = {
        symmetricKey = {
          connectionString = {
            encryptionAlgorithm = "string"
            encryptionCertThumbprint = "string"
            value = "string"
          }
        }
      }
      deviceId = "string"
      ioTHostHub = "string"
      ioTHostHubId = "string"
    }
    roleStatus = "string"
    shareMappings = [
      {
        shareId = "string"
      }
    ]
  }
}

For Kubernetes, use:

{
  kind = "Kubernetes"
  properties = {
    hostPlatform = "string"
    kubernetesClusterInfo = {
      version = "string"
    }
    kubernetesRoleResources = {
      compute = {
        vmProfile = "string"
      }
      storage = {
        endpoints = [
          {
            shareId = "string"
          }
        ]
      }
    }
    roleStatus = "string"
  }
}

For MEC, use:

{
  kind = "MEC"
  properties = {
    connectionString = {
      encryptionAlgorithm = "string"
      encryptionCertThumbprint = "string"
      value = "string"
    }
    controllerEndpoint = "string"
    resourceUniqueId = "string"
    roleStatus = "string"
  }
}

Property Values

Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles

Name Description Value
kind Set to 'CloudEdgeManagement' for type CloudEdgeManagementRole. Set to 'IOT' for type IoTRole. Set to 'Kubernetes' for type KubernetesRole. Set to 'MEC' for type MECRole. 'CloudEdgeManagement'
'IOT'
'Kubernetes'
'MEC' (required)
name The resource name string (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: dataBoxEdgeDevices
type The resource type "Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles@2023-12-01"

AsymmetricEncryptedSecret

Name Description Value
encryptionAlgorithm The algorithm used to encrypt "Value". 'AES256'
'None'
'RSAES_PKCS1_v_1_5' (required)
encryptionCertThumbprint Thumbprint certificate used to encrypt "Value". If the value is unencrypted, it will be null. string

Constraints:
Sensitive value. Pass in as a secure parameter.
value The value of the secret. string (required)

Authentication

Name Description Value
symmetricKey Symmetric key for authentication. SymmetricKey

CloudEdgeManagementRole

Name Description Value
kind Role type. 'CloudEdgeManagement' (required)
properties Properties specific to CloudEdgeManagementRole role. CloudEdgeManagementRoleProperties

CloudEdgeManagementRoleProperties

Name Description Value
roleStatus Role status. 'Disabled'
'Enabled' (required)

ComputeResource

Name Description Value
memoryInGB Memory in GB int (required)
processorCount Processor count int (required)

ImageRepositoryCredential

Name Description Value
imageRepositoryUrl Image repository url (e.g.: mcr.microsoft.com). string (required)
password Repository user password. AsymmetricEncryptedSecret
userName Repository user name. string (required)

IoTDeviceInfo

Name Description Value
authentication Encrypted IoT device/IoT edge device connection string. Authentication
deviceId ID of the IoT device/edge device. string (required)
ioTHostHub Host name for the IoT hub associated to the device. string (required)
ioTHostHubId Id for the IoT hub associated to the device. string

IoTEdgeAgentInfo

Name Description Value
imageName Name of the IoT edge agent image. string (required)
imageRepository Image repository details. ImageRepositoryCredential
tag Image Tag. string (required)

IoTRole

Name Description Value
kind Role type. 'IOT' (required)
properties Properties specific to IoT role. IoTRoleProperties

IoTRoleProperties

Name Description Value
computeResource Resource allocation ComputeResource
hostPlatform Host OS supported by the IoT role. 'Linux'
'Windows' (required)
ioTDeviceDetails IoT device metadata to which data box edge device needs to be connected. IoTDeviceInfo (required)
ioTEdgeAgentInfo Iot edge agent details to download the agent and bootstrap iot runtime. IoTEdgeAgentInfo
ioTEdgeDeviceDetails IoT edge device to which the IoT role needs to be configured. IoTDeviceInfo (required)
roleStatus Role status. 'Disabled'
'Enabled' (required)
shareMappings Mount points of shares in role(s). MountPointMap[]

KubernetesClusterInfo

Name Description Value
version Kubernetes cluster version string (required)

KubernetesRole

Name Description Value
kind Role type. 'Kubernetes' (required)
properties Properties specific to Kubernetes role. KubernetesRoleProperties

KubernetesRoleCompute

Name Description Value
vmProfile VM profile string (required)

KubernetesRoleProperties

Name Description Value
hostPlatform Host OS supported by the Kubernetes role. 'Linux'
'Windows' (required)
kubernetesClusterInfo Kubernetes cluster configuration KubernetesClusterInfo (required)
kubernetesRoleResources Kubernetes role resources KubernetesRoleResources (required)
roleStatus Role status. 'Disabled'
'Enabled' (required)

KubernetesRoleResources

Name Description Value
compute Kubernetes role compute resource KubernetesRoleCompute (required)
storage Kubernetes role storage resource KubernetesRoleStorage

KubernetesRoleStorage

Name Description Value
endpoints Mount points of shares in role(s). MountPointMap[]

MECRole

Name Description Value
kind Role type. 'MEC' (required)
properties Properties specific to MEC role. MECRoleProperties

MECRoleProperties

Name Description Value
connectionString Activation key of the MEC. AsymmetricEncryptedSecret
controllerEndpoint Controller Endpoint. string
resourceUniqueId Unique Id of the Resource. string
roleStatus Role status. 'Disabled'
'Enabled' (required)

MountPointMap

Name Description Value
shareId ID of the share mounted to the role VM. string (required)

SymmetricKey

Name Description Value
connectionString Connection string based on the symmetric key. AsymmetricEncryptedSecret