code: @Override
      public CreateUserPoolResult createUserPool(CreateUserPoolRequest request) {
          request = beforeClientExecution(request);
          return executeCreateUserPool(request);
      }
docs: <p>
  Creates a new Amazon Cognito user pool and sets the password policy for the pool.
  </p>
  
  @param createUserPoolRequest
  Represents the request to create a user pool.
  @return Result of the CreateUserPool operation returned by the service.
  @throws InvalidParameterException
  This exception is thrown when the Amazon Cognito service encounters an invalid parameter.
  @throws TooManyRequestsException
  This exception is thrown when the user has made too many requests for a given operation.
  @throws LimitExceededException
  This exception is thrown when a user exceeds the limit for a requested AWS resource.
  @throws InvalidSmsRoleAccessPolicyException
  This exception is returned when the role provided for SMS configuration does not have permission to
  publish using Amazon SNS.
  @throws InvalidSmsRoleTrustRelationshipException
  This exception is thrown when the trust relationship is invalid for the role provided for SMS
  configuration. This can happen if you do not trust <b>cognito-idp.amazonaws.com</b> or the external ID
  provided in the role does not match what is provided in the SMS configuration for the user pool.
  @throws InvalidEmailRoleAccessPolicyException
  This exception is thrown when Amazon Cognito is not allowed to use your email identity. HTTP status code:
  400.
  @throws NotAuthorizedException
  This exception is thrown when a user is not authorized.
  @throws UserPoolTaggingException
  This exception is thrown when a user pool tag cannot be set or updated.
  @throws InternalErrorException
  This exception is thrown when Amazon Cognito encounters an internal error.
  @sample AWSCognitoIdentityProvider.CreateUserPool
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateUserPool" target="_top">AWS API
  Documentation</a>