Vasa Providers APIs
APIs for managing VASA Providers
Table of Contents
1. Validate VASA Provider
- This API validates the input specification of the VASA Provider
1.1. Prerequisites
The following data is required
VASA Provider name
VASA Provider URL
List of storage containers
For each storage container
Name of the storage container
Storage protocol type
List of VASA users
For each VASA user
User name
Password.
Tip : Refer to: VasaProvider.
1.2. Steps
- Validate the input specification.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/validations' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"username" : "User1",
"password" : "password"
}, {
"username" : "User2",
"password" : "password"
} ]
}'
HTTP Request
POST /v1/vasa-providers/validations HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 391
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"username" : "User1",
"password" : "password"
}, {
"username" : "User2",
"password" : "password"
} ]
}
HTTP Response
HTTP/1.1 202 Accepted
Location: /v1/vasa-providers/validations/7e48ac42-8a82-43a4-9e72-6274902b2d5d
Content-Type: application/json
Content-Length: 321
{
"id" : "7e48ac42-8a82-43a4-9e72-6274902b2d5d",
"description" : "Validate input specification to add a VASA Provider to VMware Cloud Foundation",
"executionStatus" : "IN_PROGRESS",
"validationChecks" : [ {
"description" : "Validating VASA Provider input specification",
"resultStatus" : "UNKNOWN"
} ]
}
- Poll the status of the validation using the get validation API with the ID from the response.
Tip : Refer to: Get VASA Provider Validation.
2. Get VASA Provider Validation
2.1. Prerequisites
The following data is required
- ID of the VASA Provider Validation
2.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/validations/38d85bb8-9a2f-4c2d-92ba-73617efbedba' -i -X GET \
-H 'Accept: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/vasa-providers/validations/38d85bb8-9a2f-4c2d-92ba-73617efbedba HTTP/1.1
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 321
{
"id" : "38d85bb8-9a2f-4c2d-92ba-73617efbedba",
"description" : "Validate input specification to add a VASA Provider to VMware Cloud Foundation",
"executionStatus" : "COMPLETED",
"validationChecks" : [ {
"description" : "Validating VASA Provider input specification",
"resultStatus" : "SUCCEEDED"
} ]
}
3. Add VASA Provider
This API is used to add a VASA Provider to the system. The added VASA Provider would be used during domain creation, cluster creation flows.
If a VASA Provider already exists, you will get an error with HTTP status 400.
3.1. Prerequisites
The following data is required
VASA Provider name
VASA Provider URL
List of storage containers
For each storage container
Name of the storage container
Storage protocol type
List of VASA users
For each VASA user
User name
Password.
Tip : Refer to: VasaProvider.
3.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"username" : "User1",
"password" : "password"
}, {
"username" : "User2",
"password" : "password"
} ]
}'
HTTP Request
POST /v1/vasa-providers HTTP/1.1
Content-Type: application/json
Content-Length: 391
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"username" : "User1",
"password" : "password"
}, {
"username" : "User2",
"password" : "password"
} ]
}
HTTP Response
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 669
{
"id" : "1110204c-ae74-4a49-af7f-0bdfe9ed74ed",
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"id" : "ff8c28ee-e288-411c-bb60-953c82904290",
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"id" : "4d1db9e4-db2a-4606-8d2a-602453a09cb0",
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"id" : "20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5",
"username" : "User1"
}, {
"id" : "8e3ea59d-12d2-40e0-9915-406e763608a6",
"username" : "User2"
}, {
"id" : "50faad0b-ef51-4ea6-bc49-2e737bcc03cf",
"username" : "User3"
} ]
}
4. Get the VASA Providers
- This API is used to get the VASA Providers.
4.1. Prerequisites
None
4.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers' -i -X GET \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/vasa-providers HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 649
{
"elements" : [ {
"id" : "1110204c-ae74-4a49-af7f-0bdfe9ed74ed",
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"id" : "ff8c28ee-e288-411c-bb60-953c82904290",
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"id" : "4d1db9e4-db2a-4606-8d2a-602453a09cb0",
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"id" : "20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5",
"username" : "User1"
}, {
"id" : "8e3ea59d-12d2-40e0-9915-406e763608a6",
"username" : "User2"
} ]
} ]
}
5. Get a VASA Provider
This API is used to get a VASA Provider.
5.1. Prerequisites
The following data is required:
- ID of the VASA Provider
5.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed' -i -X GET \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 586
{
"id" : "1110204c-ae74-4a49-af7f-0bdfe9ed74ed",
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"id" : "ff8c28ee-e288-411c-bb60-953c82904290",
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"id" : "4d1db9e4-db2a-4606-8d2a-602453a09cb0",
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"id" : "20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5",
"username" : "User1"
}, {
"id" : "8e3ea59d-12d2-40e0-9915-406e763608a6",
"username" : "User2"
} ]
}
6. Update a VASA Provider
- This API is used to update a VASA Provider.
6.1. Prerequisites
The following data is required
- ID of the VASA Provider
The following data is optional
VASA Provider name
VASA Provider URL
Tip : Refer to: Get the VASA Providers
6.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed' -i -X PATCH \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"name" : "new-VASA-Provider1",
"url" : "https://10.0.32.217/vasa/version.xml"
}'
HTTP Request
PATCH /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed HTTP/1.1
Content-Type: application/json
Content-Length: 85
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"name" : "new-VASA-Provider1",
"url" : "https://10.0.32.217/vasa/version.xml"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 590
{
"id" : "1110204c-ae74-4a49-af7f-0bdfe9ed74ed",
"name" : "new-VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"id" : "ff8c28ee-e288-411c-bb60-953c82904290",
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"id" : "4d1db9e4-db2a-4606-8d2a-602453a09cb0",
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"id" : "20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5",
"username" : "User1"
}, {
"id" : "8e3ea59d-12d2-40e0-9915-406e763608a6",
"username" : "User2"
} ]
}
7. Delete a VASA Provider
Used to delete a VASA Provider.
Deleting a VASA Provider which is being used, will give an error.
Deleting a VASA Provider which does not exist, will give a HTTP response code 404.
7.1. Prerequisites
The following data is required
- ID of the VASA Provider
7.2. Steps
- Invoke the API
Tip : Refer to: Get the VASA Providers API to retrieve all VASA providers in the system and use the ID of VASA Provider to be deleted.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed' -i -X DELETE \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
DELETE /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 204 No Content
8. Get the Storage Containers of a VASA Provider
- This API is used to fetch all the storage containers of a VASA Provider
8.1. Prerequisites
The following data is required
- ID of the VASA Provider
Tip : Refer to: Get the VASA Providers
8.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/storage-containers' -i -X GET \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/storage-containers HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 228
[ {
"id" : "ff8c28ee-e288-411c-bb60-953c82904290",
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"id" : "4d1db9e4-db2a-4606-8d2a-602453a09cb0",
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ]
9. Get the Storage Containers by ProtocolType
- This API is used to fetch all the storage containers for a given protocol type
9.1. Prerequisites
The following data is required
ID of the VASA Provider
Protocol type of the storage container
Tip : Refer to: Get the VASA Providers
9.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/storage-containers?protocolType=FC' -i -X GET \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/storage-containers?protocolType=FC HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 114
[ {
"id" : "ff8c28ee-e288-411c-bb60-953c82904290",
"name" : "StorageContainer-FC",
"protocolType" : "FC"
} ]
10. Add the Storage Containers to a VASA Provider
This API is used to add the storage containers to a VASA Provider.
If a storage container already exists, you will get an error with HTTP status 400.
10.1. Prerequisites
The following data is required
ID of the VASA Provider
List of storage containers
For each storage container
Name of the storage container
Storage protocol type
Tip : Refer to: Get the VASA Providers
10.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/storage-containers' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '[ {
"name" : "StorageContainer-ISCSI",
"protocolType" : "ISCSI"
} ]'
HTTP Request
POST /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/storage-containers HTTP/1.1
Content-Type: application/json
Content-Length: 71
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
[ {
"name" : "StorageContainer-ISCSI",
"protocolType" : "ISCSI"
} ]
HTTP Response
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 712
{
"id" : "1110204c-ae74-4a49-af7f-0bdfe9ed74ed",
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"id" : "ff8c28ee-e288-411c-bb60-953c82904290",
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"id" : "4d1db9e4-db2a-4606-8d2a-602453a09cb0",
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
}, {
"id" : "6eb86ca8-2425-427d-bc97-9fccaa57fc7f",
"name" : "StorageContainer-ISCSI",
"protocolType" : "ISCSI"
} ],
"users" : [ {
"id" : "20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5",
"username" : "User1"
}, {
"id" : "8e3ea59d-12d2-40e0-9915-406e763608a6",
"username" : "User2"
} ]
}
11. Rename a Storage Container of a VASA Provider
- This API is used to rename a storage container of a VASA Provider.
11.1. Prerequisites
The following data is required
ID of the VASA Provider
ID of the storage container
New storage container name
Tip : Refer to: Get the VASA Providers and Get the Storage Containers of a VASA Provider
11.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/storage-containers/ff8c28ee-e288-411c-bb60-953c82904290' -i -X PATCH \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"name" : "new-StorageContainer-FC"
}'
HTTP Request
PATCH /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/storage-containers/ff8c28ee-e288-411c-bb60-953c82904290 HTTP/1.1
Content-Type: application/json
Content-Length: 40
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"name" : "new-StorageContainer-FC"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 590
{
"id" : "1110204c-ae74-4a49-af7f-0bdfe9ed74ed",
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"id" : "ff8c28ee-e288-411c-bb60-953c82904290",
"name" : "new-StorageContainer-FC",
"protocolType" : "FC"
}, {
"id" : "4d1db9e4-db2a-4606-8d2a-602453a09cb0",
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"id" : "20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5",
"username" : "User1"
}, {
"id" : "8e3ea59d-12d2-40e0-9915-406e763608a6",
"username" : "User2"
} ]
}
12. Delete a Storage Container of a VASA Provider
Used to delete a storage container of a VASA Provider
Deleting a storage container which is being used, will give an error.
Deleting a storage container which does not exist, will give a HTTP response code 404.
12.1. Prerequisites
The following data is required
ID of the VASA Provider
ID of the storage containers
12.2. Steps
- Invoke the API
Tip : Refer to: Get the VASA Providers and Get the Storage Containers of a VASA Provider
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/storage-containers/ff8c28ee-e288-411c-bb60-953c82904290' -i -X DELETE \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
DELETE /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/storage-containers/ff8c28ee-e288-411c-bb60-953c82904290 HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 204 No Content
13. Get the Users of a VASA Provider
13.1. Prerequisites
The following data is required
- ID of the VASA Provider
Tip : Refer to: Get the VASA Providers
13.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/users' -i -X GET \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/users HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 156
[ {
"id" : "20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5",
"username" : "User1"
}, {
"id" : "8e3ea59d-12d2-40e0-9915-406e763608a6",
"username" : "User2"
} ]
14. Add the Users to a VASA Provider
This API is used to add the VASA users to a VASA Provider.
If a VASA user already exists, you will get an error with HTTP status 400.
14.1. Prerequisites
The following data is required
ID of the VASA Provider
List of VASA users
For each VASA user
User name
Password.
Tip : Refer to: Get the VASA Providers
14.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/users' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '[ {
"username" : "User3",
"password" : "password"
} ]'
HTTP Request
POST /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/users HTTP/1.1
Content-Type: application/json
Content-Length: 57
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
[ {
"username" : "User3",
"password" : "password"
} ]
HTTP Response
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 669
{
"id" : "1110204c-ae74-4a49-af7f-0bdfe9ed74ed",
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"id" : "ff8c28ee-e288-411c-bb60-953c82904290",
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"id" : "4d1db9e4-db2a-4606-8d2a-602453a09cb0",
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"id" : "20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5",
"username" : "User1"
}, {
"id" : "8e3ea59d-12d2-40e0-9915-406e763608a6",
"username" : "User2"
}, {
"id" : "b0616409-60c7-424f-bf72-ebc1614e2057",
"username" : "User3"
} ]
}
15. Update the User of a VASA Provider
- This API is used to update the user of a VASA Provider.
15.1. Prerequisites
The following data is required
ID of the VASA Provider
ID of the VASA User
The following data is optional
VASA user name
VASA password
Tip : Refer to: Get the VASA Providers and Get the Users of a VASA Provider
15.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/users/20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5' -i -X PATCH \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"username" : "new-User1",
"password" : "password"
}'
HTTP Request
PATCH /v1/vasa-providers/1110204c-ae74-4a49-af7f-0bdfe9ed74ed/users/20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5 HTTP/1.1
Content-Type: application/json
Content-Length: 57
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"username" : "new-User1",
"password" : "password"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 590
{
"id" : "1110204c-ae74-4a49-af7f-0bdfe9ed74ed",
"name" : "VASA-Provider1",
"url" : "https://10.0.0.217:8443/vasa/version.xml",
"storageContainers" : [ {
"id" : "ff8c28ee-e288-411c-bb60-953c82904290",
"name" : "StorageContainer-FC",
"protocolType" : "FC"
}, {
"id" : "4d1db9e4-db2a-4606-8d2a-602453a09cb0",
"name" : "StorageContainer-NFS",
"protocolType" : "NFS"
} ],
"users" : [ {
"id" : "20ca8f7c-ac39-4f3b-9037-6e7e62c0faf5",
"username" : "new-User1"
}, {
"id" : "8e3ea59d-12d2-40e0-9915-406e763608a6",
"username" : "User2"
} ]
}
Last updated 2022-09-28 17:42:27 PDT