private Amazon.IoT.Model.UpdateIndexingConfigurationResponse CallAWSServiceOperation(IAmazonIoT client, Amazon.IoT.Model.UpdateIndexingConfigurationRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "AWS IoT", "UpdateIndexingConfiguration");
     try
     {
         #if DESKTOP
         return(client.UpdateIndexingConfiguration(request));
         #elif CORECLR
         return(client.UpdateIndexingConfigurationAsync(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.IoT.Model.UpdateIndexingConfigurationRequest();


            // populate ThingGroupIndexingConfiguration
            var requestThingGroupIndexingConfigurationIsNull = true;

            request.ThingGroupIndexingConfiguration = new Amazon.IoT.Model.ThingGroupIndexingConfiguration();
            List <Amazon.IoT.Model.Field> requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_CustomField = null;

            if (cmdletContext.ThingGroupIndexingConfiguration_CustomField != null)
            {
                requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_CustomField = cmdletContext.ThingGroupIndexingConfiguration_CustomField;
            }
            if (requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_CustomField != null)
            {
                request.ThingGroupIndexingConfiguration.CustomFields = requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_CustomField;
                requestThingGroupIndexingConfigurationIsNull         = false;
            }
            List <Amazon.IoT.Model.Field> requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_ManagedField = null;

            if (cmdletContext.ThingGroupIndexingConfiguration_ManagedField != null)
            {
                requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_ManagedField = cmdletContext.ThingGroupIndexingConfiguration_ManagedField;
            }
            if (requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_ManagedField != null)
            {
                request.ThingGroupIndexingConfiguration.ManagedFields = requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_ManagedField;
                requestThingGroupIndexingConfigurationIsNull          = false;
            }
            Amazon.IoT.ThingGroupIndexingMode requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_ThingGroupIndexingMode = null;
            if (cmdletContext.ThingGroupIndexingConfiguration_ThingGroupIndexingMode != null)
            {
                requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_ThingGroupIndexingMode = cmdletContext.ThingGroupIndexingConfiguration_ThingGroupIndexingMode;
            }
            if (requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_ThingGroupIndexingMode != null)
            {
                request.ThingGroupIndexingConfiguration.ThingGroupIndexingMode = requestThingGroupIndexingConfiguration_thingGroupIndexingConfiguration_ThingGroupIndexingMode;
                requestThingGroupIndexingConfigurationIsNull = false;
            }
            // determine if request.ThingGroupIndexingConfiguration should be set to null
            if (requestThingGroupIndexingConfigurationIsNull)
            {
                request.ThingGroupIndexingConfiguration = null;
            }

            // populate ThingIndexingConfiguration
            var requestThingIndexingConfigurationIsNull = true;

            request.ThingIndexingConfiguration = new Amazon.IoT.Model.ThingIndexingConfiguration();
            List <Amazon.IoT.Model.Field> requestThingIndexingConfiguration_thingIndexingConfiguration_CustomField = null;

            if (cmdletContext.ThingIndexingConfiguration_CustomField != null)
            {
                requestThingIndexingConfiguration_thingIndexingConfiguration_CustomField = cmdletContext.ThingIndexingConfiguration_CustomField;
            }
            if (requestThingIndexingConfiguration_thingIndexingConfiguration_CustomField != null)
            {
                request.ThingIndexingConfiguration.CustomFields = requestThingIndexingConfiguration_thingIndexingConfiguration_CustomField;
                requestThingIndexingConfigurationIsNull         = false;
            }
            List <Amazon.IoT.Model.Field> requestThingIndexingConfiguration_thingIndexingConfiguration_ManagedField = null;

            if (cmdletContext.ThingIndexingConfiguration_ManagedField != null)
            {
                requestThingIndexingConfiguration_thingIndexingConfiguration_ManagedField = cmdletContext.ThingIndexingConfiguration_ManagedField;
            }
            if (requestThingIndexingConfiguration_thingIndexingConfiguration_ManagedField != null)
            {
                request.ThingIndexingConfiguration.ManagedFields = requestThingIndexingConfiguration_thingIndexingConfiguration_ManagedField;
                requestThingIndexingConfigurationIsNull          = false;
            }
            Amazon.IoT.ThingConnectivityIndexingMode requestThingIndexingConfiguration_thingIndexingConfiguration_ThingConnectivityIndexingMode = null;
            if (cmdletContext.ThingIndexingConfiguration_ThingConnectivityIndexingMode != null)
            {
                requestThingIndexingConfiguration_thingIndexingConfiguration_ThingConnectivityIndexingMode = cmdletContext.ThingIndexingConfiguration_ThingConnectivityIndexingMode;
            }
            if (requestThingIndexingConfiguration_thingIndexingConfiguration_ThingConnectivityIndexingMode != null)
            {
                request.ThingIndexingConfiguration.ThingConnectivityIndexingMode = requestThingIndexingConfiguration_thingIndexingConfiguration_ThingConnectivityIndexingMode;
                requestThingIndexingConfigurationIsNull = false;
            }
            Amazon.IoT.ThingIndexingMode requestThingIndexingConfiguration_thingIndexingConfiguration_ThingIndexingMode = null;
            if (cmdletContext.ThingIndexingConfiguration_ThingIndexingMode != null)
            {
                requestThingIndexingConfiguration_thingIndexingConfiguration_ThingIndexingMode = cmdletContext.ThingIndexingConfiguration_ThingIndexingMode;
            }
            if (requestThingIndexingConfiguration_thingIndexingConfiguration_ThingIndexingMode != null)
            {
                request.ThingIndexingConfiguration.ThingIndexingMode = requestThingIndexingConfiguration_thingIndexingConfiguration_ThingIndexingMode;
                requestThingIndexingConfigurationIsNull = false;
            }
            // determine if request.ThingIndexingConfiguration should be set to null
            if (requestThingIndexingConfigurationIsNull)
            {
                request.ThingIndexingConfiguration = 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);
        }