Provides the AWS Config rule owner (AWS or customer), the rule identifier, and the events that trigger the evaluation of your AWS resources.
        public object Execute(ExecutorContext context)
        {
            var cmdletContext = context as CmdletContext;
            // create request
            var request = new Amazon.ConfigService.Model.PutConfigRuleRequest();


            // populate ConfigRule
            var requestConfigRuleIsNull = true;

            request.ConfigRule = new Amazon.ConfigService.Model.ConfigRule();
            System.String requestConfigRule_configRule_ConfigRuleArn = null;
            if (cmdletContext.ConfigRule_ConfigRuleArn != null)
            {
                requestConfigRule_configRule_ConfigRuleArn = cmdletContext.ConfigRule_ConfigRuleArn;
            }
            if (requestConfigRule_configRule_ConfigRuleArn != null)
            {
                request.ConfigRule.ConfigRuleArn = requestConfigRule_configRule_ConfigRuleArn;
                requestConfigRuleIsNull          = false;
            }
            System.String requestConfigRule_configRule_ConfigRuleId = null;
            if (cmdletContext.ConfigRule_ConfigRuleId != null)
            {
                requestConfigRule_configRule_ConfigRuleId = cmdletContext.ConfigRule_ConfigRuleId;
            }
            if (requestConfigRule_configRule_ConfigRuleId != null)
            {
                request.ConfigRule.ConfigRuleId = requestConfigRule_configRule_ConfigRuleId;
                requestConfigRuleIsNull         = false;
            }
            System.String requestConfigRule_configRule_ConfigRuleName = null;
            if (cmdletContext.ConfigRule_ConfigRuleName != null)
            {
                requestConfigRule_configRule_ConfigRuleName = cmdletContext.ConfigRule_ConfigRuleName;
            }
            if (requestConfigRule_configRule_ConfigRuleName != null)
            {
                request.ConfigRule.ConfigRuleName = requestConfigRule_configRule_ConfigRuleName;
                requestConfigRuleIsNull           = false;
            }
            Amazon.ConfigService.ConfigRuleState requestConfigRule_configRule_ConfigRuleState = null;
            if (cmdletContext.ConfigRule_ConfigRuleState != null)
            {
                requestConfigRule_configRule_ConfigRuleState = cmdletContext.ConfigRule_ConfigRuleState;
            }
            if (requestConfigRule_configRule_ConfigRuleState != null)
            {
                request.ConfigRule.ConfigRuleState = requestConfigRule_configRule_ConfigRuleState;
                requestConfigRuleIsNull            = false;
            }
            System.String requestConfigRule_configRule_CreatedBy = null;
            if (cmdletContext.ConfigRule_CreatedBy != null)
            {
                requestConfigRule_configRule_CreatedBy = cmdletContext.ConfigRule_CreatedBy;
            }
            if (requestConfigRule_configRule_CreatedBy != null)
            {
                request.ConfigRule.CreatedBy = requestConfigRule_configRule_CreatedBy;
                requestConfigRuleIsNull      = false;
            }
            System.String requestConfigRule_configRule_Description = null;
            if (cmdletContext.ConfigRule_Description != null)
            {
                requestConfigRule_configRule_Description = cmdletContext.ConfigRule_Description;
            }
            if (requestConfigRule_configRule_Description != null)
            {
                request.ConfigRule.Description = requestConfigRule_configRule_Description;
                requestConfigRuleIsNull        = false;
            }
            System.String requestConfigRule_configRule_InputParameter = null;
            if (cmdletContext.ConfigRule_InputParameter != null)
            {
                requestConfigRule_configRule_InputParameter = cmdletContext.ConfigRule_InputParameter;
            }
            if (requestConfigRule_configRule_InputParameter != null)
            {
                request.ConfigRule.InputParameters = requestConfigRule_configRule_InputParameter;
                requestConfigRuleIsNull            = false;
            }
            Amazon.ConfigService.MaximumExecutionFrequency requestConfigRule_configRule_MaximumExecutionFrequency = null;
            if (cmdletContext.ConfigRule_MaximumExecutionFrequency != null)
            {
                requestConfigRule_configRule_MaximumExecutionFrequency = cmdletContext.ConfigRule_MaximumExecutionFrequency;
            }
            if (requestConfigRule_configRule_MaximumExecutionFrequency != null)
            {
                request.ConfigRule.MaximumExecutionFrequency = requestConfigRule_configRule_MaximumExecutionFrequency;
                requestConfigRuleIsNull = false;
            }
            Amazon.ConfigService.Model.Source requestConfigRule_configRule_Source = null;

            // populate Source
            var requestConfigRule_configRule_SourceIsNull = true;

            requestConfigRule_configRule_Source = new Amazon.ConfigService.Model.Source();
            Amazon.ConfigService.Owner requestConfigRule_configRule_Source_source_Owner = null;
            if (cmdletContext.Source_Owner != null)
            {
                requestConfigRule_configRule_Source_source_Owner = cmdletContext.Source_Owner;
            }
            if (requestConfigRule_configRule_Source_source_Owner != null)
            {
                requestConfigRule_configRule_Source.Owner = requestConfigRule_configRule_Source_source_Owner;
                requestConfigRule_configRule_SourceIsNull = false;
            }
            List <Amazon.ConfigService.Model.SourceDetail> requestConfigRule_configRule_Source_source_SourceDetail = null;

            if (cmdletContext.Source_SourceDetail != null)
            {
                requestConfigRule_configRule_Source_source_SourceDetail = cmdletContext.Source_SourceDetail;
            }
            if (requestConfigRule_configRule_Source_source_SourceDetail != null)
            {
                requestConfigRule_configRule_Source.SourceDetails = requestConfigRule_configRule_Source_source_SourceDetail;
                requestConfigRule_configRule_SourceIsNull         = false;
            }
            System.String requestConfigRule_configRule_Source_source_SourceIdentifier = null;
            if (cmdletContext.Source_SourceIdentifier != null)
            {
                requestConfigRule_configRule_Source_source_SourceIdentifier = cmdletContext.Source_SourceIdentifier;
            }
            if (requestConfigRule_configRule_Source_source_SourceIdentifier != null)
            {
                requestConfigRule_configRule_Source.SourceIdentifier = requestConfigRule_configRule_Source_source_SourceIdentifier;
                requestConfigRule_configRule_SourceIsNull            = false;
            }
            // determine if requestConfigRule_configRule_Source should be set to null
            if (requestConfigRule_configRule_SourceIsNull)
            {
                requestConfigRule_configRule_Source = null;
            }
            if (requestConfigRule_configRule_Source != null)
            {
                request.ConfigRule.Source = requestConfigRule_configRule_Source;
                requestConfigRuleIsNull   = false;
            }
            Amazon.ConfigService.Model.Scope requestConfigRule_configRule_Scope = null;

            // populate Scope
            var requestConfigRule_configRule_ScopeIsNull = true;

            requestConfigRule_configRule_Scope = new Amazon.ConfigService.Model.Scope();
            System.String requestConfigRule_configRule_Scope_scope_ComplianceResourceId = null;
            if (cmdletContext.Scope_ComplianceResourceId != null)
            {
                requestConfigRule_configRule_Scope_scope_ComplianceResourceId = cmdletContext.Scope_ComplianceResourceId;
            }
            if (requestConfigRule_configRule_Scope_scope_ComplianceResourceId != null)
            {
                requestConfigRule_configRule_Scope.ComplianceResourceId = requestConfigRule_configRule_Scope_scope_ComplianceResourceId;
                requestConfigRule_configRule_ScopeIsNull = false;
            }
            List <System.String> requestConfigRule_configRule_Scope_scope_ComplianceResourceType = null;

            if (cmdletContext.Scope_ComplianceResourceType != null)
            {
                requestConfigRule_configRule_Scope_scope_ComplianceResourceType = cmdletContext.Scope_ComplianceResourceType;
            }
            if (requestConfigRule_configRule_Scope_scope_ComplianceResourceType != null)
            {
                requestConfigRule_configRule_Scope.ComplianceResourceTypes = requestConfigRule_configRule_Scope_scope_ComplianceResourceType;
                requestConfigRule_configRule_ScopeIsNull = false;
            }
            System.String requestConfigRule_configRule_Scope_scope_TagKey = null;
            if (cmdletContext.Scope_TagKey != null)
            {
                requestConfigRule_configRule_Scope_scope_TagKey = cmdletContext.Scope_TagKey;
            }
            if (requestConfigRule_configRule_Scope_scope_TagKey != null)
            {
                requestConfigRule_configRule_Scope.TagKey = requestConfigRule_configRule_Scope_scope_TagKey;
                requestConfigRule_configRule_ScopeIsNull  = false;
            }
            System.String requestConfigRule_configRule_Scope_scope_TagValue = null;
            if (cmdletContext.Scope_TagValue != null)
            {
                requestConfigRule_configRule_Scope_scope_TagValue = cmdletContext.Scope_TagValue;
            }
            if (requestConfigRule_configRule_Scope_scope_TagValue != null)
            {
                requestConfigRule_configRule_Scope.TagValue = requestConfigRule_configRule_Scope_scope_TagValue;
                requestConfigRule_configRule_ScopeIsNull    = false;
            }
            // determine if requestConfigRule_configRule_Scope should be set to null
            if (requestConfigRule_configRule_ScopeIsNull)
            {
                requestConfigRule_configRule_Scope = null;
            }
            if (requestConfigRule_configRule_Scope != null)
            {
                request.ConfigRule.Scope = requestConfigRule_configRule_Scope;
                requestConfigRuleIsNull  = false;
            }
            // determine if request.ConfigRule should be set to null
            if (requestConfigRuleIsNull)
            {
                request.ConfigRule = null;
            }
            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);
        }