private Amazon.ElasticMapReduce.Model.AddInstanceFleetResponse CallAWSServiceOperation(IAmazonElasticMapReduce client, Amazon.ElasticMapReduce.Model.AddInstanceFleetRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Elastic MapReduce", "AddInstanceFleet");
     try
     {
         #if DESKTOP
         return(client.AddInstanceFleet(request));
         #elif CORECLR
         return(client.AddInstanceFleetAsync(request).GetAwaiter().GetResult());
         #else
                 #error "Unknown build edition"
         #endif
     }
     catch (AmazonServiceException exc)
     {
         var webException = exc.InnerException as System.Net.WebException;
         if (webException != null)
         {
             throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException);
         }
         throw;
     }
 }
        public object Execute(ExecutorContext context)
        {
            var cmdletContext = context as CmdletContext;
            // create request
            var request = new Amazon.ElasticMapReduce.Model.AddInstanceFleetRequest();

            if (cmdletContext.ClusterId != null)
            {
                request.ClusterId = cmdletContext.ClusterId;
            }

            // populate InstanceFleet
            var requestInstanceFleetIsNull = true;

            request.InstanceFleet = new Amazon.ElasticMapReduce.Model.InstanceFleetConfig();
            Amazon.ElasticMapReduce.InstanceFleetType requestInstanceFleet_instanceFleet_InstanceFleetType = null;
            if (cmdletContext.InstanceFleet_InstanceFleetType != null)
            {
                requestInstanceFleet_instanceFleet_InstanceFleetType = cmdletContext.InstanceFleet_InstanceFleetType;
            }
            if (requestInstanceFleet_instanceFleet_InstanceFleetType != null)
            {
                request.InstanceFleet.InstanceFleetType = requestInstanceFleet_instanceFleet_InstanceFleetType;
                requestInstanceFleetIsNull = false;
            }
            List <Amazon.ElasticMapReduce.Model.InstanceTypeConfig> requestInstanceFleet_instanceFleet_InstanceTypeConfig = null;

            if (cmdletContext.InstanceFleet_InstanceTypeConfig != null)
            {
                requestInstanceFleet_instanceFleet_InstanceTypeConfig = cmdletContext.InstanceFleet_InstanceTypeConfig;
            }
            if (requestInstanceFleet_instanceFleet_InstanceTypeConfig != null)
            {
                request.InstanceFleet.InstanceTypeConfigs = requestInstanceFleet_instanceFleet_InstanceTypeConfig;
                requestInstanceFleetIsNull = false;
            }
            System.String requestInstanceFleet_instanceFleet_Name = null;
            if (cmdletContext.InstanceFleet_Name != null)
            {
                requestInstanceFleet_instanceFleet_Name = cmdletContext.InstanceFleet_Name;
            }
            if (requestInstanceFleet_instanceFleet_Name != null)
            {
                request.InstanceFleet.Name = requestInstanceFleet_instanceFleet_Name;
                requestInstanceFleetIsNull = false;
            }
            System.Int32?requestInstanceFleet_instanceFleet_TargetOnDemandCapacity = null;
            if (cmdletContext.InstanceFleet_TargetOnDemandCapacity != null)
            {
                requestInstanceFleet_instanceFleet_TargetOnDemandCapacity = cmdletContext.InstanceFleet_TargetOnDemandCapacity.Value;
            }
            if (requestInstanceFleet_instanceFleet_TargetOnDemandCapacity != null)
            {
                request.InstanceFleet.TargetOnDemandCapacity = requestInstanceFleet_instanceFleet_TargetOnDemandCapacity.Value;
                requestInstanceFleetIsNull = false;
            }
            System.Int32?requestInstanceFleet_instanceFleet_TargetSpotCapacity = null;
            if (cmdletContext.InstanceFleet_TargetSpotCapacity != null)
            {
                requestInstanceFleet_instanceFleet_TargetSpotCapacity = cmdletContext.InstanceFleet_TargetSpotCapacity.Value;
            }
            if (requestInstanceFleet_instanceFleet_TargetSpotCapacity != null)
            {
                request.InstanceFleet.TargetSpotCapacity = requestInstanceFleet_instanceFleet_TargetSpotCapacity.Value;
                requestInstanceFleetIsNull = false;
            }
            Amazon.ElasticMapReduce.Model.InstanceFleetProvisioningSpecifications requestInstanceFleet_instanceFleet_LaunchSpecifications = null;

            // populate LaunchSpecifications
            var requestInstanceFleet_instanceFleet_LaunchSpecificationsIsNull = true;

            requestInstanceFleet_instanceFleet_LaunchSpecifications = new Amazon.ElasticMapReduce.Model.InstanceFleetProvisioningSpecifications();
            Amazon.ElasticMapReduce.Model.OnDemandProvisioningSpecification requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification = null;

            // populate OnDemandSpecification
            var requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecificationIsNull = true;

            requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification = new Amazon.ElasticMapReduce.Model.OnDemandProvisioningSpecification();
            Amazon.ElasticMapReduce.OnDemandProvisioningAllocationStrategy requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_onDemandSpecification_AllocationStrategy = null;
            if (cmdletContext.OnDemandSpecification_AllocationStrategy != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_onDemandSpecification_AllocationStrategy = cmdletContext.OnDemandSpecification_AllocationStrategy;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_onDemandSpecification_AllocationStrategy != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification.AllocationStrategy = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_onDemandSpecification_AllocationStrategy;
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecificationIsNull = false;
            }
            Amazon.ElasticMapReduce.Model.OnDemandCapacityReservationOptions requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions = null;

            // populate CapacityReservationOptions
            var requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptionsIsNull = true;

            requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions = new Amazon.ElasticMapReduce.Model.OnDemandCapacityReservationOptions();
            Amazon.ElasticMapReduce.OnDemandCapacityReservationPreference requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_CapacityReservationPreference = null;
            if (cmdletContext.CapacityReservationOptions_CapacityReservationPreference != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_CapacityReservationPreference = cmdletContext.CapacityReservationOptions_CapacityReservationPreference;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_CapacityReservationPreference != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions.CapacityReservationPreference = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_CapacityReservationPreference;
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptionsIsNull = false;
            }
            System.String requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_CapacityReservationResourceGroupArn = null;
            if (cmdletContext.CapacityReservationOptions_CapacityReservationResourceGroupArn != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_CapacityReservationResourceGroupArn = cmdletContext.CapacityReservationOptions_CapacityReservationResourceGroupArn;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_CapacityReservationResourceGroupArn != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions.CapacityReservationResourceGroupArn = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_CapacityReservationResourceGroupArn;
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptionsIsNull = false;
            }
            Amazon.ElasticMapReduce.OnDemandCapacityReservationUsageStrategy requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_UsageStrategy = null;
            if (cmdletContext.CapacityReservationOptions_UsageStrategy != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_UsageStrategy = cmdletContext.CapacityReservationOptions_UsageStrategy;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_UsageStrategy != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions.UsageStrategy = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions_capacityReservationOptions_UsageStrategy;
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptionsIsNull         = false;
            }
            // determine if requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions should be set to null
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptionsIsNull)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions = null;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification.CapacityReservationOptions = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification_instanceFleet_LaunchSpecifications_OnDemandSpecification_CapacityReservationOptions;
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecificationIsNull = false;
            }
            // determine if requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification should be set to null
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecificationIsNull)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification = null;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications.OnDemandSpecification = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_OnDemandSpecification;
                requestInstanceFleet_instanceFleet_LaunchSpecificationsIsNull = false;
            }
            Amazon.ElasticMapReduce.Model.SpotProvisioningSpecification requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification = null;

            // populate SpotSpecification
            var requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecificationIsNull = true;

            requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification = new Amazon.ElasticMapReduce.Model.SpotProvisioningSpecification();
            Amazon.ElasticMapReduce.SpotProvisioningAllocationStrategy requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_AllocationStrategy = null;
            if (cmdletContext.SpotSpecification_AllocationStrategy != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_AllocationStrategy = cmdletContext.SpotSpecification_AllocationStrategy;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_AllocationStrategy != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification.AllocationStrategy = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_AllocationStrategy;
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecificationIsNull = false;
            }
            System.Int32?requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_BlockDurationMinute = null;
            if (cmdletContext.SpotSpecification_BlockDurationMinute != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_BlockDurationMinute = cmdletContext.SpotSpecification_BlockDurationMinute.Value;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_BlockDurationMinute != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification.BlockDurationMinutes = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_BlockDurationMinute.Value;
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecificationIsNull = false;
            }
            Amazon.ElasticMapReduce.SpotProvisioningTimeoutAction requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_TimeoutAction = null;
            if (cmdletContext.SpotSpecification_TimeoutAction != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_TimeoutAction = cmdletContext.SpotSpecification_TimeoutAction;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_TimeoutAction != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification.TimeoutAction = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_TimeoutAction;
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecificationIsNull         = false;
            }
            System.Int32?requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_TimeoutDurationMinute = null;
            if (cmdletContext.SpotSpecification_TimeoutDurationMinute != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_TimeoutDurationMinute = cmdletContext.SpotSpecification_TimeoutDurationMinute.Value;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_TimeoutDurationMinute != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification.TimeoutDurationMinutes = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification_spotSpecification_TimeoutDurationMinute.Value;
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecificationIsNull = false;
            }
            // determine if requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification should be set to null
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecificationIsNull)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification = null;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification != null)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications.SpotSpecification = requestInstanceFleet_instanceFleet_LaunchSpecifications_instanceFleet_LaunchSpecifications_SpotSpecification;
                requestInstanceFleet_instanceFleet_LaunchSpecificationsIsNull             = false;
            }
            // determine if requestInstanceFleet_instanceFleet_LaunchSpecifications should be set to null
            if (requestInstanceFleet_instanceFleet_LaunchSpecificationsIsNull)
            {
                requestInstanceFleet_instanceFleet_LaunchSpecifications = null;
            }
            if (requestInstanceFleet_instanceFleet_LaunchSpecifications != null)
            {
                request.InstanceFleet.LaunchSpecifications = requestInstanceFleet_instanceFleet_LaunchSpecifications;
                requestInstanceFleetIsNull = false;
            }
            // determine if request.InstanceFleet should be set to null
            if (requestInstanceFleetIsNull)
            {
                request.InstanceFleet = null;
            }

            CmdletOutput output;

            // issue call
            var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);

            try
            {
                var    response       = CallAWSServiceOperation(client, request);
                object pipelineOutput = null;
                pipelineOutput = cmdletContext.Select(response, this);
                output         = new CmdletOutput
                {
                    PipelineOutput  = pipelineOutput,
                    ServiceResponse = response
                };
            }
            catch (Exception e)
            {
                output = new CmdletOutput {
                    ErrorResponse = e
                };
            }

            return(output);
        }