def authorize_cache_security_group_ingress(CacheSecurityGroupName=None,
    EC2SecurityGroupName=None, EC2SecurityGroupOwnerId=None):
    """
    Allows network ingress to a cache security group. Applications using ElastiCache must be running on Amazon EC2, and Amazon EC2 security groups are used as the authorization mechanism.
    See also: AWS API Documentation
    
    
    :example: response = client.authorize_cache_security_group_ingress(
        CacheSecurityGroupName='string',
        EC2SecurityGroupName='string',
        EC2SecurityGroupOwnerId='string'
    )
    
    
    :type CacheSecurityGroupName: string
    :param CacheSecurityGroupName: [REQUIRED]
            The cache security group that allows network ingress.
            

    :type EC2SecurityGroupName: string
    :param EC2SecurityGroupName: [REQUIRED]
            The Amazon EC2 security group to be authorized for ingress to the cache security group.
            

    :type EC2SecurityGroupOwnerId: string
    :param EC2SecurityGroupOwnerId: [REQUIRED]
            The AWS account number of the Amazon EC2 security group owner. Note that this is not the same thing as an AWS access key ID - you must provide a valid AWS account number for this parameter.
            

    :rtype: dict
    :return: {
        'CacheSecurityGroup': {
            'OwnerId': 'string',
            'CacheSecurityGroupName': 'string',
            'Description': 'string',
            'EC2SecurityGroups': [
                {
                    'Status': 'string',
                    'EC2SecurityGroupName': 'string',
                    'EC2SecurityGroupOwnerId': 'string'
                },
            ]
        }
    }
    
    
    :returns: 
    AuthorizeCacheSecurityGroupIngress
    CreateCacheSecurityGroup
    RevokeCacheSecurityGroupIngress
    
    """
    pass
