1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/workspaces/model/ImportWorkspaceImageRequest.h>
7 #include <aws/core/utils/json/JsonSerializer.h>
8 
9 #include <utility>
10 
11 using namespace Aws::WorkSpaces::Model;
12 using namespace Aws::Utils::Json;
13 using namespace Aws::Utils;
14 
ImportWorkspaceImageRequest()15 ImportWorkspaceImageRequest::ImportWorkspaceImageRequest() :
16     m_ec2ImageIdHasBeenSet(false),
17     m_ingestionProcess(WorkspaceImageIngestionProcess::NOT_SET),
18     m_ingestionProcessHasBeenSet(false),
19     m_imageNameHasBeenSet(false),
20     m_imageDescriptionHasBeenSet(false),
21     m_tagsHasBeenSet(false),
22     m_applicationsHasBeenSet(false)
23 {
24 }
25 
SerializePayload() const26 Aws::String ImportWorkspaceImageRequest::SerializePayload() const
27 {
28   JsonValue payload;
29 
30   if(m_ec2ImageIdHasBeenSet)
31   {
32    payload.WithString("Ec2ImageId", m_ec2ImageId);
33 
34   }
35 
36   if(m_ingestionProcessHasBeenSet)
37   {
38    payload.WithString("IngestionProcess", WorkspaceImageIngestionProcessMapper::GetNameForWorkspaceImageIngestionProcess(m_ingestionProcess));
39   }
40 
41   if(m_imageNameHasBeenSet)
42   {
43    payload.WithString("ImageName", m_imageName);
44 
45   }
46 
47   if(m_imageDescriptionHasBeenSet)
48   {
49    payload.WithString("ImageDescription", m_imageDescription);
50 
51   }
52 
53   if(m_tagsHasBeenSet)
54   {
55    Array<JsonValue> tagsJsonList(m_tags.size());
56    for(unsigned tagsIndex = 0; tagsIndex < tagsJsonList.GetLength(); ++tagsIndex)
57    {
58      tagsJsonList[tagsIndex].AsObject(m_tags[tagsIndex].Jsonize());
59    }
60    payload.WithArray("Tags", std::move(tagsJsonList));
61 
62   }
63 
64   if(m_applicationsHasBeenSet)
65   {
66    Array<JsonValue> applicationsJsonList(m_applications.size());
67    for(unsigned applicationsIndex = 0; applicationsIndex < applicationsJsonList.GetLength(); ++applicationsIndex)
68    {
69      applicationsJsonList[applicationsIndex].AsString(ApplicationMapper::GetNameForApplication(m_applications[applicationsIndex]));
70    }
71    payload.WithArray("Applications", std::move(applicationsJsonList));
72 
73   }
74 
75   return payload.View().WriteReadable();
76 }
77 
GetRequestSpecificHeaders() const78 Aws::Http::HeaderValueCollection ImportWorkspaceImageRequest::GetRequestSpecificHeaders() const
79 {
80   Aws::Http::HeaderValueCollection headers;
81   headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "WorkspacesService.ImportWorkspaceImage"));
82   return headers;
83 
84 }
85 
86 
87 
88 
89