<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def create_identity_pool(IdentityPoolName,
                         AllowUnauthenticatedIdentities=False,
                         SupportedLoginProviders=None,
                         DeveloperProviderName=None,
                         OpenIdConnectProviderARNs=None,
                         region=None, key=None, keyid=None, profile=None):
    '''
    Creates a new identity pool.  All parameters except for IdentityPoolName is optional.
    SupportedLoginProviders should be a dictionary mapping provider names to provider app
    IDs.  OpenIdConnectProviderARNs should be a list of OpenID Connect provider ARNs.

    Returns the created identity pool if successful

    CLI Example:

    .. code-block:: bash

        salt myminion boto_cognitoidentity.create_identity_pool my_id_pool_name \
                             DeveloperProviderName=custom_developer_provider

    '''
    SupportedLoginProviders = dict() if SupportedLoginProviders is None else SupportedLoginProviders
    OpenIdConnectProviderARNs = list() if OpenIdConnectProviderARNs is None else OpenIdConnectProviderARNs

    conn = _get_conn(region=region, key=key, keyid=keyid, profile=profile)

    try:
        request_params = dict(IdentityPoolName=IdentityPoolName,
                              AllowUnauthenticatedIdentities=AllowUnauthenticatedIdentities,
                              SupportedLoginProviders=SupportedLoginProviders,
                              OpenIdConnectProviderARNs=OpenIdConnectProviderARNs)
        if DeveloperProviderName:
            request_params['DeveloperProviderName'] = DeveloperProviderName

        response = conn.create_identity_pool(**request_params)
        response.pop('ResponseMetadata', None)

        return {'created': True, 'identity_pool': response}
    except ClientError as e:
        return {'created': False, 'error': __utils__['boto3.get_error'](e)}