public Request<ConfigureHealthCheckRequest> marshall(
      ConfigureHealthCheckRequest configureHealthCheckRequest) {
    Request<ConfigureHealthCheckRequest> request =
        new DefaultRequest<ConfigureHealthCheckRequest>(
            configureHealthCheckRequest, "AmazonElasticLoadBalancing");
    request.addParameter("Action", "ConfigureHealthCheck");
    request.addParameter("Version", "2010-07-01");
    if (configureHealthCheckRequest != null) {
      if (configureHealthCheckRequest.getLoadBalancerName() != null) {
        request.addParameter(
            "LoadBalancerName",
            StringUtils.fromString(configureHealthCheckRequest.getLoadBalancerName()));
      }
    }
    if (configureHealthCheckRequest != null) {
      HealthCheck healthCheck = configureHealthCheckRequest.getHealthCheck();
      if (healthCheck != null) {
        if (healthCheck.getTarget() != null) {
          request.addParameter(
              "HealthCheck.Target", StringUtils.fromString(healthCheck.getTarget()));
        }
      }
      if (healthCheck != null) {
        if (healthCheck.getInterval() != null) {
          request.addParameter(
              "HealthCheck.Interval", StringUtils.fromInteger(healthCheck.getInterval()));
        }
      }
      if (healthCheck != null) {
        if (healthCheck.getTimeout() != null) {
          request.addParameter(
              "HealthCheck.Timeout", StringUtils.fromInteger(healthCheck.getTimeout()));
        }
      }
      if (healthCheck != null) {
        if (healthCheck.getUnhealthyThreshold() != null) {
          request.addParameter(
              "HealthCheck.UnhealthyThreshold",
              StringUtils.fromInteger(healthCheck.getUnhealthyThreshold()));
        }
      }
      if (healthCheck != null) {
        if (healthCheck.getHealthyThreshold() != null) {
          request.addParameter(
              "HealthCheck.HealthyThreshold",
              StringUtils.fromInteger(healthCheck.getHealthyThreshold()));
        }
      }
    }

    return request;
  }
  public Request<SendMessageRequest> marshall(SendMessageRequest sendMessageRequest) {

    if (sendMessageRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<SendMessageRequest> request =
        new DefaultRequest<SendMessageRequest>(sendMessageRequest, "AmazonSQS");
    request.addParameter("Action", "SendMessage");
    request.addParameter("Version", "2012-11-05");

    if (sendMessageRequest.getQueueUrl() != null) {
      request.addParameter("QueueUrl", StringUtils.fromString(sendMessageRequest.getQueueUrl()));
    }
    if (sendMessageRequest.getMessageBody() != null) {
      request.addParameter(
          "MessageBody", StringUtils.fromString(sendMessageRequest.getMessageBody()));
    }
    if (sendMessageRequest.getDelaySeconds() != null) {
      request.addParameter(
          "DelaySeconds", StringUtils.fromInteger(sendMessageRequest.getDelaySeconds()));
    }

    return request;
  }
  public Request<DescribeCacheParametersRequest> marshall(
      DescribeCacheParametersRequest describeCacheParametersRequest) {

    if (describeCacheParametersRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeCacheParametersRequest> request =
        new DefaultRequest<DescribeCacheParametersRequest>(
            describeCacheParametersRequest, "AmazonElastiCache");
    request.addParameter("Action", "DescribeCacheParameters");
    request.addParameter("Version", "2014-07-15");

    if (describeCacheParametersRequest.getCacheParameterGroupName() != null) {
      request.addParameter(
          "CacheParameterGroupName",
          StringUtils.fromString(describeCacheParametersRequest.getCacheParameterGroupName()));
    }
    if (describeCacheParametersRequest.getSource() != null) {
      request.addParameter(
          "Source", StringUtils.fromString(describeCacheParametersRequest.getSource()));
    }
    if (describeCacheParametersRequest.getMaxRecords() != null) {
      request.addParameter(
          "MaxRecords", StringUtils.fromInteger(describeCacheParametersRequest.getMaxRecords()));
    }
    if (describeCacheParametersRequest.getMarker() != null) {
      request.addParameter(
          "Marker", StringUtils.fromString(describeCacheParametersRequest.getMarker()));
    }

    return request;
  }
  public Request<DescribeLoadBalancersRequest> marshall(
      DescribeLoadBalancersRequest describeLoadBalancersRequest) {

    if (describeLoadBalancersRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeLoadBalancersRequest> request =
        new DefaultRequest<DescribeLoadBalancersRequest>(
            describeLoadBalancersRequest, "AmazonAutoScaling");
    request.addParameter("Action", "DescribeLoadBalancers");
    request.addParameter("Version", "2011-01-01");
    request.setHttpMethod(HttpMethodName.POST);

    if (describeLoadBalancersRequest.getAutoScalingGroupName() != null) {
      request.addParameter(
          "AutoScalingGroupName",
          StringUtils.fromString(describeLoadBalancersRequest.getAutoScalingGroupName()));
    }

    if (describeLoadBalancersRequest.getNextToken() != null) {
      request.addParameter(
          "NextToken", StringUtils.fromString(describeLoadBalancersRequest.getNextToken()));
    }

    if (describeLoadBalancersRequest.getMaxRecords() != null) {
      request.addParameter(
          "MaxRecords", StringUtils.fromInteger(describeLoadBalancersRequest.getMaxRecords()));
    }

    return request;
  }
  public Request<ListInstanceProfilesRequest> marshall(
      ListInstanceProfilesRequest listInstanceProfilesRequest) {

    if (listInstanceProfilesRequest == null) {
      throw new SdkClientException("Invalid argument passed to marshall(...)");
    }

    Request<ListInstanceProfilesRequest> request =
        new DefaultRequest<ListInstanceProfilesRequest>(
            listInstanceProfilesRequest, "AmazonIdentityManagement");
    request.addParameter("Action", "ListInstanceProfiles");
    request.addParameter("Version", "2010-05-08");
    request.setHttpMethod(HttpMethodName.POST);

    if (listInstanceProfilesRequest.getPathPrefix() != null) {
      request.addParameter(
          "PathPrefix", StringUtils.fromString(listInstanceProfilesRequest.getPathPrefix()));
    }

    if (listInstanceProfilesRequest.getMarker() != null) {
      request.addParameter(
          "Marker", StringUtils.fromString(listInstanceProfilesRequest.getMarker()));
    }

    if (listInstanceProfilesRequest.getMaxItems() != null) {
      request.addParameter(
          "MaxItems", StringUtils.fromInteger(listInstanceProfilesRequest.getMaxItems()));
    }

    return request;
  }
  public Request<PublishRequest> marshall(PublishRequest publishRequest) {

    if (publishRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<PublishRequest> request =
        new DefaultRequest<PublishRequest>(publishRequest, "AWSIotData");

    request.setHttpMethod(HttpMethodName.POST);

    String uriResourcePath = "/topics/{topic}";

    uriResourcePath =
        uriResourcePath.replace(
            "{topic}",
            (publishRequest.getTopic() == null)
                ? ""
                : StringUtils.fromString(publishRequest.getTopic()));
    request.setResourcePath(uriResourcePath);

    String qos =
        (publishRequest.getQos() == null) ? null : StringUtils.fromInteger(publishRequest.getQos());
    if (qos != null) {
      request.addParameter("qos", qos);
    }

    request.setContent(BinaryUtils.toStream(publishRequest.getPayload()));
    if (!request.getHeaders().containsKey("Content-Type")) {
      request.addHeader("Content-Type", DEFAULT_CONTENT_TYPE);
    }

    return request;
  }
  public Request<DescribeEngineDefaultParametersRequest> marshall(
      DescribeEngineDefaultParametersRequest describeEngineDefaultParametersRequest) {

    if (describeEngineDefaultParametersRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeEngineDefaultParametersRequest> request =
        new DefaultRequest<DescribeEngineDefaultParametersRequest>(
            describeEngineDefaultParametersRequest, "AmazonRDS");
    request.addParameter("Action", "DescribeEngineDefaultParameters");
    request.addParameter("Version", "2013-09-09");

    if (describeEngineDefaultParametersRequest.getDBParameterGroupFamily() != null) {
      request.addParameter(
          "DBParameterGroupFamily",
          StringUtils.fromString(
              describeEngineDefaultParametersRequest.getDBParameterGroupFamily()));
    }
    if (describeEngineDefaultParametersRequest.getMaxRecords() != null) {
      request.addParameter(
          "MaxRecords",
          StringUtils.fromInteger(describeEngineDefaultParametersRequest.getMaxRecords()));
    }
    if (describeEngineDefaultParametersRequest.getMarker() != null) {
      request.addParameter(
          "Marker", StringUtils.fromString(describeEngineDefaultParametersRequest.getMarker()));
    }

    return request;
  }
  public Request<ChangeMessageVisibilityRequest> marshall(
      ChangeMessageVisibilityRequest changeMessageVisibilityRequest) {

    if (changeMessageVisibilityRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<ChangeMessageVisibilityRequest> request =
        new DefaultRequest<ChangeMessageVisibilityRequest>(
            changeMessageVisibilityRequest, "AmazonSQS");
    request.addParameter("Action", "ChangeMessageVisibility");
    request.addParameter("Version", "2012-11-05");
    request.setHttpMethod(HttpMethodName.POST);

    if (changeMessageVisibilityRequest.getQueueUrl() != null) {
      request.addParameter(
          "QueueUrl", StringUtils.fromString(changeMessageVisibilityRequest.getQueueUrl()));
    }

    if (changeMessageVisibilityRequest.getReceiptHandle() != null) {
      request.addParameter(
          "ReceiptHandle",
          StringUtils.fromString(changeMessageVisibilityRequest.getReceiptHandle()));
    }

    if (changeMessageVisibilityRequest.getVisibilityTimeout() != null) {
      request.addParameter(
          "VisibilityTimeout",
          StringUtils.fromInteger(changeMessageVisibilityRequest.getVisibilityTimeout()));
    }

    return request;
  }
  public Request<PromoteReadReplicaRequest> marshall(
      PromoteReadReplicaRequest promoteReadReplicaRequest) {

    if (promoteReadReplicaRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<PromoteReadReplicaRequest> request =
        new DefaultRequest<PromoteReadReplicaRequest>(promoteReadReplicaRequest, "AmazonRDS");
    request.addParameter("Action", "PromoteReadReplica");
    request.addParameter("Version", "2013-09-09");

    if (promoteReadReplicaRequest.getDBInstanceIdentifier() != null) {
      request.addParameter(
          "DBInstanceIdentifier",
          StringUtils.fromString(promoteReadReplicaRequest.getDBInstanceIdentifier()));
    }
    if (promoteReadReplicaRequest.getBackupRetentionPeriod() != null) {
      request.addParameter(
          "BackupRetentionPeriod",
          StringUtils.fromInteger(promoteReadReplicaRequest.getBackupRetentionPeriod()));
    }
    if (promoteReadReplicaRequest.getPreferredBackupWindow() != null) {
      request.addParameter(
          "PreferredBackupWindow",
          StringUtils.fromString(promoteReadReplicaRequest.getPreferredBackupWindow()));
    }

    return request;
  }
  public Request<DescribeClusterSubnetGroupsRequest> marshall(
      DescribeClusterSubnetGroupsRequest describeClusterSubnetGroupsRequest) {

    if (describeClusterSubnetGroupsRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeClusterSubnetGroupsRequest> request =
        new DefaultRequest<DescribeClusterSubnetGroupsRequest>(
            describeClusterSubnetGroupsRequest, "AmazonRedshift");
    request.addParameter("Action", "DescribeClusterSubnetGroups");
    request.addParameter("Version", "2012-12-01");

    if (describeClusterSubnetGroupsRequest.getClusterSubnetGroupName() != null) {
      request.addParameter(
          "ClusterSubnetGroupName",
          StringUtils.fromString(describeClusterSubnetGroupsRequest.getClusterSubnetGroupName()));
    }
    if (describeClusterSubnetGroupsRequest.getMaxRecords() != null) {
      request.addParameter(
          "MaxRecords",
          StringUtils.fromInteger(describeClusterSubnetGroupsRequest.getMaxRecords()));
    }
    if (describeClusterSubnetGroupsRequest.getMarker() != null) {
      request.addParameter(
          "Marker", StringUtils.fromString(describeClusterSubnetGroupsRequest.getMarker()));
    }

    return request;
  }
  public Request<DescribeEventsRequest> marshall(DescribeEventsRequest describeEventsRequest) {

    if (describeEventsRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeEventsRequest> request =
        new DefaultRequest<DescribeEventsRequest>(describeEventsRequest, "AWSElasticBeanstalk");
    request.addParameter("Action", "DescribeEvents");
    request.addParameter("Version", "2010-12-01");

    if (describeEventsRequest.getApplicationName() != null) {
      request.addParameter(
          "ApplicationName", StringUtils.fromString(describeEventsRequest.getApplicationName()));
    }
    if (describeEventsRequest.getVersionLabel() != null) {
      request.addParameter(
          "VersionLabel", StringUtils.fromString(describeEventsRequest.getVersionLabel()));
    }
    if (describeEventsRequest.getTemplateName() != null) {
      request.addParameter(
          "TemplateName", StringUtils.fromString(describeEventsRequest.getTemplateName()));
    }
    if (describeEventsRequest.getEnvironmentId() != null) {
      request.addParameter(
          "EnvironmentId", StringUtils.fromString(describeEventsRequest.getEnvironmentId()));
    }
    if (describeEventsRequest.getEnvironmentName() != null) {
      request.addParameter(
          "EnvironmentName", StringUtils.fromString(describeEventsRequest.getEnvironmentName()));
    }
    if (describeEventsRequest.getRequestId() != null) {
      request.addParameter(
          "RequestId", StringUtils.fromString(describeEventsRequest.getRequestId()));
    }
    if (describeEventsRequest.getSeverity() != null) {
      request.addParameter("Severity", StringUtils.fromString(describeEventsRequest.getSeverity()));
    }
    if (describeEventsRequest.getStartTime() != null) {
      request.addParameter("StartTime", StringUtils.fromDate(describeEventsRequest.getStartTime()));
    }
    if (describeEventsRequest.getEndTime() != null) {
      request.addParameter("EndTime", StringUtils.fromDate(describeEventsRequest.getEndTime()));
    }
    if (describeEventsRequest.getMaxRecords() != null) {
      request.addParameter(
          "MaxRecords", StringUtils.fromInteger(describeEventsRequest.getMaxRecords()));
    }
    if (describeEventsRequest.getNextToken() != null) {
      request.addParameter(
          "NextToken", StringUtils.fromString(describeEventsRequest.getNextToken()));
    }

    return request;
  }
  public Request<DescribeReservedCacheNodesOfferingsRequest> marshall(
      DescribeReservedCacheNodesOfferingsRequest describeReservedCacheNodesOfferingsRequest) {

    if (describeReservedCacheNodesOfferingsRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeReservedCacheNodesOfferingsRequest> request =
        new DefaultRequest<DescribeReservedCacheNodesOfferingsRequest>(
            describeReservedCacheNodesOfferingsRequest, "AmazonElastiCache");
    request.addParameter("Action", "DescribeReservedCacheNodesOfferings");
    request.addParameter("Version", "2015-02-02");

    if (describeReservedCacheNodesOfferingsRequest.getReservedCacheNodesOfferingId() != null) {
      request.addParameter(
          "ReservedCacheNodesOfferingId",
          StringUtils.fromString(
              describeReservedCacheNodesOfferingsRequest.getReservedCacheNodesOfferingId()));
    }
    if (describeReservedCacheNodesOfferingsRequest.getCacheNodeType() != null) {
      request.addParameter(
          "CacheNodeType",
          StringUtils.fromString(describeReservedCacheNodesOfferingsRequest.getCacheNodeType()));
    }
    if (describeReservedCacheNodesOfferingsRequest.getDuration() != null) {
      request.addParameter(
          "Duration",
          StringUtils.fromString(describeReservedCacheNodesOfferingsRequest.getDuration()));
    }
    if (describeReservedCacheNodesOfferingsRequest.getProductDescription() != null) {
      request.addParameter(
          "ProductDescription",
          StringUtils.fromString(
              describeReservedCacheNodesOfferingsRequest.getProductDescription()));
    }
    if (describeReservedCacheNodesOfferingsRequest.getOfferingType() != null) {
      request.addParameter(
          "OfferingType",
          StringUtils.fromString(describeReservedCacheNodesOfferingsRequest.getOfferingType()));
    }
    if (describeReservedCacheNodesOfferingsRequest.getMaxRecords() != null) {
      request.addParameter(
          "MaxRecords",
          StringUtils.fromInteger(describeReservedCacheNodesOfferingsRequest.getMaxRecords()));
    }
    if (describeReservedCacheNodesOfferingsRequest.getMarker() != null) {
      request.addParameter(
          "Marker", StringUtils.fromString(describeReservedCacheNodesOfferingsRequest.getMarker()));
    }

    return request;
  }
  public Request<PurchaseScheduledInstancesRequest> marshall(
      PurchaseScheduledInstancesRequest purchaseScheduledInstancesRequest) {

    if (purchaseScheduledInstancesRequest == null) {
      throw new SdkClientException("Invalid argument passed to marshall(...)");
    }

    Request<PurchaseScheduledInstancesRequest> request =
        new DefaultRequest<PurchaseScheduledInstancesRequest>(
            purchaseScheduledInstancesRequest, "AmazonEC2");
    request.addParameter("Action", "PurchaseScheduledInstances");
    request.addParameter("Version", "2016-11-15");
    request.setHttpMethod(HttpMethodName.POST);

    request.addParameter(
        "ClientToken",
        IdempotentUtils.resolveString(purchaseScheduledInstancesRequest.getClientToken()));

    com.amazonaws.internal.SdkInternalList<PurchaseRequest>
        purchaseScheduledInstancesRequestPurchaseRequestsList =
            (com.amazonaws.internal.SdkInternalList<PurchaseRequest>)
                purchaseScheduledInstancesRequest.getPurchaseRequests();
    if (!purchaseScheduledInstancesRequestPurchaseRequestsList.isEmpty()
        || !purchaseScheduledInstancesRequestPurchaseRequestsList.isAutoConstruct()) {
      int purchaseRequestsListIndex = 1;

      for (PurchaseRequest purchaseScheduledInstancesRequestPurchaseRequestsListValue :
          purchaseScheduledInstancesRequestPurchaseRequestsList) {

        if (purchaseScheduledInstancesRequestPurchaseRequestsListValue.getPurchaseToken() != null) {
          request.addParameter(
              "PurchaseRequest." + purchaseRequestsListIndex + ".PurchaseToken",
              StringUtils.fromString(
                  purchaseScheduledInstancesRequestPurchaseRequestsListValue.getPurchaseToken()));
        }

        if (purchaseScheduledInstancesRequestPurchaseRequestsListValue.getInstanceCount() != null) {
          request.addParameter(
              "PurchaseRequest." + purchaseRequestsListIndex + ".InstanceCount",
              StringUtils.fromInteger(
                  purchaseScheduledInstancesRequestPurchaseRequestsListValue.getInstanceCount()));
        }
        purchaseRequestsListIndex++;
      }
    }

    return request;
  }
  public Request<RegisterTargetsRequest> marshall(RegisterTargetsRequest registerTargetsRequest) {

    if (registerTargetsRequest == null) {
      throw new SdkClientException("Invalid argument passed to marshall(...)");
    }

    Request<RegisterTargetsRequest> request =
        new DefaultRequest<RegisterTargetsRequest>(
            registerTargetsRequest, "AmazonElasticLoadBalancing");
    request.addParameter("Action", "RegisterTargets");
    request.addParameter("Version", "2015-12-01");
    request.setHttpMethod(HttpMethodName.POST);

    if (registerTargetsRequest.getTargetGroupArn() != null) {
      request.addParameter(
          "TargetGroupArn", StringUtils.fromString(registerTargetsRequest.getTargetGroupArn()));
    }

    java.util.List<TargetDescription> targetsList = registerTargetsRequest.getTargets();

    if (targetsList != null) {
      if (targetsList.isEmpty()) {
        request.addParameter("Targets", "");
      } else {
        int targetsListIndex = 1;

        for (TargetDescription targetsListValue : targetsList) {

          if (targetsListValue.getId() != null) {
            request.addParameter(
                "Targets.member." + targetsListIndex + ".Id",
                StringUtils.fromString(targetsListValue.getId()));
          }

          if (targetsListValue.getPort() != null) {
            request.addParameter(
                "Targets.member." + targetsListIndex + ".Port",
                StringUtils.fromInteger(targetsListValue.getPort()));
          }
          targetsListIndex++;
        }
      }
    }

    return request;
  }
  public Request<AssignPrivateIpAddressesRequest> marshall(
      AssignPrivateIpAddressesRequest assignPrivateIpAddressesRequest) {

    if (assignPrivateIpAddressesRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<AssignPrivateIpAddressesRequest> request =
        new DefaultRequest<AssignPrivateIpAddressesRequest>(
            assignPrivateIpAddressesRequest, "AmazonEC2");
    request.addParameter("Action", "AssignPrivateIpAddresses");
    request.addParameter("Version", "2013-07-15");

    if (assignPrivateIpAddressesRequest.getNetworkInterfaceId() != null) {
      request.addParameter(
          "NetworkInterfaceId",
          StringUtils.fromString(assignPrivateIpAddressesRequest.getNetworkInterfaceId()));
    }

    java.util.List<String> privateIpAddressesList =
        assignPrivateIpAddressesRequest.getPrivateIpAddresses();
    int privateIpAddressesListIndex = 1;

    for (String privateIpAddressesListValue : privateIpAddressesList) {
      if (privateIpAddressesListValue != null) {
        request.addParameter(
            "PrivateIpAddress." + privateIpAddressesListIndex,
            StringUtils.fromString(privateIpAddressesListValue));
      }

      privateIpAddressesListIndex++;
    }
    if (assignPrivateIpAddressesRequest.getSecondaryPrivateIpAddressCount() != null) {
      request.addParameter(
          "SecondaryPrivateIpAddressCount",
          StringUtils.fromInteger(
              assignPrivateIpAddressesRequest.getSecondaryPrivateIpAddressCount()));
    }
    if (assignPrivateIpAddressesRequest.isAllowReassignment() != null) {
      request.addParameter(
          "AllowReassignment",
          StringUtils.fromBoolean(assignPrivateIpAddressesRequest.isAllowReassignment()));
    }

    return request;
  }
  public Request<GetBasePathMappingsRequest> marshall(
      GetBasePathMappingsRequest getBasePathMappingsRequest) {

    if (getBasePathMappingsRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<GetBasePathMappingsRequest> request =
        new DefaultRequest<GetBasePathMappingsRequest>(
            getBasePathMappingsRequest, "AmazonApiGateway");

    request.setHttpMethod(HttpMethodName.GET);

    String uriResourcePath = "/domainnames/{domain_name}/basepathmappings";
    uriResourcePath =
        uriResourcePath.replace(
            "{domain_name}",
            (getBasePathMappingsRequest.getDomainName() == null)
                ? ""
                : StringUtils.fromString(getBasePathMappingsRequest.getDomainName()));
    request.setResourcePath(uriResourcePath);

    String position =
        (getBasePathMappingsRequest.getPosition() == null)
            ? null
            : StringUtils.fromString(getBasePathMappingsRequest.getPosition());
    if (position != null) {
      request.addParameter("position", position);
    }

    String limit =
        (getBasePathMappingsRequest.getLimit() == null)
            ? null
            : StringUtils.fromInteger(getBasePathMappingsRequest.getLimit());
    if (limit != null) {
      request.addParameter("limit", limit);
    }

    request.setContent(new ByteArrayInputStream(new byte[0]));
    if (!request.getHeaders().containsKey("Content-Type")) {
      request.addHeader("Content-Type", "binary/octet-stream");
    }

    return request;
  }
  public Request<SendMessageBatchRequest> marshall(
      SendMessageBatchRequest sendMessageBatchRequest) {

    if (sendMessageBatchRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<SendMessageBatchRequest> request =
        new DefaultRequest<SendMessageBatchRequest>(sendMessageBatchRequest, "AmazonSQS");
    request.addParameter("Action", "SendMessageBatch");
    request.addParameter("Version", "2011-10-01");

    if (sendMessageBatchRequest.getQueueUrl() != null) {
      request.addParameter(
          "QueueUrl", StringUtils.fromString(sendMessageBatchRequest.getQueueUrl()));
    }

    java.util.List<SendMessageBatchRequestEntry> entriesList = sendMessageBatchRequest.getEntries();
    int entriesListIndex = 1;

    for (SendMessageBatchRequestEntry entriesListValue : entriesList) {
      SendMessageBatchRequestEntry sendMessageBatchRequestEntryMember = entriesListValue;
      if (sendMessageBatchRequestEntryMember != null) {
        if (sendMessageBatchRequestEntryMember.getId() != null) {
          request.addParameter(
              "SendMessageBatchRequestEntry." + entriesListIndex + ".Id",
              StringUtils.fromString(sendMessageBatchRequestEntryMember.getId()));
        }
        if (sendMessageBatchRequestEntryMember.getMessageBody() != null) {
          request.addParameter(
              "SendMessageBatchRequestEntry." + entriesListIndex + ".MessageBody",
              StringUtils.fromString(sendMessageBatchRequestEntryMember.getMessageBody()));
        }
        if (sendMessageBatchRequestEntryMember.getDelaySeconds() != null) {
          request.addParameter(
              "SendMessageBatchRequestEntry." + entriesListIndex + ".DelaySeconds",
              StringUtils.fromInteger(sendMessageBatchRequestEntryMember.getDelaySeconds()));
        }
      }

      entriesListIndex++;
    }

    return request;
  }
  public Request<ListPrincipalThingsRequest> marshall(
      ListPrincipalThingsRequest listPrincipalThingsRequest) {

    if (listPrincipalThingsRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<ListPrincipalThingsRequest> request =
        new DefaultRequest<ListPrincipalThingsRequest>(listPrincipalThingsRequest, "AWSIot");

    request.setHttpMethod(HttpMethodName.GET);

    if (listPrincipalThingsRequest.getPrincipal() != null) {
      request.addHeader(
          "x-amzn-principal", StringUtils.fromString(listPrincipalThingsRequest.getPrincipal()));
    }

    String uriResourcePath = "/principals/things";

    request.setResourcePath(uriResourcePath);

    String nextToken =
        (listPrincipalThingsRequest.getNextToken() == null)
            ? null
            : StringUtils.fromString(listPrincipalThingsRequest.getNextToken());
    if (nextToken != null) {
      request.addParameter("nextToken", nextToken);
    }

    String maxResults =
        (listPrincipalThingsRequest.getMaxResults() == null)
            ? null
            : StringUtils.fromInteger(listPrincipalThingsRequest.getMaxResults());
    if (maxResults != null) {
      request.addParameter("maxResults", maxResults);
    }

    request.setContent(new ByteArrayInputStream(new byte[0]));
    if (!request.getHeaders().containsKey("Content-Type")) {
      request.addHeader("Content-Type", DEFAULT_CONTENT_TYPE);
    }

    return request;
  }
  public Request<DescribePoliciesRequest> marshall(
      DescribePoliciesRequest describePoliciesRequest) {
    Request<DescribePoliciesRequest> request =
        new DefaultRequest<DescribePoliciesRequest>(describePoliciesRequest, "AmazonAutoScaling");
    request.addParameter("Action", "DescribePolicies");
    request.addParameter("Version", "2011-01-01");
    if (describePoliciesRequest != null) {
      if (describePoliciesRequest.getAutoScalingGroupName() != null) {
        request.addParameter(
            "AutoScalingGroupName",
            StringUtils.fromString(describePoliciesRequest.getAutoScalingGroupName()));
      }
    }
    if (describePoliciesRequest != null) {
      java.util.List<String> policyNamesList = describePoliciesRequest.getPolicyNames();
      int policyNamesListIndex = 1;

      for (String policyNamesListValue : policyNamesList) {
        if (policyNamesListValue != null) {
          request.addParameter(
              "PolicyNames.member." + policyNamesListIndex,
              StringUtils.fromString(policyNamesListValue));
        }
        policyNamesListIndex++;
      }
    }
    if (describePoliciesRequest != null) {
      if (describePoliciesRequest.getNextToken() != null) {
        request.addParameter(
            "NextToken", StringUtils.fromString(describePoliciesRequest.getNextToken()));
      }
    }
    if (describePoliciesRequest != null) {
      if (describePoliciesRequest.getMaxRecords() != null) {
        request.addParameter(
            "MaxRecords", StringUtils.fromInteger(describePoliciesRequest.getMaxRecords()));
      }
    }

    return request;
  }
  public Request<DeleteLoadBalancerListenersRequest> marshall(
      DeleteLoadBalancerListenersRequest deleteLoadBalancerListenersRequest) {

    if (deleteLoadBalancerListenersRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DeleteLoadBalancerListenersRequest> request =
        new DefaultRequest<DeleteLoadBalancerListenersRequest>(
            deleteLoadBalancerListenersRequest, "AmazonElasticLoadBalancing");
    request.addParameter("Action", "DeleteLoadBalancerListeners");
    request.addParameter("Version", "2012-06-01");
    request.setHttpMethod(HttpMethodName.POST);

    if (deleteLoadBalancerListenersRequest.getLoadBalancerName() != null) {
      request.addParameter(
          "LoadBalancerName",
          StringUtils.fromString(deleteLoadBalancerListenersRequest.getLoadBalancerName()));
    }

    com.amazonaws.internal.SdkInternalList<Integer> loadBalancerPortsList =
        (com.amazonaws.internal.SdkInternalList<Integer>)
            deleteLoadBalancerListenersRequest.getLoadBalancerPorts();
    if (!loadBalancerPortsList.isEmpty() || !loadBalancerPortsList.isAutoConstruct()) {
      int loadBalancerPortsListIndex = 1;

      for (Integer loadBalancerPortsListValue : loadBalancerPortsList) {
        if (loadBalancerPortsListValue != null) {
          request.addParameter(
              "LoadBalancerPorts.member." + loadBalancerPortsListIndex,
              StringUtils.fromInteger(loadBalancerPortsListValue));
        }
        loadBalancerPortsListIndex++;
      }
    }

    return request;
  }
  public Request<DescribeOrderableClusterOptionsRequest> marshall(
      DescribeOrderableClusterOptionsRequest describeOrderableClusterOptionsRequest) {

    if (describeOrderableClusterOptionsRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeOrderableClusterOptionsRequest> request =
        new DefaultRequest<DescribeOrderableClusterOptionsRequest>(
            describeOrderableClusterOptionsRequest, "AmazonRedshift");
    request.addParameter("Action", "DescribeOrderableClusterOptions");
    request.addParameter("Version", "2012-12-01");
    request.setHttpMethod(HttpMethodName.POST);

    if (describeOrderableClusterOptionsRequest.getClusterVersion() != null) {
      request.addParameter(
          "ClusterVersion",
          StringUtils.fromString(describeOrderableClusterOptionsRequest.getClusterVersion()));
    }

    if (describeOrderableClusterOptionsRequest.getNodeType() != null) {
      request.addParameter(
          "NodeType", StringUtils.fromString(describeOrderableClusterOptionsRequest.getNodeType()));
    }

    if (describeOrderableClusterOptionsRequest.getMaxRecords() != null) {
      request.addParameter(
          "MaxRecords",
          StringUtils.fromInteger(describeOrderableClusterOptionsRequest.getMaxRecords()));
    }

    if (describeOrderableClusterOptionsRequest.getMarker() != null) {
      request.addParameter(
          "Marker", StringUtils.fromString(describeOrderableClusterOptionsRequest.getMarker()));
    }

    return request;
  }
  public Request<ListCertificatesRequest> marshall(
      ListCertificatesRequest listCertificatesRequest) {

    if (listCertificatesRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<ListCertificatesRequest> request =
        new DefaultRequest<ListCertificatesRequest>(listCertificatesRequest, "AWSIot");

    request.setHttpMethod(HttpMethodName.GET);

    String uriResourcePath = "/certificates";

    request.setResourcePath(uriResourcePath);

    if (listCertificatesRequest.getPageSize() != null) {
      request.addParameter(
          "pageSize", StringUtils.fromInteger(listCertificatesRequest.getPageSize()));
    }

    if (listCertificatesRequest.getMarker() != null) {
      request.addParameter("marker", StringUtils.fromString(listCertificatesRequest.getMarker()));
    }

    if (listCertificatesRequest.getAscendingOrder() != null) {
      request.addParameter(
          "isAscendingOrder", StringUtils.fromBoolean(listCertificatesRequest.getAscendingOrder()));
    }

    request.setContent(new ByteArrayInputStream(new byte[0]));
    if (!request.getHeaders().containsKey("Content-Type")) {
      request.addHeader("Content-Type", DEFAULT_CONTENT_TYPE);
    }

    return request;
  }
  public Request<DescribeAutoScalingGroupsRequest> marshall(
      DescribeAutoScalingGroupsRequest describeAutoScalingGroupsRequest) {

    if (describeAutoScalingGroupsRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeAutoScalingGroupsRequest> request =
        new DefaultRequest<DescribeAutoScalingGroupsRequest>(
            describeAutoScalingGroupsRequest, "AmazonAutoScaling");
    request.addParameter("Action", "DescribeAutoScalingGroups");
    request.addParameter("Version", "2011-01-01");

    java.util.List<String> autoScalingGroupNamesList =
        describeAutoScalingGroupsRequest.getAutoScalingGroupNames();
    int autoScalingGroupNamesListIndex = 1;

    for (String autoScalingGroupNamesListValue : autoScalingGroupNamesList) {
      if (autoScalingGroupNamesListValue != null) {
        request.addParameter(
            "AutoScalingGroupNames.member." + autoScalingGroupNamesListIndex,
            StringUtils.fromString(autoScalingGroupNamesListValue));
      }

      autoScalingGroupNamesListIndex++;
    }
    if (describeAutoScalingGroupsRequest.getNextToken() != null) {
      request.addParameter(
          "NextToken", StringUtils.fromString(describeAutoScalingGroupsRequest.getNextToken()));
    }
    if (describeAutoScalingGroupsRequest.getMaxRecords() != null) {
      request.addParameter(
          "MaxRecords", StringUtils.fromInteger(describeAutoScalingGroupsRequest.getMaxRecords()));
    }

    return request;
  }
Exemplo n.º 24
0
  public Request<GetDeploymentsRequest> marshall(GetDeploymentsRequest getDeploymentsRequest) {

    if (getDeploymentsRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<GetDeploymentsRequest> request =
        new DefaultRequest<GetDeploymentsRequest>(getDeploymentsRequest, "AmazonApiGateway");

    request.setHttpMethod(HttpMethodName.GET);

    String uriResourcePath = "/restapis/{restapi_id}/deployments";

    uriResourcePath =
        uriResourcePath.replace(
            "{restapi_id}",
            (getDeploymentsRequest.getRestApiId() != null)
                ? SdkHttpUtils.urlEncode(
                    StringUtils.fromString(getDeploymentsRequest.getRestApiId()), false)
                : "");
    request.setResourcePath(uriResourcePath);

    if (getDeploymentsRequest.getPosition() != null) {
      request.addParameter("position", StringUtils.fromString(getDeploymentsRequest.getPosition()));
    }

    if (getDeploymentsRequest.getLimit() != null) {
      request.addParameter("limit", StringUtils.fromInteger(getDeploymentsRequest.getLimit()));
    }

    request.setContent(new ByteArrayInputStream(new byte[0]));
    if (!request.getHeaders().containsKey("Content-Type")) {
      request.addHeader("Content-Type", protocolFactory.getContentType());
    }

    return request;
  }
  public Request<PurchaseReservedCacheNodesOfferingRequest> marshall(
      PurchaseReservedCacheNodesOfferingRequest purchaseReservedCacheNodesOfferingRequest) {

    if (purchaseReservedCacheNodesOfferingRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<PurchaseReservedCacheNodesOfferingRequest> request =
        new DefaultRequest<PurchaseReservedCacheNodesOfferingRequest>(
            purchaseReservedCacheNodesOfferingRequest, "AmazonElastiCache");
    request.addParameter("Action", "PurchaseReservedCacheNodesOffering");
    request.addParameter("Version", "2015-02-02");
    request.setHttpMethod(HttpMethodName.POST);

    if (purchaseReservedCacheNodesOfferingRequest.getReservedCacheNodesOfferingId() != null) {
      request.addParameter(
          "ReservedCacheNodesOfferingId",
          StringUtils.fromString(
              purchaseReservedCacheNodesOfferingRequest.getReservedCacheNodesOfferingId()));
    }

    if (purchaseReservedCacheNodesOfferingRequest.getReservedCacheNodeId() != null) {
      request.addParameter(
          "ReservedCacheNodeId",
          StringUtils.fromString(
              purchaseReservedCacheNodesOfferingRequest.getReservedCacheNodeId()));
    }

    if (purchaseReservedCacheNodesOfferingRequest.getCacheNodeCount() != null) {
      request.addParameter(
          "CacheNodeCount",
          StringUtils.fromInteger(purchaseReservedCacheNodesOfferingRequest.getCacheNodeCount()));
    }

    return request;
  }
  public Request<PutScalingPolicyRequest> marshall(
      PutScalingPolicyRequest putScalingPolicyRequest) {

    if (putScalingPolicyRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<PutScalingPolicyRequest> request =
        new DefaultRequest<PutScalingPolicyRequest>(putScalingPolicyRequest, "AmazonAutoScaling");
    request.addParameter("Action", "PutScalingPolicy");
    request.addParameter("Version", "2011-01-01");
    request.setHttpMethod(HttpMethodName.POST);

    if (putScalingPolicyRequest.getAutoScalingGroupName() != null) {
      request.addParameter(
          "AutoScalingGroupName",
          StringUtils.fromString(putScalingPolicyRequest.getAutoScalingGroupName()));
    }

    if (putScalingPolicyRequest.getPolicyName() != null) {
      request.addParameter(
          "PolicyName", StringUtils.fromString(putScalingPolicyRequest.getPolicyName()));
    }

    if (putScalingPolicyRequest.getPolicyType() != null) {
      request.addParameter(
          "PolicyType", StringUtils.fromString(putScalingPolicyRequest.getPolicyType()));
    }

    if (putScalingPolicyRequest.getAdjustmentType() != null) {
      request.addParameter(
          "AdjustmentType", StringUtils.fromString(putScalingPolicyRequest.getAdjustmentType()));
    }

    if (putScalingPolicyRequest.getMinAdjustmentStep() != null) {
      request.addParameter(
          "MinAdjustmentStep",
          StringUtils.fromInteger(putScalingPolicyRequest.getMinAdjustmentStep()));
    }

    if (putScalingPolicyRequest.getMinAdjustmentMagnitude() != null) {
      request.addParameter(
          "MinAdjustmentMagnitude",
          StringUtils.fromInteger(putScalingPolicyRequest.getMinAdjustmentMagnitude()));
    }

    if (putScalingPolicyRequest.getScalingAdjustment() != null) {
      request.addParameter(
          "ScalingAdjustment",
          StringUtils.fromInteger(putScalingPolicyRequest.getScalingAdjustment()));
    }

    if (putScalingPolicyRequest.getCooldown() != null) {
      request.addParameter(
          "Cooldown", StringUtils.fromInteger(putScalingPolicyRequest.getCooldown()));
    }

    if (putScalingPolicyRequest.getMetricAggregationType() != null) {
      request.addParameter(
          "MetricAggregationType",
          StringUtils.fromString(putScalingPolicyRequest.getMetricAggregationType()));
    }

    com.amazonaws.internal.SdkInternalList<StepAdjustment> stepAdjustmentsList =
        (com.amazonaws.internal.SdkInternalList<StepAdjustment>)
            putScalingPolicyRequest.getStepAdjustments();
    if (!stepAdjustmentsList.isEmpty() || !stepAdjustmentsList.isAutoConstruct()) {
      int stepAdjustmentsListIndex = 1;

      for (StepAdjustment stepAdjustmentsListValue : stepAdjustmentsList) {

        if (stepAdjustmentsListValue.getMetricIntervalLowerBound() != null) {
          request.addParameter(
              "StepAdjustments.member." + stepAdjustmentsListIndex + ".MetricIntervalLowerBound",
              StringUtils.fromDouble(stepAdjustmentsListValue.getMetricIntervalLowerBound()));
        }

        if (stepAdjustmentsListValue.getMetricIntervalUpperBound() != null) {
          request.addParameter(
              "StepAdjustments.member." + stepAdjustmentsListIndex + ".MetricIntervalUpperBound",
              StringUtils.fromDouble(stepAdjustmentsListValue.getMetricIntervalUpperBound()));
        }

        if (stepAdjustmentsListValue.getScalingAdjustment() != null) {
          request.addParameter(
              "StepAdjustments.member." + stepAdjustmentsListIndex + ".ScalingAdjustment",
              StringUtils.fromInteger(stepAdjustmentsListValue.getScalingAdjustment()));
        }
        stepAdjustmentsListIndex++;
      }
    }

    if (putScalingPolicyRequest.getEstimatedInstanceWarmup() != null) {
      request.addParameter(
          "EstimatedInstanceWarmup",
          StringUtils.fromInteger(putScalingPolicyRequest.getEstimatedInstanceWarmup()));
    }

    return request;
  }
  public Request<CreateLoadBalancerRequest> marshall(
      CreateLoadBalancerRequest createLoadBalancerRequest) {

    if (createLoadBalancerRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<CreateLoadBalancerRequest> request =
        new DefaultRequest<CreateLoadBalancerRequest>(
            createLoadBalancerRequest, "AmazonElasticLoadBalancing");
    request.addParameter("Action", "CreateLoadBalancer");
    request.addParameter("Version", "2012-06-01");
    request.setHttpMethod(HttpMethodName.POST);

    if (createLoadBalancerRequest.getLoadBalancerName() != null) {
      request.addParameter(
          "LoadBalancerName",
          StringUtils.fromString(createLoadBalancerRequest.getLoadBalancerName()));
    }

    com.amazonaws.internal.SdkInternalList<Listener> listenersList =
        (com.amazonaws.internal.SdkInternalList<Listener>) createLoadBalancerRequest.getListeners();
    if (!listenersList.isEmpty() || !listenersList.isAutoConstruct()) {
      int listenersListIndex = 1;

      for (Listener listenersListValue : listenersList) {

        if (listenersListValue.getProtocol() != null) {
          request.addParameter(
              "Listeners.member." + listenersListIndex + ".Protocol",
              StringUtils.fromString(listenersListValue.getProtocol()));
        }

        if (listenersListValue.getLoadBalancerPort() != null) {
          request.addParameter(
              "Listeners.member." + listenersListIndex + ".LoadBalancerPort",
              StringUtils.fromInteger(listenersListValue.getLoadBalancerPort()));
        }

        if (listenersListValue.getInstanceProtocol() != null) {
          request.addParameter(
              "Listeners.member." + listenersListIndex + ".InstanceProtocol",
              StringUtils.fromString(listenersListValue.getInstanceProtocol()));
        }

        if (listenersListValue.getInstancePort() != null) {
          request.addParameter(
              "Listeners.member." + listenersListIndex + ".InstancePort",
              StringUtils.fromInteger(listenersListValue.getInstancePort()));
        }

        if (listenersListValue.getSSLCertificateId() != null) {
          request.addParameter(
              "Listeners.member." + listenersListIndex + ".SSLCertificateId",
              StringUtils.fromString(listenersListValue.getSSLCertificateId()));
        }
        listenersListIndex++;
      }
    }

    com.amazonaws.internal.SdkInternalList<String> availabilityZonesList =
        (com.amazonaws.internal.SdkInternalList<String>)
            createLoadBalancerRequest.getAvailabilityZones();
    if (!availabilityZonesList.isEmpty() || !availabilityZonesList.isAutoConstruct()) {
      int availabilityZonesListIndex = 1;

      for (String availabilityZonesListValue : availabilityZonesList) {
        if (availabilityZonesListValue != null) {
          request.addParameter(
              "AvailabilityZones.member." + availabilityZonesListIndex,
              StringUtils.fromString(availabilityZonesListValue));
        }
        availabilityZonesListIndex++;
      }
    }

    com.amazonaws.internal.SdkInternalList<String> subnetsList =
        (com.amazonaws.internal.SdkInternalList<String>) createLoadBalancerRequest.getSubnets();
    if (!subnetsList.isEmpty() || !subnetsList.isAutoConstruct()) {
      int subnetsListIndex = 1;

      for (String subnetsListValue : subnetsList) {
        if (subnetsListValue != null) {
          request.addParameter(
              "Subnets.member." + subnetsListIndex, StringUtils.fromString(subnetsListValue));
        }
        subnetsListIndex++;
      }
    }

    com.amazonaws.internal.SdkInternalList<String> securityGroupsList =
        (com.amazonaws.internal.SdkInternalList<String>)
            createLoadBalancerRequest.getSecurityGroups();
    if (!securityGroupsList.isEmpty() || !securityGroupsList.isAutoConstruct()) {
      int securityGroupsListIndex = 1;

      for (String securityGroupsListValue : securityGroupsList) {
        if (securityGroupsListValue != null) {
          request.addParameter(
              "SecurityGroups.member." + securityGroupsListIndex,
              StringUtils.fromString(securityGroupsListValue));
        }
        securityGroupsListIndex++;
      }
    }

    if (createLoadBalancerRequest.getScheme() != null) {
      request.addParameter("Scheme", StringUtils.fromString(createLoadBalancerRequest.getScheme()));
    }

    com.amazonaws.internal.SdkInternalList<Tag> tagsList =
        (com.amazonaws.internal.SdkInternalList<Tag>) createLoadBalancerRequest.getTags();
    if (!tagsList.isEmpty() || !tagsList.isAutoConstruct()) {
      int tagsListIndex = 1;

      for (Tag tagsListValue : tagsList) {

        if (tagsListValue.getKey() != null) {
          request.addParameter(
              "Tags.member." + tagsListIndex + ".Key",
              StringUtils.fromString(tagsListValue.getKey()));
        }

        if (tagsListValue.getValue() != null) {
          request.addParameter(
              "Tags.member." + tagsListIndex + ".Value",
              StringUtils.fromString(tagsListValue.getValue()));
        }
        tagsListIndex++;
      }
    }

    return request;
  }
  public Request<DescribeOptionGroupOptionsRequest> marshall(
      DescribeOptionGroupOptionsRequest describeOptionGroupOptionsRequest) {

    if (describeOptionGroupOptionsRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeOptionGroupOptionsRequest> request =
        new DefaultRequest<DescribeOptionGroupOptionsRequest>(
            describeOptionGroupOptionsRequest, "AmazonRDS");
    request.addParameter("Action", "DescribeOptionGroupOptions");
    request.addParameter("Version", "2014-10-31");
    request.setHttpMethod(HttpMethodName.POST);

    if (describeOptionGroupOptionsRequest.getEngineName() != null) {
      request.addParameter(
          "EngineName", StringUtils.fromString(describeOptionGroupOptionsRequest.getEngineName()));
    }

    if (describeOptionGroupOptionsRequest.getMajorEngineVersion() != null) {
      request.addParameter(
          "MajorEngineVersion",
          StringUtils.fromString(describeOptionGroupOptionsRequest.getMajorEngineVersion()));
    }

    com.amazonaws.internal.SdkInternalList<Filter> filtersList =
        (com.amazonaws.internal.SdkInternalList<Filter>)
            describeOptionGroupOptionsRequest.getFilters();
    if (!filtersList.isEmpty() || !filtersList.isAutoConstruct()) {
      int filtersListIndex = 1;

      for (Filter filtersListValue : filtersList) {

        if (filtersListValue.getName() != null) {
          request.addParameter(
              "Filters.Filter." + filtersListIndex + ".Name",
              StringUtils.fromString(filtersListValue.getName()));
        }

        com.amazonaws.internal.SdkInternalList<String> valuesList =
            (com.amazonaws.internal.SdkInternalList<String>) filtersListValue.getValues();
        if (!valuesList.isEmpty() || !valuesList.isAutoConstruct()) {
          int valuesListIndex = 1;

          for (String valuesListValue : valuesList) {
            if (valuesListValue != null) {
              request.addParameter(
                  "Filters.Filter." + filtersListIndex + ".Values.Value." + valuesListIndex,
                  StringUtils.fromString(valuesListValue));
            }
            valuesListIndex++;
          }
        }
        filtersListIndex++;
      }
    }

    if (describeOptionGroupOptionsRequest.getMaxRecords() != null) {
      request.addParameter(
          "MaxRecords", StringUtils.fromInteger(describeOptionGroupOptionsRequest.getMaxRecords()));
    }

    if (describeOptionGroupOptionsRequest.getMarker() != null) {
      request.addParameter(
          "Marker", StringUtils.fromString(describeOptionGroupOptionsRequest.getMarker()));
    }

    return request;
  }
  public Request<DescribeReservedDBInstancesRequest> marshall(
      DescribeReservedDBInstancesRequest describeReservedDBInstancesRequest) {

    if (describeReservedDBInstancesRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeReservedDBInstancesRequest> request =
        new DefaultRequest<DescribeReservedDBInstancesRequest>(
            describeReservedDBInstancesRequest, "AmazonRDS");
    request.addParameter("Action", "DescribeReservedDBInstances");
    request.addParameter("Version", "2013-09-09");

    if (describeReservedDBInstancesRequest.getReservedDBInstanceId() != null) {
      request.addParameter(
          "ReservedDBInstanceId",
          StringUtils.fromString(describeReservedDBInstancesRequest.getReservedDBInstanceId()));
    }
    if (describeReservedDBInstancesRequest.getReservedDBInstancesOfferingId() != null) {
      request.addParameter(
          "ReservedDBInstancesOfferingId",
          StringUtils.fromString(
              describeReservedDBInstancesRequest.getReservedDBInstancesOfferingId()));
    }
    if (describeReservedDBInstancesRequest.getDBInstanceClass() != null) {
      request.addParameter(
          "DBInstanceClass",
          StringUtils.fromString(describeReservedDBInstancesRequest.getDBInstanceClass()));
    }
    if (describeReservedDBInstancesRequest.getDuration() != null) {
      request.addParameter(
          "Duration", StringUtils.fromString(describeReservedDBInstancesRequest.getDuration()));
    }
    if (describeReservedDBInstancesRequest.getProductDescription() != null) {
      request.addParameter(
          "ProductDescription",
          StringUtils.fromString(describeReservedDBInstancesRequest.getProductDescription()));
    }
    if (describeReservedDBInstancesRequest.getOfferingType() != null) {
      request.addParameter(
          "OfferingType",
          StringUtils.fromString(describeReservedDBInstancesRequest.getOfferingType()));
    }
    if (describeReservedDBInstancesRequest.isMultiAZ() != null) {
      request.addParameter(
          "MultiAZ", StringUtils.fromBoolean(describeReservedDBInstancesRequest.isMultiAZ()));
    }

    java.util.List<Filter> filtersList = describeReservedDBInstancesRequest.getFilters();
    int filtersListIndex = 1;

    for (Filter filtersListValue : filtersList) {
      Filter filterMember = filtersListValue;
      if (filterMember != null) {
        if (filterMember.getFilterName() != null) {
          request.addParameter(
              "Filters.Filter." + filtersListIndex + ".FilterName",
              StringUtils.fromString(filterMember.getFilterName()));
        }

        java.util.List<String> filterValueList = filterMember.getFilterValue();
        int filterValueListIndex = 1;

        for (String filterValueListValue : filterValueList) {
          if (filterValueListValue != null) {
            request.addParameter(
                "Filters.Filter." + filtersListIndex + ".FilterValue.Value." + filterValueListIndex,
                StringUtils.fromString(filterValueListValue));
          }

          filterValueListIndex++;
        }
      }

      filtersListIndex++;
    }
    if (describeReservedDBInstancesRequest.getMaxRecords() != null) {
      request.addParameter(
          "MaxRecords",
          StringUtils.fromInteger(describeReservedDBInstancesRequest.getMaxRecords()));
    }
    if (describeReservedDBInstancesRequest.getMarker() != null) {
      request.addParameter(
          "Marker", StringUtils.fromString(describeReservedDBInstancesRequest.getMarker()));
    }

    return request;
  }
  public Request<CreateDBInstanceRequest> marshall(
      CreateDBInstanceRequest createDBInstanceRequest) {

    if (createDBInstanceRequest == null) {
      throw new SdkClientException("Invalid argument passed to marshall(...)");
    }

    Request<CreateDBInstanceRequest> request =
        new DefaultRequest<CreateDBInstanceRequest>(createDBInstanceRequest, "AmazonRDS");
    request.addParameter("Action", "CreateDBInstance");
    request.addParameter("Version", "2014-10-31");
    request.setHttpMethod(HttpMethodName.POST);

    if (createDBInstanceRequest.getDBName() != null) {
      request.addParameter("DBName", StringUtils.fromString(createDBInstanceRequest.getDBName()));
    }

    if (createDBInstanceRequest.getDBInstanceIdentifier() != null) {
      request.addParameter(
          "DBInstanceIdentifier",
          StringUtils.fromString(createDBInstanceRequest.getDBInstanceIdentifier()));
    }

    if (createDBInstanceRequest.getAllocatedStorage() != null) {
      request.addParameter(
          "AllocatedStorage",
          StringUtils.fromInteger(createDBInstanceRequest.getAllocatedStorage()));
    }

    if (createDBInstanceRequest.getDBInstanceClass() != null) {
      request.addParameter(
          "DBInstanceClass", StringUtils.fromString(createDBInstanceRequest.getDBInstanceClass()));
    }

    if (createDBInstanceRequest.getEngine() != null) {
      request.addParameter("Engine", StringUtils.fromString(createDBInstanceRequest.getEngine()));
    }

    if (createDBInstanceRequest.getMasterUsername() != null) {
      request.addParameter(
          "MasterUsername", StringUtils.fromString(createDBInstanceRequest.getMasterUsername()));
    }

    if (createDBInstanceRequest.getMasterUserPassword() != null) {
      request.addParameter(
          "MasterUserPassword",
          StringUtils.fromString(createDBInstanceRequest.getMasterUserPassword()));
    }

    com.amazonaws.internal.SdkInternalList<String> dBSecurityGroupsList =
        (com.amazonaws.internal.SdkInternalList<String>)
            createDBInstanceRequest.getDBSecurityGroups();
    if (!dBSecurityGroupsList.isEmpty() || !dBSecurityGroupsList.isAutoConstruct()) {
      int dBSecurityGroupsListIndex = 1;

      for (String dBSecurityGroupsListValue : dBSecurityGroupsList) {
        if (dBSecurityGroupsListValue != null) {
          request.addParameter(
              "DBSecurityGroups.DBSecurityGroupName." + dBSecurityGroupsListIndex,
              StringUtils.fromString(dBSecurityGroupsListValue));
        }
        dBSecurityGroupsListIndex++;
      }
    }

    com.amazonaws.internal.SdkInternalList<String> vpcSecurityGroupIdsList =
        (com.amazonaws.internal.SdkInternalList<String>)
            createDBInstanceRequest.getVpcSecurityGroupIds();
    if (!vpcSecurityGroupIdsList.isEmpty() || !vpcSecurityGroupIdsList.isAutoConstruct()) {
      int vpcSecurityGroupIdsListIndex = 1;

      for (String vpcSecurityGroupIdsListValue : vpcSecurityGroupIdsList) {
        if (vpcSecurityGroupIdsListValue != null) {
          request.addParameter(
              "VpcSecurityGroupIds.VpcSecurityGroupId." + vpcSecurityGroupIdsListIndex,
              StringUtils.fromString(vpcSecurityGroupIdsListValue));
        }
        vpcSecurityGroupIdsListIndex++;
      }
    }

    if (createDBInstanceRequest.getAvailabilityZone() != null) {
      request.addParameter(
          "AvailabilityZone",
          StringUtils.fromString(createDBInstanceRequest.getAvailabilityZone()));
    }

    if (createDBInstanceRequest.getDBSubnetGroupName() != null) {
      request.addParameter(
          "DBSubnetGroupName",
          StringUtils.fromString(createDBInstanceRequest.getDBSubnetGroupName()));
    }

    if (createDBInstanceRequest.getPreferredMaintenanceWindow() != null) {
      request.addParameter(
          "PreferredMaintenanceWindow",
          StringUtils.fromString(createDBInstanceRequest.getPreferredMaintenanceWindow()));
    }

    if (createDBInstanceRequest.getDBParameterGroupName() != null) {
      request.addParameter(
          "DBParameterGroupName",
          StringUtils.fromString(createDBInstanceRequest.getDBParameterGroupName()));
    }

    if (createDBInstanceRequest.getBackupRetentionPeriod() != null) {
      request.addParameter(
          "BackupRetentionPeriod",
          StringUtils.fromInteger(createDBInstanceRequest.getBackupRetentionPeriod()));
    }

    if (createDBInstanceRequest.getPreferredBackupWindow() != null) {
      request.addParameter(
          "PreferredBackupWindow",
          StringUtils.fromString(createDBInstanceRequest.getPreferredBackupWindow()));
    }

    if (createDBInstanceRequest.getPort() != null) {
      request.addParameter("Port", StringUtils.fromInteger(createDBInstanceRequest.getPort()));
    }

    if (createDBInstanceRequest.getMultiAZ() != null) {
      request.addParameter(
          "MultiAZ", StringUtils.fromBoolean(createDBInstanceRequest.getMultiAZ()));
    }

    if (createDBInstanceRequest.getEngineVersion() != null) {
      request.addParameter(
          "EngineVersion", StringUtils.fromString(createDBInstanceRequest.getEngineVersion()));
    }

    if (createDBInstanceRequest.getAutoMinorVersionUpgrade() != null) {
      request.addParameter(
          "AutoMinorVersionUpgrade",
          StringUtils.fromBoolean(createDBInstanceRequest.getAutoMinorVersionUpgrade()));
    }

    if (createDBInstanceRequest.getLicenseModel() != null) {
      request.addParameter(
          "LicenseModel", StringUtils.fromString(createDBInstanceRequest.getLicenseModel()));
    }

    if (createDBInstanceRequest.getIops() != null) {
      request.addParameter("Iops", StringUtils.fromInteger(createDBInstanceRequest.getIops()));
    }

    if (createDBInstanceRequest.getOptionGroupName() != null) {
      request.addParameter(
          "OptionGroupName", StringUtils.fromString(createDBInstanceRequest.getOptionGroupName()));
    }

    if (createDBInstanceRequest.getCharacterSetName() != null) {
      request.addParameter(
          "CharacterSetName",
          StringUtils.fromString(createDBInstanceRequest.getCharacterSetName()));
    }

    if (createDBInstanceRequest.getPubliclyAccessible() != null) {
      request.addParameter(
          "PubliclyAccessible",
          StringUtils.fromBoolean(createDBInstanceRequest.getPubliclyAccessible()));
    }

    com.amazonaws.internal.SdkInternalList<Tag> tagsList =
        (com.amazonaws.internal.SdkInternalList<Tag>) createDBInstanceRequest.getTags();
    if (!tagsList.isEmpty() || !tagsList.isAutoConstruct()) {
      int tagsListIndex = 1;

      for (Tag tagsListValue : tagsList) {

        if (tagsListValue.getKey() != null) {
          request.addParameter(
              "Tags.Tag." + tagsListIndex + ".Key", StringUtils.fromString(tagsListValue.getKey()));
        }

        if (tagsListValue.getValue() != null) {
          request.addParameter(
              "Tags.Tag." + tagsListIndex + ".Value",
              StringUtils.fromString(tagsListValue.getValue()));
        }
        tagsListIndex++;
      }
    }

    if (createDBInstanceRequest.getDBClusterIdentifier() != null) {
      request.addParameter(
          "DBClusterIdentifier",
          StringUtils.fromString(createDBInstanceRequest.getDBClusterIdentifier()));
    }

    if (createDBInstanceRequest.getStorageType() != null) {
      request.addParameter(
          "StorageType", StringUtils.fromString(createDBInstanceRequest.getStorageType()));
    }

    if (createDBInstanceRequest.getTdeCredentialArn() != null) {
      request.addParameter(
          "TdeCredentialArn",
          StringUtils.fromString(createDBInstanceRequest.getTdeCredentialArn()));
    }

    if (createDBInstanceRequest.getTdeCredentialPassword() != null) {
      request.addParameter(
          "TdeCredentialPassword",
          StringUtils.fromString(createDBInstanceRequest.getTdeCredentialPassword()));
    }

    if (createDBInstanceRequest.getStorageEncrypted() != null) {
      request.addParameter(
          "StorageEncrypted",
          StringUtils.fromBoolean(createDBInstanceRequest.getStorageEncrypted()));
    }

    if (createDBInstanceRequest.getKmsKeyId() != null) {
      request.addParameter(
          "KmsKeyId", StringUtils.fromString(createDBInstanceRequest.getKmsKeyId()));
    }

    if (createDBInstanceRequest.getDomain() != null) {
      request.addParameter("Domain", StringUtils.fromString(createDBInstanceRequest.getDomain()));
    }

    if (createDBInstanceRequest.getCopyTagsToSnapshot() != null) {
      request.addParameter(
          "CopyTagsToSnapshot",
          StringUtils.fromBoolean(createDBInstanceRequest.getCopyTagsToSnapshot()));
    }

    if (createDBInstanceRequest.getMonitoringInterval() != null) {
      request.addParameter(
          "MonitoringInterval",
          StringUtils.fromInteger(createDBInstanceRequest.getMonitoringInterval()));
    }

    if (createDBInstanceRequest.getMonitoringRoleArn() != null) {
      request.addParameter(
          "MonitoringRoleArn",
          StringUtils.fromString(createDBInstanceRequest.getMonitoringRoleArn()));
    }

    if (createDBInstanceRequest.getDomainIAMRoleName() != null) {
      request.addParameter(
          "DomainIAMRoleName",
          StringUtils.fromString(createDBInstanceRequest.getDomainIAMRoleName()));
    }

    if (createDBInstanceRequest.getPromotionTier() != null) {
      request.addParameter(
          "PromotionTier", StringUtils.fromInteger(createDBInstanceRequest.getPromotionTier()));
    }

    if (createDBInstanceRequest.getTimezone() != null) {
      request.addParameter(
          "Timezone", StringUtils.fromString(createDBInstanceRequest.getTimezone()));
    }

    return request;
  }