private Amazon.OpenSearchService.Model.CreateOutboundConnectionResponse CallAWSServiceOperation(IAmazonOpenSearchService client, Amazon.OpenSearchService.Model.CreateOutboundConnectionRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon OpenSearch Service", "CreateOutboundConnection");
     try
     {
         #if DESKTOP
         return(client.CreateOutboundConnection(request));
         #elif CORECLR
         return(client.CreateOutboundConnectionAsync(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.OpenSearchService.Model.CreateOutboundConnectionRequest();

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

            // populate LocalDomainInfo
            var requestLocalDomainInfoIsNull = true;

            request.LocalDomainInfo = new Amazon.OpenSearchService.Model.DomainInformationContainer();
            Amazon.OpenSearchService.Model.AWSDomainInformation requestLocalDomainInfo_localDomainInfo_AWSDomainInformation = null;

            // populate AWSDomainInformation
            var requestLocalDomainInfo_localDomainInfo_AWSDomainInformationIsNull = true;

            requestLocalDomainInfo_localDomainInfo_AWSDomainInformation = new Amazon.OpenSearchService.Model.AWSDomainInformation();
            System.String requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_DomainName = null;
            if (cmdletContext.LocalDomainInfo_AWSDomainInformation_DomainName != null)
            {
                requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_DomainName = cmdletContext.LocalDomainInfo_AWSDomainInformation_DomainName;
            }
            if (requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_DomainName != null)
            {
                requestLocalDomainInfo_localDomainInfo_AWSDomainInformation.DomainName = requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_DomainName;
                requestLocalDomainInfo_localDomainInfo_AWSDomainInformationIsNull      = false;
            }
            System.String requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_OwnerId = null;
            if (cmdletContext.LocalDomainInfo_AWSDomainInformation_OwnerId != null)
            {
                requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_OwnerId = cmdletContext.LocalDomainInfo_AWSDomainInformation_OwnerId;
            }
            if (requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_OwnerId != null)
            {
                requestLocalDomainInfo_localDomainInfo_AWSDomainInformation.OwnerId = requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_OwnerId;
                requestLocalDomainInfo_localDomainInfo_AWSDomainInformationIsNull   = false;
            }
            System.String requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_Region = null;
            if (cmdletContext.LocalDomainInfo_AWSDomainInformation_Region != null)
            {
                requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_Region = cmdletContext.LocalDomainInfo_AWSDomainInformation_Region;
            }
            if (requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_Region != null)
            {
                requestLocalDomainInfo_localDomainInfo_AWSDomainInformation.Region = requestLocalDomainInfo_localDomainInfo_AWSDomainInformation_localDomainInfo_AWSDomainInformation_Region;
                requestLocalDomainInfo_localDomainInfo_AWSDomainInformationIsNull  = false;
            }
            // determine if requestLocalDomainInfo_localDomainInfo_AWSDomainInformation should be set to null
            if (requestLocalDomainInfo_localDomainInfo_AWSDomainInformationIsNull)
            {
                requestLocalDomainInfo_localDomainInfo_AWSDomainInformation = null;
            }
            if (requestLocalDomainInfo_localDomainInfo_AWSDomainInformation != null)
            {
                request.LocalDomainInfo.AWSDomainInformation = requestLocalDomainInfo_localDomainInfo_AWSDomainInformation;
                requestLocalDomainInfoIsNull = false;
            }
            // determine if request.LocalDomainInfo should be set to null
            if (requestLocalDomainInfoIsNull)
            {
                request.LocalDomainInfo = null;
            }

            // populate RemoteDomainInfo
            var requestRemoteDomainInfoIsNull = true;

            request.RemoteDomainInfo = new Amazon.OpenSearchService.Model.DomainInformationContainer();
            Amazon.OpenSearchService.Model.AWSDomainInformation requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation = null;

            // populate AWSDomainInformation
            var requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformationIsNull = true;

            requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation = new Amazon.OpenSearchService.Model.AWSDomainInformation();
            System.String requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_DomainName = null;
            if (cmdletContext.RemoteDomainInfo_AWSDomainInformation_DomainName != null)
            {
                requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_DomainName = cmdletContext.RemoteDomainInfo_AWSDomainInformation_DomainName;
            }
            if (requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_DomainName != null)
            {
                requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation.DomainName = requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_DomainName;
                requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformationIsNull      = false;
            }
            System.String requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_OwnerId = null;
            if (cmdletContext.RemoteDomainInfo_AWSDomainInformation_OwnerId != null)
            {
                requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_OwnerId = cmdletContext.RemoteDomainInfo_AWSDomainInformation_OwnerId;
            }
            if (requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_OwnerId != null)
            {
                requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation.OwnerId = requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_OwnerId;
                requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformationIsNull   = false;
            }
            System.String requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_Region = null;
            if (cmdletContext.RemoteDomainInfo_AWSDomainInformation_Region != null)
            {
                requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_Region = cmdletContext.RemoteDomainInfo_AWSDomainInformation_Region;
            }
            if (requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_Region != null)
            {
                requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation.Region = requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation_remoteDomainInfo_AWSDomainInformation_Region;
                requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformationIsNull  = false;
            }
            // determine if requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation should be set to null
            if (requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformationIsNull)
            {
                requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation = null;
            }
            if (requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation != null)
            {
                request.RemoteDomainInfo.AWSDomainInformation = requestRemoteDomainInfo_remoteDomainInfo_AWSDomainInformation;
                requestRemoteDomainInfoIsNull = false;
            }
            // determine if request.RemoteDomainInfo should be set to null
            if (requestRemoteDomainInfoIsNull)
            {
                request.RemoteDomainInfo = 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);
        }