private Amazon.Connect.Model.AssociateInstanceStorageConfigResponse CallAWSServiceOperation(IAmazonConnect client, Amazon.Connect.Model.AssociateInstanceStorageConfigRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Connect Service", "AssociateInstanceStorageConfig");
     try
     {
         #if DESKTOP
         return(client.AssociateInstanceStorageConfig(request));
         #elif CORECLR
         return(client.AssociateInstanceStorageConfigAsync(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.Connect.Model.AssociateInstanceStorageConfigRequest();

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

            // populate StorageConfig
            var requestStorageConfigIsNull = true;

            request.StorageConfig = new Amazon.Connect.Model.InstanceStorageConfig();
            System.String requestStorageConfig_storageConfig_AssociationId = null;
            if (cmdletContext.StorageConfig_AssociationId != null)
            {
                requestStorageConfig_storageConfig_AssociationId = cmdletContext.StorageConfig_AssociationId;
            }
            if (requestStorageConfig_storageConfig_AssociationId != null)
            {
                request.StorageConfig.AssociationId = requestStorageConfig_storageConfig_AssociationId;
                requestStorageConfigIsNull          = false;
            }
            Amazon.Connect.StorageType requestStorageConfig_storageConfig_StorageType = null;
            if (cmdletContext.StorageConfig_StorageType != null)
            {
                requestStorageConfig_storageConfig_StorageType = cmdletContext.StorageConfig_StorageType;
            }
            if (requestStorageConfig_storageConfig_StorageType != null)
            {
                request.StorageConfig.StorageType = requestStorageConfig_storageConfig_StorageType;
                requestStorageConfigIsNull        = false;
            }
            Amazon.Connect.Model.KinesisFirehoseConfig requestStorageConfig_storageConfig_KinesisFirehoseConfig = null;

            // populate KinesisFirehoseConfig
            var requestStorageConfig_storageConfig_KinesisFirehoseConfigIsNull = true;

            requestStorageConfig_storageConfig_KinesisFirehoseConfig = new Amazon.Connect.Model.KinesisFirehoseConfig();
            System.String requestStorageConfig_storageConfig_KinesisFirehoseConfig_kinesisFirehoseConfig_FirehoseArn = null;
            if (cmdletContext.KinesisFirehoseConfig_FirehoseArn != null)
            {
                requestStorageConfig_storageConfig_KinesisFirehoseConfig_kinesisFirehoseConfig_FirehoseArn = cmdletContext.KinesisFirehoseConfig_FirehoseArn;
            }
            if (requestStorageConfig_storageConfig_KinesisFirehoseConfig_kinesisFirehoseConfig_FirehoseArn != null)
            {
                requestStorageConfig_storageConfig_KinesisFirehoseConfig.FirehoseArn = requestStorageConfig_storageConfig_KinesisFirehoseConfig_kinesisFirehoseConfig_FirehoseArn;
                requestStorageConfig_storageConfig_KinesisFirehoseConfigIsNull       = false;
            }
            // determine if requestStorageConfig_storageConfig_KinesisFirehoseConfig should be set to null
            if (requestStorageConfig_storageConfig_KinesisFirehoseConfigIsNull)
            {
                requestStorageConfig_storageConfig_KinesisFirehoseConfig = null;
            }
            if (requestStorageConfig_storageConfig_KinesisFirehoseConfig != null)
            {
                request.StorageConfig.KinesisFirehoseConfig = requestStorageConfig_storageConfig_KinesisFirehoseConfig;
                requestStorageConfigIsNull = false;
            }
            Amazon.Connect.Model.KinesisStreamConfig requestStorageConfig_storageConfig_KinesisStreamConfig = null;

            // populate KinesisStreamConfig
            var requestStorageConfig_storageConfig_KinesisStreamConfigIsNull = true;

            requestStorageConfig_storageConfig_KinesisStreamConfig = new Amazon.Connect.Model.KinesisStreamConfig();
            System.String requestStorageConfig_storageConfig_KinesisStreamConfig_kinesisStreamConfig_StreamArn = null;
            if (cmdletContext.KinesisStreamConfig_StreamArn != null)
            {
                requestStorageConfig_storageConfig_KinesisStreamConfig_kinesisStreamConfig_StreamArn = cmdletContext.KinesisStreamConfig_StreamArn;
            }
            if (requestStorageConfig_storageConfig_KinesisStreamConfig_kinesisStreamConfig_StreamArn != null)
            {
                requestStorageConfig_storageConfig_KinesisStreamConfig.StreamArn = requestStorageConfig_storageConfig_KinesisStreamConfig_kinesisStreamConfig_StreamArn;
                requestStorageConfig_storageConfig_KinesisStreamConfigIsNull     = false;
            }
            // determine if requestStorageConfig_storageConfig_KinesisStreamConfig should be set to null
            if (requestStorageConfig_storageConfig_KinesisStreamConfigIsNull)
            {
                requestStorageConfig_storageConfig_KinesisStreamConfig = null;
            }
            if (requestStorageConfig_storageConfig_KinesisStreamConfig != null)
            {
                request.StorageConfig.KinesisStreamConfig = requestStorageConfig_storageConfig_KinesisStreamConfig;
                requestStorageConfigIsNull = false;
            }
            Amazon.Connect.Model.KinesisVideoStreamConfig requestStorageConfig_storageConfig_KinesisVideoStreamConfig = null;

            // populate KinesisVideoStreamConfig
            var requestStorageConfig_storageConfig_KinesisVideoStreamConfigIsNull = true;

            requestStorageConfig_storageConfig_KinesisVideoStreamConfig = new Amazon.Connect.Model.KinesisVideoStreamConfig();
            System.String requestStorageConfig_storageConfig_KinesisVideoStreamConfig_kinesisVideoStreamConfig_Prefix = null;
            if (cmdletContext.KinesisVideoStreamConfig_Prefix != null)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig_kinesisVideoStreamConfig_Prefix = cmdletContext.KinesisVideoStreamConfig_Prefix;
            }
            if (requestStorageConfig_storageConfig_KinesisVideoStreamConfig_kinesisVideoStreamConfig_Prefix != null)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig.Prefix = requestStorageConfig_storageConfig_KinesisVideoStreamConfig_kinesisVideoStreamConfig_Prefix;
                requestStorageConfig_storageConfig_KinesisVideoStreamConfigIsNull  = false;
            }
            System.Int32?requestStorageConfig_storageConfig_KinesisVideoStreamConfig_kinesisVideoStreamConfig_RetentionPeriodHour = null;
            if (cmdletContext.KinesisVideoStreamConfig_RetentionPeriodHour != null)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig_kinesisVideoStreamConfig_RetentionPeriodHour = cmdletContext.KinesisVideoStreamConfig_RetentionPeriodHour.Value;
            }
            if (requestStorageConfig_storageConfig_KinesisVideoStreamConfig_kinesisVideoStreamConfig_RetentionPeriodHour != null)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig.RetentionPeriodHours = requestStorageConfig_storageConfig_KinesisVideoStreamConfig_kinesisVideoStreamConfig_RetentionPeriodHour.Value;
                requestStorageConfig_storageConfig_KinesisVideoStreamConfigIsNull = false;
            }
            Amazon.Connect.Model.EncryptionConfig requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig = null;

            // populate EncryptionConfig
            var requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfigIsNull = true;

            requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig = new Amazon.Connect.Model.EncryptionConfig();
            Amazon.Connect.EncryptionType requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig_storageConfigKinesisVideoStreamConfigEncryptionConfigEncryptionType = null;
            if (cmdletContext.StorageConfigKinesisVideoStreamConfigEncryptionConfigEncryptionType != null)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig_storageConfigKinesisVideoStreamConfigEncryptionConfigEncryptionType = cmdletContext.StorageConfigKinesisVideoStreamConfigEncryptionConfigEncryptionType;
            }
            if (requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig_storageConfigKinesisVideoStreamConfigEncryptionConfigEncryptionType != null)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig.EncryptionType = requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig_storageConfigKinesisVideoStreamConfigEncryptionConfigEncryptionType;
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfigIsNull          = false;
            }
            System.String requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig_storageConfigKinesisVideoStreamConfigEncryptionConfigKeyId = null;
            if (cmdletContext.StorageConfigKinesisVideoStreamConfigEncryptionConfigKeyId != null)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig_storageConfigKinesisVideoStreamConfigEncryptionConfigKeyId = cmdletContext.StorageConfigKinesisVideoStreamConfigEncryptionConfigKeyId;
            }
            if (requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig_storageConfigKinesisVideoStreamConfigEncryptionConfigKeyId != null)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig.KeyId = requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig_storageConfigKinesisVideoStreamConfigEncryptionConfigKeyId;
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfigIsNull = false;
            }
            // determine if requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig should be set to null
            if (requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfigIsNull)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig = null;
            }
            if (requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig != null)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig.EncryptionConfig = requestStorageConfig_storageConfig_KinesisVideoStreamConfig_storageConfig_KinesisVideoStreamConfig_EncryptionConfig;
                requestStorageConfig_storageConfig_KinesisVideoStreamConfigIsNull            = false;
            }
            // determine if requestStorageConfig_storageConfig_KinesisVideoStreamConfig should be set to null
            if (requestStorageConfig_storageConfig_KinesisVideoStreamConfigIsNull)
            {
                requestStorageConfig_storageConfig_KinesisVideoStreamConfig = null;
            }
            if (requestStorageConfig_storageConfig_KinesisVideoStreamConfig != null)
            {
                request.StorageConfig.KinesisVideoStreamConfig = requestStorageConfig_storageConfig_KinesisVideoStreamConfig;
                requestStorageConfigIsNull = false;
            }
            Amazon.Connect.Model.S3Config requestStorageConfig_storageConfig_S3Config = null;

            // populate S3Config
            var requestStorageConfig_storageConfig_S3ConfigIsNull = true;

            requestStorageConfig_storageConfig_S3Config = new Amazon.Connect.Model.S3Config();
            System.String requestStorageConfig_storageConfig_S3Config_s3Config_BucketName = null;
            if (cmdletContext.S3Config_BucketName != null)
            {
                requestStorageConfig_storageConfig_S3Config_s3Config_BucketName = cmdletContext.S3Config_BucketName;
            }
            if (requestStorageConfig_storageConfig_S3Config_s3Config_BucketName != null)
            {
                requestStorageConfig_storageConfig_S3Config.BucketName = requestStorageConfig_storageConfig_S3Config_s3Config_BucketName;
                requestStorageConfig_storageConfig_S3ConfigIsNull      = false;
            }
            System.String requestStorageConfig_storageConfig_S3Config_s3Config_BucketPrefix = null;
            if (cmdletContext.S3Config_BucketPrefix != null)
            {
                requestStorageConfig_storageConfig_S3Config_s3Config_BucketPrefix = cmdletContext.S3Config_BucketPrefix;
            }
            if (requestStorageConfig_storageConfig_S3Config_s3Config_BucketPrefix != null)
            {
                requestStorageConfig_storageConfig_S3Config.BucketPrefix = requestStorageConfig_storageConfig_S3Config_s3Config_BucketPrefix;
                requestStorageConfig_storageConfig_S3ConfigIsNull        = false;
            }
            Amazon.Connect.Model.EncryptionConfig requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig = null;

            // populate EncryptionConfig
            var requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfigIsNull = true;

            requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig = new Amazon.Connect.Model.EncryptionConfig();
            Amazon.Connect.EncryptionType requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig_storageConfigS3ConfigEncryptionConfigEncryptionType = null;
            if (cmdletContext.StorageConfigS3ConfigEncryptionConfigEncryptionType != null)
            {
                requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig_storageConfigS3ConfigEncryptionConfigEncryptionType = cmdletContext.StorageConfigS3ConfigEncryptionConfigEncryptionType;
            }
            if (requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig_storageConfigS3ConfigEncryptionConfigEncryptionType != null)
            {
                requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig.EncryptionType = requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig_storageConfigS3ConfigEncryptionConfigEncryptionType;
                requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfigIsNull          = false;
            }
            System.String requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig_storageConfigS3ConfigEncryptionConfigKeyId = null;
            if (cmdletContext.StorageConfigS3ConfigEncryptionConfigKeyId != null)
            {
                requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig_storageConfigS3ConfigEncryptionConfigKeyId = cmdletContext.StorageConfigS3ConfigEncryptionConfigKeyId;
            }
            if (requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig_storageConfigS3ConfigEncryptionConfigKeyId != null)
            {
                requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig.KeyId = requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig_storageConfigS3ConfigEncryptionConfigKeyId;
                requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfigIsNull = false;
            }
            // determine if requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig should be set to null
            if (requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfigIsNull)
            {
                requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig = null;
            }
            if (requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig != null)
            {
                requestStorageConfig_storageConfig_S3Config.EncryptionConfig = requestStorageConfig_storageConfig_S3Config_storageConfig_S3Config_EncryptionConfig;
                requestStorageConfig_storageConfig_S3ConfigIsNull            = false;
            }
            // determine if requestStorageConfig_storageConfig_S3Config should be set to null
            if (requestStorageConfig_storageConfig_S3ConfigIsNull)
            {
                requestStorageConfig_storageConfig_S3Config = null;
            }
            if (requestStorageConfig_storageConfig_S3Config != null)
            {
                request.StorageConfig.S3Config = requestStorageConfig_storageConfig_S3Config;
                requestStorageConfigIsNull     = false;
            }
            // determine if request.StorageConfig should be set to null
            if (requestStorageConfigIsNull)
            {
                request.StorageConfig = 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);
        }