curl --request PUT \
--url https://{controlPlaneURL}/api/svc/v1/virtual-accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"manifest": {
"name": "<string>",
"type": "virtual-account",
"permissions": [
{
"resource_fqn": "<string>",
"resource_type": "<string>",
"role_id": "<string>"
}
],
"expiration_date": "<string>",
"auto_rotate": {
"auto_rotate_interval": 360,
"grace_period": 30
},
"notification_target": {
"type": "email",
"notification_channel": "<string>",
"to_emails": [
"<string>"
]
},
"secret_store_config": {
"integration_fqn": "<string>",
"secret_path": "<string>"
},
"ownedBy": {
"team": "<string>",
"account": "<string>"
}
},
"dryRun": true
}
'{
"data": {
"id": "<string>",
"name": "<string>",
"type": "<string>",
"tenantName": "<string>",
"createdBySubject": {
"subjectId": "<string>",
"subjectType": "user",
"subjectSlug": "<string>",
"subjectDisplayName": "<string>"
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"manifest": {
"name": "<string>",
"type": "virtual-account",
"permissions": [
{
"resource_fqn": "<string>",
"resource_type": "<string>",
"role_id": "<string>"
}
],
"expiration_date": "<string>",
"auto_rotate": {
"auto_rotate_interval": 360,
"grace_period": 30
},
"notification_target": {
"type": "email",
"notification_channel": "<string>",
"to_emails": [
"<string>"
]
},
"secret_store_config": {
"integration_fqn": "<string>",
"secret_path": "<string>"
},
"ownedBy": {
"team": "<string>",
"account": "<string>"
}
},
"jwtId": "<string>",
"isExpired": true,
"jwts": [
{
"id": "<string>",
"subjectType": "<string>",
"subjectId": "<string>",
"expiry": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"metadata": {}
}
],
"accountId": "<string>",
"metadata": {},
"roleIds": [
"<string>"
],
"createdBy": "<string>",
"nextScheduledRotation": "<string>"
},
"token": "<string>"
}Creates a new virtual account or updates an existing one based on the provided manifest.
curl --request PUT \
--url https://{controlPlaneURL}/api/svc/v1/virtual-accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"manifest": {
"name": "<string>",
"type": "virtual-account",
"permissions": [
{
"resource_fqn": "<string>",
"resource_type": "<string>",
"role_id": "<string>"
}
],
"expiration_date": "<string>",
"auto_rotate": {
"auto_rotate_interval": 360,
"grace_period": 30
},
"notification_target": {
"type": "email",
"notification_channel": "<string>",
"to_emails": [
"<string>"
]
},
"secret_store_config": {
"integration_fqn": "<string>",
"secret_path": "<string>"
},
"ownedBy": {
"team": "<string>",
"account": "<string>"
}
},
"dryRun": true
}
'{
"data": {
"id": "<string>",
"name": "<string>",
"type": "<string>",
"tenantName": "<string>",
"createdBySubject": {
"subjectId": "<string>",
"subjectType": "user",
"subjectSlug": "<string>",
"subjectDisplayName": "<string>"
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"manifest": {
"name": "<string>",
"type": "virtual-account",
"permissions": [
{
"resource_fqn": "<string>",
"resource_type": "<string>",
"role_id": "<string>"
}
],
"expiration_date": "<string>",
"auto_rotate": {
"auto_rotate_interval": 360,
"grace_period": 30
},
"notification_target": {
"type": "email",
"notification_channel": "<string>",
"to_emails": [
"<string>"
]
},
"secret_store_config": {
"integration_fqn": "<string>",
"secret_path": "<string>"
},
"ownedBy": {
"team": "<string>",
"account": "<string>"
}
},
"jwtId": "<string>",
"isExpired": true,
"jwts": [
{
"id": "<string>",
"subjectType": "<string>",
"subjectId": "<string>",
"expiry": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"metadata": {}
}
],
"accountId": "<string>",
"metadata": {},
"roleIds": [
"<string>"
],
"createdBy": "<string>",
"nextScheduledRotation": "<string>"
},
"token": "<string>"
}Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Virtual account manifest
Show child attributes
+label=Name +sort=1 +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number +usage=Virtual Account Name
+value=virtual-account
virtual-account +label=Permissions +sort=2 +uiType=ServiceAccountPermissions
Show child attributes
+label= Resource FQN +usage=The fully qualified name of the resource
+label=Resource Type +usage=The type of the resource (cluster, workspace, etc.)
+label=Role ID +usage=The role id of the role to be assigned to the service account for that resource
+label=Expiration Date (UTC) +message=Expiration date of the virtual account +usage=Expiration Date of the Virtual Account (should be in the format yyyy-mm-dd) +sort=3 +uiType=DatePicker
+label=Enable Auto Rotation +sort=4 +usage=Enable Auto Rotation to automatically rotate the token +message=Enable Auto Rotation to automatically rotate the token +uiProps={"disableEdit":true}
Show child attributes
+label=Rotation Interval in days +sort=1 +usage=Rotation Interval in days after which the token will be rotated. Minimum value is 30.
x >= 30+label=Grace Period in days +sort=2 +usage=Grace Period in days for which the token will be valid after rotation interval. Minimum value is 1.
x >= 1+label=Email
Show child attributes
+value=email
email +label=Notification Channel +usage=Specify the notification channel to send alerts to +uiType=AlertNotificationChannel +uiProps={"integrationType":"notification-channel"} +sort=660
1+label=To Emails +usage=List of recipients' email addresses if the notification channel is Email. +docs=Specify the emails to send alerts to +sort=665
1+label=Sync to Secret Manager +sort=6 +usage=Enable to store the virtual account token in a secret store +message=Enable to store the virtual account token in a secret store
Show child attributes
+label=Secret Store +usage=The secret store to store the virtual account token in +sort=1 +uiType=IntegrationSelect
+label=Secret Path +usage=The path where the virtual account token will be stored in the secret store (example: secret/path/to/virtual-account-token) +message=The path should only contain alphanumeric characters, hyphens, and slashes and it should start with a slash if giving the path containing slashes in between +sort=2
+label=Owner +usage=Names of the owners that own the virtual account
Show child attributes
+label=Team Name +sort=2 +usage=The name of the team that owns this resource +placeholder=Search Team +uiType=UserSelect +uiProps={"optionTypes": ["teams"], "maxAllowedUsers": 1}
+label=Account Name +sort=1 +usage=The name of the account that owns this resource +placeholder=Search Account +uiType=Hidden +uiProps={"maxAllowedAccounts": 1}
Dry run
Virtual account created/updated successfully
Virtual Account
Show child attributes
Show child attributes
Subject ID
Subject type
user, team, serviceaccount, virtualaccount, external-identity Subject slug
Subject display name
Show child attributes
+label=Name +sort=1 +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number +usage=Virtual Account Name
+value=virtual-account
virtual-account +label=Permissions +sort=2 +uiType=ServiceAccountPermissions
Show child attributes
+label= Resource FQN +usage=The fully qualified name of the resource
+label=Resource Type +usage=The type of the resource (cluster, workspace, etc.)
+label=Role ID +usage=The role id of the role to be assigned to the service account for that resource
+label=Expiration Date (UTC) +message=Expiration date of the virtual account +usage=Expiration Date of the Virtual Account (should be in the format yyyy-mm-dd) +sort=3 +uiType=DatePicker
+label=Enable Auto Rotation +sort=4 +usage=Enable Auto Rotation to automatically rotate the token +message=Enable Auto Rotation to automatically rotate the token +uiProps={"disableEdit":true}
Show child attributes
+label=Rotation Interval in days +sort=1 +usage=Rotation Interval in days after which the token will be rotated. Minimum value is 30.
x >= 30+label=Grace Period in days +sort=2 +usage=Grace Period in days for which the token will be valid after rotation interval. Minimum value is 1.
x >= 1+label=Email
Show child attributes
+value=email
email +label=Notification Channel +usage=Specify the notification channel to send alerts to +uiType=AlertNotificationChannel +uiProps={"integrationType":"notification-channel"} +sort=660
1+label=To Emails +usage=List of recipients' email addresses if the notification channel is Email. +docs=Specify the emails to send alerts to +sort=665
1+label=Sync to Secret Manager +sort=6 +usage=Enable to store the virtual account token in a secret store +message=Enable to store the virtual account token in a secret store
Show child attributes
+label=Secret Store +usage=The secret store to store the virtual account token in +sort=1 +uiType=IntegrationSelect
+label=Secret Path +usage=The path where the virtual account token will be stored in the secret store (example: secret/path/to/virtual-account-token) +message=The path should only contain alphanumeric characters, hyphens, and slashes and it should start with a slash if giving the path containing slashes in between +sort=2
+label=Owner +usage=Names of the owners that own the virtual account
Show child attributes
+label=Team Name +sort=2 +usage=The name of the team that owns this resource +placeholder=Search Team +uiType=UserSelect +uiProps={"optionTypes": ["teams"], "maxAllowedUsers": 1}
+label=Account Name +sort=1 +usage=The name of the account that owns this resource +placeholder=Search Account +uiType=Hidden +uiProps={"maxAllowedAccounts": 1}
Virtual Account token (present only when creating a virtual account)
Was this page helpful?