@Override
    public PutConfigRuleResult putConfigRule(PutConfigRuleRequest request) {
        request = beforeClientExecution(request);
        return executePutConfigRule(request);
    }
@ Override public PutConfigRuleResult putConfigRule ( PutConfigRuleRequest request ) { request = beforeClientExecution ( request ) ; return executePutConfigRule ( request ) ; }
<p>
Adds or updates an AWS Config rule for evaluating whether your AWS resources comply with your desired
configurations.
</p>
<p>
You can use this action for custom AWS Config rules and AWS managed Config rules. A custom AWS Config rule is a
rule that you develop and maintain. An AWS managed Config rule is a customizable, predefined rule that AWS Config
provides.
</p>
<p>
If you are adding a new custom AWS Config rule, you must first create the AWS Lambda function that the rule
invokes to evaluate your resources. When you use the <code>PutConfigRule</code> action to add the rule to AWS
Config, you must specify the Amazon Resource Name (ARN) that AWS Lambda assigns to the function. Specify the ARN
for the <code>SourceIdentifier</code> key. This key is part of the <code>Source</code> object, which is part of
the <code>ConfigRule</code> object.
</p>
<p>
If you are adding an AWS managed Config rule, specify the rule's identifier for the <code>SourceIdentifier</code>
key. To reference AWS managed Config rule identifiers, see <a
href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html">About AWS
Managed Config Rules</a>.
</p>
<p>
For any new rule that you add, specify the <code>ConfigRuleName</code> in the <code>ConfigRule</code> object. Do
not specify the <code>ConfigRuleArn</code> or the <code>ConfigRuleId</code>. These values are generated by AWS
Config for new rules.
</p>
<p>
If you are updating a rule that you added previously, you can specify the rule by <code>ConfigRuleName</code>,
<code>ConfigRuleId</code>, or <code>ConfigRuleArn</code> in the <code>ConfigRule</code> data type that you use in
this request.
</p>
<p>
The maximum number of rules that AWS Config supports is 150.
</p>
<p>
For information about requesting a rule limit increase, see <a
href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config">AWS Config Limits</a>
in the <i>AWS General Reference Guide</i>.
</p>
<p>
For more information about developing and using AWS Config rules, see <a
href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html">Evaluating AWS Resource
Configurations with AWS Config</a> in the <i>AWS Config Developer Guide</i>.
</p>

@param putConfigRuleRequest
@return Result of the PutConfigRule operation returned by the service.
@throws InvalidParameterValueException
One or more of the specified parameters are invalid. Verify that your parameters are valid and try again.
@throws MaxNumberOfConfigRulesExceededException
Failed to add the AWS Config rule because the account already contains the maximum number of 50 rules.
Consider deleting any deactivated rules before you add new rules.
@throws ResourceInUseException
The rule is currently being deleted or the rule is deleting your evaluation results. Try your request
again later.
@throws InsufficientPermissionsException
Indicates one of the following errors:</p>
<ul>
<li>
<p>
The rule cannot be created because the IAM role assigned to AWS Config lacks permissions to perform the
config:Put* action.
</p>
</li>
<li>
<p>
The AWS Lambda function cannot be invoked. Check the function ARN, and check the function's permissions.
</p>
</li>
@throws NoAvailableConfigurationRecorderException
There are no configuration recorders available to provide the role needed to describe your resources.
Create a configuration recorder.
@sample AmazonConfig.PutConfigRule
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigRule" target="_top">AWS API
Documentation</a>