def METHOD_NAME(self, **fields):
    """Check that 1) the user has selected a valid protocol, 2) the user has not
    left the required fields blank, and 3) the user is not attempting to
    change the protocol of an existing admin auth service."""
    protocol = fields.get("protocol")
    auth_service = fields.get("auth_service")
    id = fields.get("id")
    if protocol:
        if protocol not in ExternalIntegration.ADMIN_AUTH_PROTOCOLS:
            return UNKNOWN_PROTOCOL
        else:
            wrong_format = self.validate_formats()
            if wrong_format:
                return wrong_format
    if auth_service:
        if id and int(id) != auth_service.id:
            return MISSING_SERVICE
        if protocol != auth_service.protocol:
            return CANNOT_CHANGE_PROTOCOL
    else:
        if id:
            return MISSING_SERVICE