public object Execute(ExecutorContext context)
        {
            var cmdletContext = context as CmdletContext;
            // create request
            var request = new Amazon.FraudDetector.Model.CreateModelVersionRequest();


            // populate ExternalEventsDetail
            var requestExternalEventsDetailIsNull = true;

            request.ExternalEventsDetail = new Amazon.FraudDetector.Model.ExternalEventsDetail();
            System.String requestExternalEventsDetail_externalEventsDetail_DataAccessRoleArn = null;
            if (cmdletContext.ExternalEventsDetail_DataAccessRoleArn != null)
            {
                requestExternalEventsDetail_externalEventsDetail_DataAccessRoleArn = cmdletContext.ExternalEventsDetail_DataAccessRoleArn;
            }
            if (requestExternalEventsDetail_externalEventsDetail_DataAccessRoleArn != null)
            {
                request.ExternalEventsDetail.DataAccessRoleArn = requestExternalEventsDetail_externalEventsDetail_DataAccessRoleArn;
                requestExternalEventsDetailIsNull = false;
            }
            System.String requestExternalEventsDetail_externalEventsDetail_DataLocation = null;
            if (cmdletContext.ExternalEventsDetail_DataLocation != null)
            {
                requestExternalEventsDetail_externalEventsDetail_DataLocation = cmdletContext.ExternalEventsDetail_DataLocation;
            }
            if (requestExternalEventsDetail_externalEventsDetail_DataLocation != null)
            {
                request.ExternalEventsDetail.DataLocation = requestExternalEventsDetail_externalEventsDetail_DataLocation;
                requestExternalEventsDetailIsNull         = false;
            }
            // determine if request.ExternalEventsDetail should be set to null
            if (requestExternalEventsDetailIsNull)
            {
                request.ExternalEventsDetail = null;
            }

            // populate IngestedEventsDetail
            var requestIngestedEventsDetailIsNull = true;

            request.IngestedEventsDetail = new Amazon.FraudDetector.Model.IngestedEventsDetail();
            Amazon.FraudDetector.Model.IngestedEventsTimeWindow requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow = null;

            // populate IngestedEventsTimeWindow
            var requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindowIsNull = true;

            requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow = new Amazon.FraudDetector.Model.IngestedEventsTimeWindow();
            System.String requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_EndTime = null;
            if (cmdletContext.IngestedEventsTimeWindow_EndTime != null)
            {
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_EndTime = cmdletContext.IngestedEventsTimeWindow_EndTime;
            }
            if (requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_EndTime != null)
            {
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow.EndTime = requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_EndTime;
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindowIsNull   = false;
            }
            System.String requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_StartTime = null;
            if (cmdletContext.IngestedEventsTimeWindow_StartTime != null)
            {
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_StartTime = cmdletContext.IngestedEventsTimeWindow_StartTime;
            }
            if (requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_StartTime != null)
            {
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow.StartTime = requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_StartTime;
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindowIsNull     = false;
            }
            // determine if requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow should be set to null
            if (requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindowIsNull)
            {
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow = null;
            }
            if (requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow != null)
            {
                request.IngestedEventsDetail.IngestedEventsTimeWindow = requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow;
                requestIngestedEventsDetailIsNull = false;
            }
            // determine if request.IngestedEventsDetail should be set to null
            if (requestIngestedEventsDetailIsNull)
            {
                request.IngestedEventsDetail = null;
            }
            if (cmdletContext.ModelId != null)
            {
                request.ModelId = cmdletContext.ModelId;
            }
            if (cmdletContext.ModelType != null)
            {
                request.ModelType = cmdletContext.ModelType;
            }
            if (cmdletContext.Tag != null)
            {
                request.Tags = cmdletContext.Tag;
            }

            // populate TrainingDataSchema
            var requestTrainingDataSchemaIsNull = true;

            request.TrainingDataSchema = new Amazon.FraudDetector.Model.TrainingDataSchema();
            List <System.String> requestTrainingDataSchema_trainingDataSchema_ModelVariable = null;

            if (cmdletContext.TrainingDataSchema_ModelVariable != null)
            {
                requestTrainingDataSchema_trainingDataSchema_ModelVariable = cmdletContext.TrainingDataSchema_ModelVariable;
            }
            if (requestTrainingDataSchema_trainingDataSchema_ModelVariable != null)
            {
                request.TrainingDataSchema.ModelVariables = requestTrainingDataSchema_trainingDataSchema_ModelVariable;
                requestTrainingDataSchemaIsNull           = false;
            }
            Amazon.FraudDetector.Model.LabelSchema requestTrainingDataSchema_trainingDataSchema_LabelSchema = null;

            // populate LabelSchema
            var requestTrainingDataSchema_trainingDataSchema_LabelSchemaIsNull = true;

            requestTrainingDataSchema_trainingDataSchema_LabelSchema = new Amazon.FraudDetector.Model.LabelSchema();
            Dictionary <System.String, List <System.String> > requestTrainingDataSchema_trainingDataSchema_LabelSchema_labelSchema_LabelMapper = null;

            if (cmdletContext.LabelSchema_LabelMapper != null)
            {
                requestTrainingDataSchema_trainingDataSchema_LabelSchema_labelSchema_LabelMapper = cmdletContext.LabelSchema_LabelMapper;
            }
            if (requestTrainingDataSchema_trainingDataSchema_LabelSchema_labelSchema_LabelMapper != null)
            {
                requestTrainingDataSchema_trainingDataSchema_LabelSchema.LabelMapper = requestTrainingDataSchema_trainingDataSchema_LabelSchema_labelSchema_LabelMapper;
                requestTrainingDataSchema_trainingDataSchema_LabelSchemaIsNull       = false;
            }
            Amazon.FraudDetector.UnlabeledEventsTreatment requestTrainingDataSchema_trainingDataSchema_LabelSchema_labelSchema_UnlabeledEventsTreatment = null;
            if (cmdletContext.LabelSchema_UnlabeledEventsTreatment != null)
            {
                requestTrainingDataSchema_trainingDataSchema_LabelSchema_labelSchema_UnlabeledEventsTreatment = cmdletContext.LabelSchema_UnlabeledEventsTreatment;
            }
            if (requestTrainingDataSchema_trainingDataSchema_LabelSchema_labelSchema_UnlabeledEventsTreatment != null)
            {
                requestTrainingDataSchema_trainingDataSchema_LabelSchema.UnlabeledEventsTreatment = requestTrainingDataSchema_trainingDataSchema_LabelSchema_labelSchema_UnlabeledEventsTreatment;
                requestTrainingDataSchema_trainingDataSchema_LabelSchemaIsNull = false;
            }
            // determine if requestTrainingDataSchema_trainingDataSchema_LabelSchema should be set to null
            if (requestTrainingDataSchema_trainingDataSchema_LabelSchemaIsNull)
            {
                requestTrainingDataSchema_trainingDataSchema_LabelSchema = null;
            }
            if (requestTrainingDataSchema_trainingDataSchema_LabelSchema != null)
            {
                request.TrainingDataSchema.LabelSchema = requestTrainingDataSchema_trainingDataSchema_LabelSchema;
                requestTrainingDataSchemaIsNull        = false;
            }
            // determine if request.TrainingDataSchema should be set to null
            if (requestTrainingDataSchemaIsNull)
            {
                request.TrainingDataSchema = null;
            }
            if (cmdletContext.TrainingDataSource != null)
            {
                request.TrainingDataSource = cmdletContext.TrainingDataSource;
            }

            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);
        }
        public object Execute(ExecutorContext context)
        {
            var cmdletContext = context as CmdletContext;
            // create request
            var request = new Amazon.FraudDetector.Model.UpdateModelVersionRequest();


            // populate ExternalEventsDetail
            var requestExternalEventsDetailIsNull = true;

            request.ExternalEventsDetail = new Amazon.FraudDetector.Model.ExternalEventsDetail();
            System.String requestExternalEventsDetail_externalEventsDetail_DataAccessRoleArn = null;
            if (cmdletContext.ExternalEventsDetail_DataAccessRoleArn != null)
            {
                requestExternalEventsDetail_externalEventsDetail_DataAccessRoleArn = cmdletContext.ExternalEventsDetail_DataAccessRoleArn;
            }
            if (requestExternalEventsDetail_externalEventsDetail_DataAccessRoleArn != null)
            {
                request.ExternalEventsDetail.DataAccessRoleArn = requestExternalEventsDetail_externalEventsDetail_DataAccessRoleArn;
                requestExternalEventsDetailIsNull = false;
            }
            System.String requestExternalEventsDetail_externalEventsDetail_DataLocation = null;
            if (cmdletContext.ExternalEventsDetail_DataLocation != null)
            {
                requestExternalEventsDetail_externalEventsDetail_DataLocation = cmdletContext.ExternalEventsDetail_DataLocation;
            }
            if (requestExternalEventsDetail_externalEventsDetail_DataLocation != null)
            {
                request.ExternalEventsDetail.DataLocation = requestExternalEventsDetail_externalEventsDetail_DataLocation;
                requestExternalEventsDetailIsNull         = false;
            }
            // determine if request.ExternalEventsDetail should be set to null
            if (requestExternalEventsDetailIsNull)
            {
                request.ExternalEventsDetail = null;
            }

            // populate IngestedEventsDetail
            var requestIngestedEventsDetailIsNull = true;

            request.IngestedEventsDetail = new Amazon.FraudDetector.Model.IngestedEventsDetail();
            Amazon.FraudDetector.Model.IngestedEventsTimeWindow requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow = null;

            // populate IngestedEventsTimeWindow
            var requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindowIsNull = true;

            requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow = new Amazon.FraudDetector.Model.IngestedEventsTimeWindow();
            System.String requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_EndTime = null;
            if (cmdletContext.IngestedEventsTimeWindow_EndTime != null)
            {
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_EndTime = cmdletContext.IngestedEventsTimeWindow_EndTime;
            }
            if (requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_EndTime != null)
            {
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow.EndTime = requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_EndTime;
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindowIsNull   = false;
            }
            System.String requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_StartTime = null;
            if (cmdletContext.IngestedEventsTimeWindow_StartTime != null)
            {
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_StartTime = cmdletContext.IngestedEventsTimeWindow_StartTime;
            }
            if (requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_StartTime != null)
            {
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow.StartTime = requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow_ingestedEventsTimeWindow_StartTime;
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindowIsNull     = false;
            }
            // determine if requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow should be set to null
            if (requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindowIsNull)
            {
                requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow = null;
            }
            if (requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow != null)
            {
                request.IngestedEventsDetail.IngestedEventsTimeWindow = requestIngestedEventsDetail_ingestedEventsDetail_IngestedEventsTimeWindow;
                requestIngestedEventsDetailIsNull = false;
            }
            // determine if request.IngestedEventsDetail should be set to null
            if (requestIngestedEventsDetailIsNull)
            {
                request.IngestedEventsDetail = null;
            }
            if (cmdletContext.MajorVersionNumber != null)
            {
                request.MajorVersionNumber = cmdletContext.MajorVersionNumber;
            }
            if (cmdletContext.ModelId != null)
            {
                request.ModelId = cmdletContext.ModelId;
            }
            if (cmdletContext.ModelType != null)
            {
                request.ModelType = cmdletContext.ModelType;
            }
            if (cmdletContext.Tag != null)
            {
                request.Tags = cmdletContext.Tag;
            }

            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);
        }