private Amazon.Kafka.Model.UpdateSecurityResponse CallAWSServiceOperation(IAmazonKafka client, Amazon.Kafka.Model.UpdateSecurityRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Managed Streaming for Apache Kafka (MSK)", "UpdateSecurity");
     try
     {
         #if DESKTOP
         return(client.UpdateSecurity(request));
         #elif CORECLR
         return(client.UpdateSecurityAsync(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.Kafka.Model.UpdateSecurityRequest();


            // populate ClientAuthentication
            var requestClientAuthenticationIsNull = true;

            request.ClientAuthentication = new Amazon.Kafka.Model.ClientAuthentication();
            Amazon.Kafka.Model.Unauthenticated requestClientAuthentication_clientAuthentication_Unauthenticated = null;

            // populate Unauthenticated
            var requestClientAuthentication_clientAuthentication_UnauthenticatedIsNull = true;

            requestClientAuthentication_clientAuthentication_Unauthenticated = new Amazon.Kafka.Model.Unauthenticated();
            System.Boolean?requestClientAuthentication_clientAuthentication_Unauthenticated_unauthenticated_Enabled = null;
            if (cmdletContext.Unauthenticated_Enabled != null)
            {
                requestClientAuthentication_clientAuthentication_Unauthenticated_unauthenticated_Enabled = cmdletContext.Unauthenticated_Enabled.Value;
            }
            if (requestClientAuthentication_clientAuthentication_Unauthenticated_unauthenticated_Enabled != null)
            {
                requestClientAuthentication_clientAuthentication_Unauthenticated.Enabled = requestClientAuthentication_clientAuthentication_Unauthenticated_unauthenticated_Enabled.Value;
                requestClientAuthentication_clientAuthentication_UnauthenticatedIsNull   = false;
            }
            // determine if requestClientAuthentication_clientAuthentication_Unauthenticated should be set to null
            if (requestClientAuthentication_clientAuthentication_UnauthenticatedIsNull)
            {
                requestClientAuthentication_clientAuthentication_Unauthenticated = null;
            }
            if (requestClientAuthentication_clientAuthentication_Unauthenticated != null)
            {
                request.ClientAuthentication.Unauthenticated = requestClientAuthentication_clientAuthentication_Unauthenticated;
                requestClientAuthenticationIsNull            = false;
            }
            Amazon.Kafka.Model.Sasl requestClientAuthentication_clientAuthentication_Sasl = null;

            // populate Sasl
            var requestClientAuthentication_clientAuthentication_SaslIsNull = true;

            requestClientAuthentication_clientAuthentication_Sasl = new Amazon.Kafka.Model.Sasl();
            Amazon.Kafka.Model.Iam requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam = null;

            // populate Iam
            var requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_IamIsNull = true;

            requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam = new Amazon.Kafka.Model.Iam();
            System.Boolean?requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam_iam_Enabled = null;
            if (cmdletContext.Iam_Enabled != null)
            {
                requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam_iam_Enabled = cmdletContext.Iam_Enabled.Value;
            }
            if (requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam_iam_Enabled != null)
            {
                requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam.Enabled = requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam_iam_Enabled.Value;
                requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_IamIsNull   = false;
            }
            // determine if requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam should be set to null
            if (requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_IamIsNull)
            {
                requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam = null;
            }
            if (requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam != null)
            {
                requestClientAuthentication_clientAuthentication_Sasl.Iam   = requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Iam;
                requestClientAuthentication_clientAuthentication_SaslIsNull = false;
            }
            Amazon.Kafka.Model.Scram requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram = null;

            // populate Scram
            var requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_ScramIsNull = true;

            requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram = new Amazon.Kafka.Model.Scram();
            System.Boolean?requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram_scram_Enabled = null;
            if (cmdletContext.Scram_Enabled != null)
            {
                requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram_scram_Enabled = cmdletContext.Scram_Enabled.Value;
            }
            if (requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram_scram_Enabled != null)
            {
                requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram.Enabled = requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram_scram_Enabled.Value;
                requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_ScramIsNull   = false;
            }
            // determine if requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram should be set to null
            if (requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_ScramIsNull)
            {
                requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram = null;
            }
            if (requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram != null)
            {
                requestClientAuthentication_clientAuthentication_Sasl.Scram = requestClientAuthentication_clientAuthentication_Sasl_clientAuthentication_Sasl_Scram;
                requestClientAuthentication_clientAuthentication_SaslIsNull = false;
            }
            // determine if requestClientAuthentication_clientAuthentication_Sasl should be set to null
            if (requestClientAuthentication_clientAuthentication_SaslIsNull)
            {
                requestClientAuthentication_clientAuthentication_Sasl = null;
            }
            if (requestClientAuthentication_clientAuthentication_Sasl != null)
            {
                request.ClientAuthentication.Sasl = requestClientAuthentication_clientAuthentication_Sasl;
                requestClientAuthenticationIsNull = false;
            }
            Amazon.Kafka.Model.Tls requestClientAuthentication_clientAuthentication_Tls = null;

            // populate Tls
            var requestClientAuthentication_clientAuthentication_TlsIsNull = true;

            requestClientAuthentication_clientAuthentication_Tls = new Amazon.Kafka.Model.Tls();
            List <System.String> requestClientAuthentication_clientAuthentication_Tls_tls_CertificateAuthorityArnList = null;

            if (cmdletContext.Tls_CertificateAuthorityArnList != null)
            {
                requestClientAuthentication_clientAuthentication_Tls_tls_CertificateAuthorityArnList = cmdletContext.Tls_CertificateAuthorityArnList;
            }
            if (requestClientAuthentication_clientAuthentication_Tls_tls_CertificateAuthorityArnList != null)
            {
                requestClientAuthentication_clientAuthentication_Tls.CertificateAuthorityArnList = requestClientAuthentication_clientAuthentication_Tls_tls_CertificateAuthorityArnList;
                requestClientAuthentication_clientAuthentication_TlsIsNull = false;
            }
            System.Boolean?requestClientAuthentication_clientAuthentication_Tls_tls_Enabled = null;
            if (cmdletContext.Tls_Enabled != null)
            {
                requestClientAuthentication_clientAuthentication_Tls_tls_Enabled = cmdletContext.Tls_Enabled.Value;
            }
            if (requestClientAuthentication_clientAuthentication_Tls_tls_Enabled != null)
            {
                requestClientAuthentication_clientAuthentication_Tls.Enabled = requestClientAuthentication_clientAuthentication_Tls_tls_Enabled.Value;
                requestClientAuthentication_clientAuthentication_TlsIsNull   = false;
            }
            // determine if requestClientAuthentication_clientAuthentication_Tls should be set to null
            if (requestClientAuthentication_clientAuthentication_TlsIsNull)
            {
                requestClientAuthentication_clientAuthentication_Tls = null;
            }
            if (requestClientAuthentication_clientAuthentication_Tls != null)
            {
                request.ClientAuthentication.Tls  = requestClientAuthentication_clientAuthentication_Tls;
                requestClientAuthenticationIsNull = false;
            }
            // determine if request.ClientAuthentication should be set to null
            if (requestClientAuthenticationIsNull)
            {
                request.ClientAuthentication = null;
            }
            if (cmdletContext.ClusterArn != null)
            {
                request.ClusterArn = cmdletContext.ClusterArn;
            }
            if (cmdletContext.CurrentVersion != null)
            {
                request.CurrentVersion = cmdletContext.CurrentVersion;
            }

            // populate EncryptionInfo
            var requestEncryptionInfoIsNull = true;

            request.EncryptionInfo = new Amazon.Kafka.Model.EncryptionInfo();
            Amazon.Kafka.Model.EncryptionAtRest requestEncryptionInfo_encryptionInfo_EncryptionAtRest = null;

            // populate EncryptionAtRest
            var requestEncryptionInfo_encryptionInfo_EncryptionAtRestIsNull = true;

            requestEncryptionInfo_encryptionInfo_EncryptionAtRest = new Amazon.Kafka.Model.EncryptionAtRest();
            System.String requestEncryptionInfo_encryptionInfo_EncryptionAtRest_encryptionAtRest_DataVolumeKMSKeyId = null;
            if (cmdletContext.EncryptionAtRest_DataVolumeKMSKeyId != null)
            {
                requestEncryptionInfo_encryptionInfo_EncryptionAtRest_encryptionAtRest_DataVolumeKMSKeyId = cmdletContext.EncryptionAtRest_DataVolumeKMSKeyId;
            }
            if (requestEncryptionInfo_encryptionInfo_EncryptionAtRest_encryptionAtRest_DataVolumeKMSKeyId != null)
            {
                requestEncryptionInfo_encryptionInfo_EncryptionAtRest.DataVolumeKMSKeyId = requestEncryptionInfo_encryptionInfo_EncryptionAtRest_encryptionAtRest_DataVolumeKMSKeyId;
                requestEncryptionInfo_encryptionInfo_EncryptionAtRestIsNull = false;
            }
            // determine if requestEncryptionInfo_encryptionInfo_EncryptionAtRest should be set to null
            if (requestEncryptionInfo_encryptionInfo_EncryptionAtRestIsNull)
            {
                requestEncryptionInfo_encryptionInfo_EncryptionAtRest = null;
            }
            if (requestEncryptionInfo_encryptionInfo_EncryptionAtRest != null)
            {
                request.EncryptionInfo.EncryptionAtRest = requestEncryptionInfo_encryptionInfo_EncryptionAtRest;
                requestEncryptionInfoIsNull             = false;
            }
            Amazon.Kafka.Model.EncryptionInTransit requestEncryptionInfo_encryptionInfo_EncryptionInTransit = null;

            // populate EncryptionInTransit
            var requestEncryptionInfo_encryptionInfo_EncryptionInTransitIsNull = true;

            requestEncryptionInfo_encryptionInfo_EncryptionInTransit = new Amazon.Kafka.Model.EncryptionInTransit();
            Amazon.Kafka.ClientBroker requestEncryptionInfo_encryptionInfo_EncryptionInTransit_encryptionInTransit_ClientBroker = null;
            if (cmdletContext.EncryptionInTransit_ClientBroker != null)
            {
                requestEncryptionInfo_encryptionInfo_EncryptionInTransit_encryptionInTransit_ClientBroker = cmdletContext.EncryptionInTransit_ClientBroker;
            }
            if (requestEncryptionInfo_encryptionInfo_EncryptionInTransit_encryptionInTransit_ClientBroker != null)
            {
                requestEncryptionInfo_encryptionInfo_EncryptionInTransit.ClientBroker = requestEncryptionInfo_encryptionInfo_EncryptionInTransit_encryptionInTransit_ClientBroker;
                requestEncryptionInfo_encryptionInfo_EncryptionInTransitIsNull        = false;
            }
            System.Boolean?requestEncryptionInfo_encryptionInfo_EncryptionInTransit_encryptionInTransit_InCluster = null;
            if (cmdletContext.EncryptionInTransit_InCluster != null)
            {
                requestEncryptionInfo_encryptionInfo_EncryptionInTransit_encryptionInTransit_InCluster = cmdletContext.EncryptionInTransit_InCluster.Value;
            }
            if (requestEncryptionInfo_encryptionInfo_EncryptionInTransit_encryptionInTransit_InCluster != null)
            {
                requestEncryptionInfo_encryptionInfo_EncryptionInTransit.InCluster = requestEncryptionInfo_encryptionInfo_EncryptionInTransit_encryptionInTransit_InCluster.Value;
                requestEncryptionInfo_encryptionInfo_EncryptionInTransitIsNull     = false;
            }
            // determine if requestEncryptionInfo_encryptionInfo_EncryptionInTransit should be set to null
            if (requestEncryptionInfo_encryptionInfo_EncryptionInTransitIsNull)
            {
                requestEncryptionInfo_encryptionInfo_EncryptionInTransit = null;
            }
            if (requestEncryptionInfo_encryptionInfo_EncryptionInTransit != null)
            {
                request.EncryptionInfo.EncryptionInTransit = requestEncryptionInfo_encryptionInfo_EncryptionInTransit;
                requestEncryptionInfoIsNull = false;
            }
            // determine if request.EncryptionInfo should be set to null
            if (requestEncryptionInfoIsNull)
            {
                request.EncryptionInfo = 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);
        }