OS installation Using SCU - Redfish API
Overview
This chapter provides detailed information about the Redfish (DMTF specification) APIs that are supported in Server Configuration Utility (SCU) framework which has a unified, modular, and extensible framework to install Operating Systems on the UCS Servers.
Storage URI :
/redfish/v1/Systems/<Server SerialNumber>/Storage
– Displays the target disks available in the server for installing the OS.
Object |
Property |
Type |
Description |
---|---|---|---|
TargetDisk |
@odataid |
string |
Redfish URI of local attached storage disk |
TargetUri |
string |
URI points to SAN LUNs cisco-ucs-iscsi:<MACAddress>: <TargetLUN>:<TargetIQN> cisco-ucs-fc:<HostWWPN>: <TargetLUN>:<TargetWWPN> |
The below sections provide the request and responses to perform the OS installation using SCU with the below list:
-
MSTOR RAID -JBOD Drive
-
MSTOR RAID -VD
-
MRAID VD
-
MRAID JBOD
-
NVME
-
SCU ISO PXE Boot
-
iPXE
-
SCU ISO HTTP Boot
-
SCU ISO FlexMMC Boot
-
SAN LUN
-
iSCSI
-
FC
-
Local Targets
MSTOR RAID -JBOD Drive
Request
curl -k -u admin:Abc@123 -X POST
https://10.0.0.1/redfish/v1/UpdateService/Actions/Oem/CiscoUCSExtensions.PrepareOSInstall
-d '{ "ApplyTime": "Immediate,"BaseISORepoDetails":
{"ImageRepository": "10.0.0.20/SCU/scu.iso",
"TransferProtocol": "VMEDIA-NFS",
"Username": "Admin",
"Password": "Abc@123"},
"OSISORepoDetails":
{"ImageRepository": "10.0.0.30/SCU/OS/RHEL/RHEL-9.4.0-20240419.25-x86_64-dvd1.iso",
"TransferProtocol": "VMEDIA-CIFS",
"Username": "Administrator",
"Password": "Utilities@sqa"},
"TargetOS": {"OSName": "rhel9u4x64", "OSEdition": "None"},
"TargetDisk": {"@odataid":
"/redfish/v1/Systems/<ServerSerialNumber>/Storage/MSTOR-RAID/Drives/253"}}'
{
"Messages": [],
"Id": "1076",
"Name": "HSU-scu-os-install",
"StartTime": "2024-08-03T08:05:17+00:00",
"TaskState": "New",
"PercentComplete": 0,
"@odata.id": "/redfish/v1/TaskService/Tasks/1076",
"@odata.type": "#Task.v1_4_0.Task"
}
curl -k -u admin:Abc@123 https://10.0.0.1/redfish/v1/TaskService/Tasks/1076
MSTOR RAID -VD
Request
curl -k -u admin:Abc@123 -X POST
https://10.0.0.1/redfish/v1/UpdateService/Actions/Oem/CiscoUCSExtensions.PrepareOSInstall
-d'{"ApplyTime":"Immediate",
"BaseISORepoDetails":{"ImageRepository":"//10.0.0.20/SCU/ucs-scu-7.1.iso",
"TransferProtocol":"VMEDIA-CIFS",
"Username":"Administrator",
"Password":"Cisco@123"},
"OSISORepoDetails":
{"ImageRepository":"//10.0.0.20/SCU/SLE-15-SP6-Full-x86_64-GMC-202405-Media1.iso",
"Username":"Admin",
"Password":"Abc@123",
"TransferProtocol":"VMEDIA-CIFS"},
"TargetOS":{"OSName":"sles15sp6x64",
"OSEdition":"None"},
"TargetDisk":{"@odataid":"/redfish/v1/Systems/
<ServerSerialNumber>/Storage/MSTOR-RAID/Volumes/0"}}'
MRAID VD
Request
curl -k -u admin:Abc@123 -X POST
https://10.0.0.1/redfish/v1/UpdateService/Actions/Oem/
CiscoUCSExtensions.PrepareOSInstall -d
'{ "ApplyTime": "Immediate","BaseISORepoDetails":
{"ImageRepository": "10.0.0.20/SCU/ISO/ucs-scu-7.1.1.iso",
"TransferProtocol": "VMEDIA-CIFS",
"Username": "Admin",
"Password": "Abc@sqa"},
"OSISORepoDetails":
{"ImageRepository": "https://10.0.0.30/one/ISO/vmware/VMware-ESXi-7.0.3o-22348816-Custom-Cisco-4.3.2-a.1.iso",
"TransferProtocol": "VMEDIA-HTTPS",
"Username": "one",
"Password": "Cisco@123"},
"TargetOS": {"OSName": "esxi7u03x64", "OSEdition": "None"},
"TargetDisk": {"@odataid":
"/redfish/v1/Systems/<ServerSerialNumber>/Storage/MRAID1/Volumes/1"}}'
MRAID JBOD
Request
curl -k -u admin:Abc@123 -X POST
https://10.0.0.1/redfish/v1/UpdateService/Actions/Oem/
CiscoUCSExtensions.PrepareOSInstall -d
'{ "ApplyTime": "Immediate",
"BaseISORepoDetails": {"ImageRepository": "//10.0.0.20/ucs-scu-7.1.1.iso",
"TransferProtocol": "VMEDIA-CIFS",
"Username": "Admin",
"Password": "Abc@123"},
"OSISORepoDetails":
{"ImageRepository": "10.0.0.30/HUU/RHEL-9.3.0-20231025.65-x86_64-dvd1.iso",
"TransferProtocol": "VMEDIA-HTTPS",
"Username": "Administrator",
"Password": "Cisco@123"},
"TargetOS":
{"OSName": "rhel9u3x64",
"OSEdition": "None"},
"TargetDisk": {"@odataid": "/redfish/v1/Systems/<ServerSerialNumber>
/Storage/MRAID/Drives/4"}}'
NVME
Request
curl -k -u admin:Abc@123 -X POST
https://10.0.0.1/redfish/v1/UpdateService/Actions/Oem/
CiscoUCSExtensions.PrepareOSInstall -d
'{"ApplyTime": "Immediate",
"BaseISORepoDetails":
{"ImageRepository": "10.0.0.20:/utilityqa-nfs/SCU/ucs-scu-7.1.1.iso",
"TransferProtocol": "VMEDIA-NFS"},
"OSISORepoDetails":
{"ImageRepository":
"10.0.0.20:/utilityqa-nfs/ISO/RHEL-9.3.0-20231025.65-x86_64-dvd1.iso",
"TransferProtocol": "VMEDIA-NFS"},
"TargetOS": {"OSName": "rhel9u3x64", "OSEdition": "None"},
"TargetDisk":
{"@odataid": "/redfish/v1/Systems/<ServerSerialNumber>/Storage/NVMe-direct-U.2-drives/Drives/FRONT-NVME-1"}}'
Sample Response
{
"@odata.id": "/redfish/v1/TaskService/Tasks/1076",
"@odata.type": "#Task.v1_5_0.Task",
"@odata.context": "/redfish/v1/$metadata#Task.Task",
"Id": "1076",
"Name": "HSU-scu-os-install",
"StartTime": "2024-08-03T08:05:17+00:00",
"PercentComplete": 100,
"TaskState": "Completed",
"Messages": [{
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully Mapped SCU ISO'",
"MessageArgs": ["Successfully Mapped SCU ISO"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully rebooted host'",
"MessageArgs": ["Successfully rebooted host"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully booted SCU ISO'",
"MessageArgs": ["Successfully booted SCU ISO"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Hard disk Preparation is in Progress'",
"MessageArgs": ["Hard disk Preparation is in Progress"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Hard disk Preparation is in Progress'",
"MessageArgs": ["Hard disk Preparation is in Progress"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Hard disk Preparation is in Progress'",
"MessageArgs": ["Hard disk Preparation is in Progress"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Hard disk Preparation is in Progress'",
"MessageArgs": ["Hard disk Preparation is in Progress"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Mapping OS ISO in progress'",
"MessageArgs": ["Mapping OS ISO in progress"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully Mapped OS ISO'",
"MessageArgs": ["Successfully Mapped OS ISO"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Hard disk Preparation is in Progress'",
"MessageArgs": ["Hard disk Preparation is in Progress"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Hard disk Preparation is in Progress'",
"MessageArgs": ["Hard disk Preparation is in Progress"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Hard disk Preparation is in Progress'",
"MessageArgs": ["Hard disk Preparation is in Progress"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Hard disk Preparation is in Progress'",
"MessageArgs": ["Hard disk Preparation is in Progress"],
"Severity": "OK",
"Resolution": "None"
},
{
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Hard disk Preparation is in Progress'",
"MessageArgs": ["Hard disk Preparation is in Progress"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully prepared Hard disk'",
"MessageArgs": ["Successfully prepared Hard disk"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully completed OS install preparation'",
"MessageArgs": ["Successfully completed OS install preparation"],
"Severity": "OK",
"Resolution": "None"
}],
"TaskMonitor": "/redfish/v1/TaskService/Oem/TaskMonitor/1076"
SCU ISO PXE Boot
Request
curl -k -u admin:Abc@12345 -X POST
https://10.0.0.1/redfish/v1/UpdateService/Actions/Oem/CiscoUCSExtensions.PrepareOSInstall
-d '{"ApplyTime":"Immediate",
"BaseISORepoDetails":{"ImageRepository":"ftp://10.0.0.57/scu",
"TransferProtocol":"HOST-PXE"},
"OSISORepoDetails":
{"ImageRepository":"10.0.0.20/SCU/OS/RHEL/RHEL-9.4.0-20240419.25-x86_64-dvd1.iso",
"Username":"admin",
"Password":"Abc@sqa",
"TransferProtocol":"VMEDIA-CIFS"},
"HostNetworkDetails":
{"ExternalEthernetMACAddressInterface":"B4:96:91:CA:DB:6A",
"IPv4Address":{"AddressOrigin":"DHCP"},
"PCIeSlot":"6","PhysicalPortNumber":"0"},
"TargetOS":{"OSName":"rhel9u4x64","OSEdition":"None"},
"TargetDisk":
{"@odataid":"/redfish/v1/Systems/<ServerSerialNumber>/Storage/PCIe-Switch-1/Drives/FRONT-NVME-1"}}'
Sample Response
{
"Messages": [],
"Id": "1250",
"Name": "HSU-scu-os-install",
"StartTime": "2024-07-27T02:14:21+00:00",
"TaskState": "New",
"PercentComplete": 0,
"@odata.id": "/redfish/v1/TaskService/Tasks/1250",
"@odata.type": "#Task.v1_4_0.Task"
[root@localhost ~]# curl -k -u admin:Abc@12345 https://10.0.0.1/redfish/v1/TaskService/Tasks/1250
{
"@odata.id": "/redfish/v1/TaskService/Tasks/1250",
"@odata.type": "#Task.v1_5_0.Task",
"@odata.context": "/redfish/v1/$metadata#Task.Task",
"Id": "1250",
"Name": "HSU-scu-os-install",
"StartTime": "2024-07-27T02:14:21+00:00",
"PercentComplete": 100,
"TaskState": "Completed",
"Messages": [{
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully configured PXE boot details to boot SCU ISO'",
"MessageArgs": ["Successfully configured PXE boot details to boot SCU ISO"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully rebooted host'",
"MessageArgs": ["Successfully rebooted host"],
"Severity": "OK",
"Resolution": "None"
iPXE
Request
curl -k -u admin:Abc@12345 -X POST
https://10.0.0.60/redfish/v1/UpdateService/Actions/Oem/CiscoUCSExtensions.PrepareOSInstall
-d '{"BaseISORepoDetails":
{"ImageRepository": "http://10.0.0.57/scu/ucs-scu-7.1.1.iso",
"TransferProtocol": "HOST-IPXE"},
"HostNetworkDetails": {"ExternalEthernetMACAddressInterface": "b4:96:91:ca:db:6a",
"PCIeSlot": "6",
"PhysicalPortNumber": "0",
"IPv4Address": {"AddressOrigin": "DHCP"},"IPv4DNS": {"Address": "10.0.0.80"}},
"OSISORepoDetails":
{ "ImageRepository": "10.0.0.83/cifs_automation/SCU/OS/RHEL/RHEL-9.4.0-20240419.25-x86_64-dvd1.iso",
"Username":"administrator",
"Password":"Utilities@sqa",
"TransferProtocol": "VMEDIA-CIFS"},
"TargetOS":{"OSName":"rhel9u4x64","OSEdition":"None"},
"TargetDisk":{"@odataid":"/redfish/v1/Systems/<ServerSerialNumber>/Storage/PCIe-Switch-1/Drives/FRONT-NVME-1"}}'
Sample Response
curl -k -u admin:Utility@12345 https://10.0.0.60/redfish/v1/TaskService/Tasks/1231
{
"@odata.id": "/redfish/v1/TaskService/Tasks/1231",
"@odata.type": "#Task.v1_5_0.Task",
"@odata.context": "/redfish/v1/$metadata#Task.Task",
"Id": "1231",
"Name": "HSU-scu-os-install",
"StartTime": "2024-07-23T05:32:02+00:00",
"PercentComplete": 100,
"TaskState": "Completed",
"Messages": [{
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully configured PXE boot details to boot SCU ISO'",
"MessageArgs": ["Successfully configured PXE boot details to boot SCU ISO"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully rebooted host'",
"MessageArgs": ["Successfully rebooted host"],
"Severity": "OK",
"Resolution": "None"
SCU ISO HTTP Boot
Request
curl -k -u admin:Abc@12345 -X POST
https://10.0.0.1/redfish/v1/UpdateService/Actions/Oem/CiscoUCSExtensions.PrepareOSInstall
-d'{"BaseISORepoDetails":
{"ImageRepository":"http://10.0.0.5/huu/scu/ucs-scu-7.1.iso",
"Username":"Simpleuser",
"Password":"Abc123",
"TransferProtocol": "HOST-HTTPS"},
"HostNetworkDetails": {"ExternalEthernetMACAddressInterface": "B4:96:91:EA:D1:88",
"PCIeSlot": "1",
"PhysicalPortNumber": "1",
"IPv4Address":{"Address": "10.0.0.40","AddressOrigin": "Static","SubnetMask": "255.255.255.0",
"Gateway": "10.0.0.2"},
"IPv4DNS": {"Address": "10.0.0.30"}},
"OSISORepoDetails":
{ "ImageRepository": "//10.0.0.20/Gladiator/RHEL-9.3.0-20231025.65-x86_64-dvd1.iso",
"Username":"Admin",
"Password":"Abc@123",
"TransferProtocol": "VMEDIA-CIFS"},
"TargetOS":{"OSName":"rhel9u3x64","OSEdition":"None"},
"TargetDisk":{"@odataid":"/redfish/v1/Systems/<ServerSerialNumber>/Storage/MSTOR-RAID/Drives/253"}}'
Sample Response
{
"Messages": [],
"Id": "2409",
"Name": "HSU-scu-os-install",
"StartTime": "2024-06-24T06:30:06+00:00",
"TaskState": "New",
"PercentComplete": 0,
"@odata.id": "/redfish/v1/TaskService/Tasks/2409",
"@odata.type": "#Task.v1_4_0.Task"
curl -k -u admin:Abc@123 https://10.0.0.1/redfish/v1/TaskService/Tasks/2409
{
"@odata.id": "/redfish/v1/TaskService/Tasks/2409",
"@odata.type": "#Task.v1_5_0.Task",
"@odata.context": "/redfish/v1/$metadata#Task.Task",
"Id": "2409",
"Name": "HSU-scu-os-install",
"StartTime": "2024-06-24T06:30:06+00:00",
"PercentComplete": 100,
"TaskState": "Completed",
"Messages": [{
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully configured HTTPS boot details to boot SCU ISO'",
"MessageArgs": ["Successfully configured HTTPS boot details to boot SCU ISO"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully rebooted host'",
"MessageArgs": ["Successfully rebooted host"],
"Severity": "OK",
"Resolution": "None"
SCU ISO FlexMMC Boot
Request
curl -k -u admin:Abc@123 -X POST
https://10.0.0.1/redfish/v1/UpdateService/Actions/Oem/CiscoUCSExtensions.PrepareOSInstall
-d'{"ApplyTime":"Immediate",
"BaseISORepoDetails":{"ImageRepository":"ucs-scu-7.1.1.iso",
"TransferProtocol":"LOCAL-HOST"},
"OSISORepoDetails":
{"ImageRepository":"10.0.0.20/SCU/OS/WINDOWS/en-us_windows_server_2022_updated_may_2024_x64_dvd_59e44c3a.iso",
"Username":"Admin",
"Password":"Abc@sqa",
"TransferProtocol":"VMEDIA-CIFS"},
"TargetOS":{"OSName":"w2k22x64","OSEdition":"STANDARD"},
"TargetDisk":{
"@odataid":"/redfish/v1/Systems/<ServerSerialNumber>/Storage/NVMe-direct-U.2-drives/Drives/FRONT-NVME-1"}}'
SAN LUN
iSCSI
Request
curl -k -u admin:Abc@123 -X POST
https://10.0.0.1/redfish/v1/UpdateService/Actions/Oem/CiscoUCSExtensions.PrepareOSInstall
-d'{"ApplyTime":"Immediate",
"BaseISORepoDetails": {"ImageRepository": "//10.0.0.20/SCU/scu.iso",
"TransferProtocol": "VMEDIA-CIFS",
"Username": "administrator",
"Password": "Abc@123"},
"OSISORepoDetails": {"ImageRepository": "https://10.0.0.30/one/ISO/vmware/VMware-ESXi-8.0.U2-22380479-Custom-Cisco-4.3.2-c.iso",
"TransferProtocol": "VMEDIA-HTTPS",
"Username": "one",
"Password": "abc@123"},
"TargetOS": {"OSName": "esxi8u02x64", "OSEdition": "None"},
"TargetDisk": {"TargetUri": "cisco-ucs-iscsi:<HostMACAdress>:<TargetLUNID>:<TargetIQN>"}}'
Response
{
"@odata.id": "/redfish/v1/TaskService/Tasks/2546",
"@odata.type": "#Task.v1_5_0.Task",
"@odata.context": "/redfish/v1/$metadata#Task.Task",
"Id": "2546",
"Name": "HSU-scu-os-install",
"StartTime": "2024-08-01T19:56:37+00:00",
"PercentComplete": 100,
"TaskState": "Completed",
"Messages": [{
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully Mapped SCU ISO'",
"MessageArgs": ["Successfully Mapped SCU ISO"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully rebooted host'",
"MessageArgs": ["Successfully rebooted host"],
"Severity": "OK",
"Resolution": "None"
}, {
"@odata.type": "#Message.v1_1_1.Message",
"MessageId": "CiscoUcsHsu.1.0.0.PrepareOSInstallStatus",
"Message": "'Successfully booted SCU ISO'",
"MessageArgs": ["Successfully booted SCU ISO"],
"Severity": "OK",
"Resolution": "None"
FC
Request
curl -k -u admin:Abc@123 -X POST
https://10.0.0.1/redfish/v1/UpdateService/Actions/Oem/CiscoUCSExtensions.PrepareOSInstall
-d '{ "ApplyTime": "Immediate",
"BaseISORepoDetails":
{"ImageRepository": "10.0.0.20/SCU/ucs-scu-7.1.1.iso",
"Username":"Administrator",
"Password":"Abc@123",
"TransferProtocol": "VMEDIA-CIFS"},
"OSISORepoDetails":
{"ImageRepository": "10.0.0.20/RHEL/RHEL-9.3.0-20231025.65-x86_64-dvd1.iso",
"Username":"Administrator",
"Password":"Abc@123","TransferProtocol": "VMEDIA-CIFS"},
"TargetOS": {"OSName": "rhel9u3x64", "OSEdition": "None"},
"TargetDisk": {"TargetUri": "cisco-ucs-fc:<HostWWPN>:<LUNID>:<TargetWWPN>"}}'