﻿/*
* Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
*  http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/

#include <aws/ssm/model/GetInventoryRequest.h>
#include <aws/core/utils/json/JsonSerializer.h>

#include <utility>

using namespace Aws::SSM::Model;
using namespace Aws::Utils::Json;
using namespace Aws::Utils;

GetInventoryRequest::GetInventoryRequest() : 
    m_filtersHasBeenSet(false),
    m_aggregatorsHasBeenSet(false),
    m_resultAttributesHasBeenSet(false),
    m_nextTokenHasBeenSet(false),
    m_maxResults(0),
    m_maxResultsHasBeenSet(false)
{
}

Aws::String GetInventoryRequest::SerializePayload() const
{
  JsonValue payload;

  if(m_filtersHasBeenSet)
  {
   Array<JsonValue> filtersJsonList(m_filters.size());
   for(unsigned filtersIndex = 0; filtersIndex < filtersJsonList.GetLength(); ++filtersIndex)
   {
     filtersJsonList[filtersIndex].AsObject(m_filters[filtersIndex].Jsonize());
   }
   payload.WithArray("Filters", std::move(filtersJsonList));

  }

  if(m_aggregatorsHasBeenSet)
  {
   Array<JsonValue> aggregatorsJsonList(m_aggregators.size());
   for(unsigned aggregatorsIndex = 0; aggregatorsIndex < aggregatorsJsonList.GetLength(); ++aggregatorsIndex)
   {
     aggregatorsJsonList[aggregatorsIndex].AsObject(m_aggregators[aggregatorsIndex].Jsonize());
   }
   payload.WithArray("Aggregators", std::move(aggregatorsJsonList));

  }

  if(m_resultAttributesHasBeenSet)
  {
   Array<JsonValue> resultAttributesJsonList(m_resultAttributes.size());
   for(unsigned resultAttributesIndex = 0; resultAttributesIndex < resultAttributesJsonList.GetLength(); ++resultAttributesIndex)
   {
     resultAttributesJsonList[resultAttributesIndex].AsObject(m_resultAttributes[resultAttributesIndex].Jsonize());
   }
   payload.WithArray("ResultAttributes", std::move(resultAttributesJsonList));

  }

  if(m_nextTokenHasBeenSet)
  {
   payload.WithString("NextToken", m_nextToken);

  }

  if(m_maxResultsHasBeenSet)
  {
   payload.WithInteger("MaxResults", m_maxResults);

  }

  return payload.WriteReadable();
}

Aws::Http::HeaderValueCollection GetInventoryRequest::GetRequestSpecificHeaders() const
{
  Aws::Http::HeaderValueCollection headers;
  headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "AmazonSSM.GetInventory"));
  return headers;

}





{'avg_line_length': 28.122448979591837, 'max_line_length': 129, 'alphanum_fraction': 0.7565312046444121, 'licenses': ['Apache-2.0'], 'repository_name': '12562316452154873274519378534527/aws-sdk-cpp', 'path': 'aws-cpp-sdk-ssm/source/model/GetInventoryRequest.cpp', 'size': 2758, 'lang': 'C++'}