@SdkInternalApi
    final DBParameterGroup executeCreateDBParameterGroup(CreateDBParameterGroupRequest createDBParameterGroupRequest) {

        ExecutionContext executionContext = createExecutionContext(createDBParameterGroupRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<CreateDBParameterGroupRequest> request = null;
        Response<DBParameterGroup> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new CreateDBParameterGroupRequestMarshaller().marshall(super.beforeMarshalling(createDBParameterGroupRequest));
                // Binds the request metrics to the current request.
                request.setAWSRequestMetrics(awsRequestMetrics);
                request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
                request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
                request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
                request.addHandlerContext(HandlerContextKey.SERVICE_ID, "RDS");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateDBParameterGroup");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

            } finally {
                awsRequestMetrics.endEvent(Field.RequestMarshallTime);
            }

            StaxResponseHandler<DBParameterGroup> responseHandler = new StaxResponseHandler<DBParameterGroup>(new DBParameterGroupStaxUnmarshaller());

            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Creates a new DB parameter group.
</p>
<p>
A DB parameter group is initially created with the default parameters for the database engine used by the DB
instance. To provide custom values for any of the parameters, you must modify the group after creating it using
<code>ModifyDBParameterGroup</code>. Once you've created a DB parameter group, you need to associate it with your
DB instance using <code>ModifyDBInstance</code>. When you associate a new DB parameter group with a running DB
instance, you need to reboot the DB instance without failover for the new DB parameter group and associated
settings to take effect.
</p>
<p>
This command doesn't apply to RDS Custom.
</p>
<important>
<p>
After you create a DB parameter group, you should wait at least 5 minutes before creating your first DB instance
that uses that DB parameter group as the default parameter group. This allows Amazon RDS to fully complete the
create action before the parameter group is used as the default for a new DB instance. This is especially
important for parameters that are critical when creating the default database for a DB instance, such as the
character set for the default database defined by the <code>character_set_database</code> parameter. You can use
the <i>Parameter Groups</i> option of the <a href="https://console.aws.amazon.com/rds/">Amazon RDS console</a> or
the <i>DescribeDBParameters</i> command to verify that your DB parameter group has been created or modified.
</p>
</important>

@param createDBParameterGroupRequest
@return Result of the CreateDBParameterGroup operation returned by the service.
@throws DBParameterGroupQuotaExceededException
        The request would result in the user exceeding the allowed number of DB parameter groups.
@throws DBParameterGroupAlreadyExistsException
        A DB parameter group with the same name exists.
@sample AmazonRDS.CreateDBParameterGroup
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBParameterGroup" target="_top">AWS API
     Documentation</a>
aws-java-sdk-rds/src/main/java/com/amazonaws/services/rds/AmazonRDSClient.java