private Amazon.Redshift.Model.ModifyScheduledActionResponse CallAWSServiceOperation(IAmazonRedshift client, Amazon.Redshift.Model.ModifyScheduledActionRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Redshift", "ModifyScheduledAction");
     try
     {
         #if DESKTOP
         return(client.ModifyScheduledAction(request));
         #elif CORECLR
         return(client.ModifyScheduledActionAsync(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.Redshift.Model.ModifyScheduledActionRequest();

            if (cmdletContext.Enable != null)
            {
                request.Enable = cmdletContext.Enable.Value;
            }
            if (cmdletContext.EndTime != null)
            {
                request.EndTime = cmdletContext.EndTime.Value;
            }
            if (cmdletContext.IamRole != null)
            {
                request.IamRole = cmdletContext.IamRole;
            }
            if (cmdletContext.Schedule != null)
            {
                request.Schedule = cmdletContext.Schedule;
            }
            if (cmdletContext.ScheduledActionDescription != null)
            {
                request.ScheduledActionDescription = cmdletContext.ScheduledActionDescription;
            }
            if (cmdletContext.ScheduledActionName != null)
            {
                request.ScheduledActionName = cmdletContext.ScheduledActionName;
            }
            if (cmdletContext.StartTime != null)
            {
                request.StartTime = cmdletContext.StartTime.Value;
            }

            // populate TargetAction
            var requestTargetActionIsNull = true;

            request.TargetAction = new Amazon.Redshift.Model.ScheduledActionType();
            Amazon.Redshift.Model.PauseClusterMessage requestTargetAction_targetAction_PauseCluster = null;

            // populate PauseCluster
            var requestTargetAction_targetAction_PauseClusterIsNull = true;

            requestTargetAction_targetAction_PauseCluster = new Amazon.Redshift.Model.PauseClusterMessage();
            System.String requestTargetAction_targetAction_PauseCluster_pauseCluster_ClusterIdentifier = null;
            if (cmdletContext.PauseCluster_ClusterIdentifier != null)
            {
                requestTargetAction_targetAction_PauseCluster_pauseCluster_ClusterIdentifier = cmdletContext.PauseCluster_ClusterIdentifier;
            }
            if (requestTargetAction_targetAction_PauseCluster_pauseCluster_ClusterIdentifier != null)
            {
                requestTargetAction_targetAction_PauseCluster.ClusterIdentifier = requestTargetAction_targetAction_PauseCluster_pauseCluster_ClusterIdentifier;
                requestTargetAction_targetAction_PauseClusterIsNull             = false;
            }
            // determine if requestTargetAction_targetAction_PauseCluster should be set to null
            if (requestTargetAction_targetAction_PauseClusterIsNull)
            {
                requestTargetAction_targetAction_PauseCluster = null;
            }
            if (requestTargetAction_targetAction_PauseCluster != null)
            {
                request.TargetAction.PauseCluster = requestTargetAction_targetAction_PauseCluster;
                requestTargetActionIsNull         = false;
            }
            Amazon.Redshift.Model.ResumeClusterMessage requestTargetAction_targetAction_ResumeCluster = null;

            // populate ResumeCluster
            var requestTargetAction_targetAction_ResumeClusterIsNull = true;

            requestTargetAction_targetAction_ResumeCluster = new Amazon.Redshift.Model.ResumeClusterMessage();
            System.String requestTargetAction_targetAction_ResumeCluster_resumeCluster_ClusterIdentifier = null;
            if (cmdletContext.ResumeCluster_ClusterIdentifier != null)
            {
                requestTargetAction_targetAction_ResumeCluster_resumeCluster_ClusterIdentifier = cmdletContext.ResumeCluster_ClusterIdentifier;
            }
            if (requestTargetAction_targetAction_ResumeCluster_resumeCluster_ClusterIdentifier != null)
            {
                requestTargetAction_targetAction_ResumeCluster.ClusterIdentifier = requestTargetAction_targetAction_ResumeCluster_resumeCluster_ClusterIdentifier;
                requestTargetAction_targetAction_ResumeClusterIsNull             = false;
            }
            // determine if requestTargetAction_targetAction_ResumeCluster should be set to null
            if (requestTargetAction_targetAction_ResumeClusterIsNull)
            {
                requestTargetAction_targetAction_ResumeCluster = null;
            }
            if (requestTargetAction_targetAction_ResumeCluster != null)
            {
                request.TargetAction.ResumeCluster = requestTargetAction_targetAction_ResumeCluster;
                requestTargetActionIsNull          = false;
            }
            Amazon.Redshift.Model.ResizeClusterMessage requestTargetAction_targetAction_ResizeCluster = null;

            // populate ResizeCluster
            var requestTargetAction_targetAction_ResizeClusterIsNull = true;

            requestTargetAction_targetAction_ResizeCluster = new Amazon.Redshift.Model.ResizeClusterMessage();
            System.Boolean?requestTargetAction_targetAction_ResizeCluster_resizeCluster_Classic = null;
            if (cmdletContext.ResizeCluster_Classic != null)
            {
                requestTargetAction_targetAction_ResizeCluster_resizeCluster_Classic = cmdletContext.ResizeCluster_Classic.Value;
            }
            if (requestTargetAction_targetAction_ResizeCluster_resizeCluster_Classic != null)
            {
                requestTargetAction_targetAction_ResizeCluster.Classic = requestTargetAction_targetAction_ResizeCluster_resizeCluster_Classic.Value;
                requestTargetAction_targetAction_ResizeClusterIsNull   = false;
            }
            System.String requestTargetAction_targetAction_ResizeCluster_resizeCluster_ClusterIdentifier = null;
            if (cmdletContext.ResizeCluster_ClusterIdentifier != null)
            {
                requestTargetAction_targetAction_ResizeCluster_resizeCluster_ClusterIdentifier = cmdletContext.ResizeCluster_ClusterIdentifier;
            }
            if (requestTargetAction_targetAction_ResizeCluster_resizeCluster_ClusterIdentifier != null)
            {
                requestTargetAction_targetAction_ResizeCluster.ClusterIdentifier = requestTargetAction_targetAction_ResizeCluster_resizeCluster_ClusterIdentifier;
                requestTargetAction_targetAction_ResizeClusterIsNull             = false;
            }
            System.String requestTargetAction_targetAction_ResizeCluster_resizeCluster_ClusterType = null;
            if (cmdletContext.ResizeCluster_ClusterType != null)
            {
                requestTargetAction_targetAction_ResizeCluster_resizeCluster_ClusterType = cmdletContext.ResizeCluster_ClusterType;
            }
            if (requestTargetAction_targetAction_ResizeCluster_resizeCluster_ClusterType != null)
            {
                requestTargetAction_targetAction_ResizeCluster.ClusterType = requestTargetAction_targetAction_ResizeCluster_resizeCluster_ClusterType;
                requestTargetAction_targetAction_ResizeClusterIsNull       = false;
            }
            System.String requestTargetAction_targetAction_ResizeCluster_resizeCluster_NodeType = null;
            if (cmdletContext.ResizeCluster_NodeType != null)
            {
                requestTargetAction_targetAction_ResizeCluster_resizeCluster_NodeType = cmdletContext.ResizeCluster_NodeType;
            }
            if (requestTargetAction_targetAction_ResizeCluster_resizeCluster_NodeType != null)
            {
                requestTargetAction_targetAction_ResizeCluster.NodeType = requestTargetAction_targetAction_ResizeCluster_resizeCluster_NodeType;
                requestTargetAction_targetAction_ResizeClusterIsNull    = false;
            }
            System.Int32?requestTargetAction_targetAction_ResizeCluster_resizeCluster_NumberOfNode = null;
            if (cmdletContext.ResizeCluster_NumberOfNode != null)
            {
                requestTargetAction_targetAction_ResizeCluster_resizeCluster_NumberOfNode = cmdletContext.ResizeCluster_NumberOfNode.Value;
            }
            if (requestTargetAction_targetAction_ResizeCluster_resizeCluster_NumberOfNode != null)
            {
                requestTargetAction_targetAction_ResizeCluster.NumberOfNodes = requestTargetAction_targetAction_ResizeCluster_resizeCluster_NumberOfNode.Value;
                requestTargetAction_targetAction_ResizeClusterIsNull         = false;
            }
            // determine if requestTargetAction_targetAction_ResizeCluster should be set to null
            if (requestTargetAction_targetAction_ResizeClusterIsNull)
            {
                requestTargetAction_targetAction_ResizeCluster = null;
            }
            if (requestTargetAction_targetAction_ResizeCluster != null)
            {
                request.TargetAction.ResizeCluster = requestTargetAction_targetAction_ResizeCluster;
                requestTargetActionIsNull          = false;
            }
            // determine if request.TargetAction should be set to null
            if (requestTargetActionIsNull)
            {
                request.TargetAction = 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);
        }