def submit_assign_sla(self, object_ids=[], sla_id=None, apply_to_existing_snapshots=None, existing_snapshot_retention=None, global_sla_assign_type="protectWithSlaId"):
    """Submits a Rubrik SLA change for objects

    Args:
        object_ids (list): List of Rubrik Object IDs
        global_sla_assign_type (str): Define assignment type noAssignment/doNotProtect/protectWithSlaId
        sla_id (str): Rubrik SLA Domain ID
        apply_to_existing_snapshots (bool): Apply retention policy to pre-existing snapshots
        existing_snapshot_retention (str): Snapshot handling on doNotProtect RETAIN_SNAPSHOTS/KEEP_FOREVER/EXPIRE_IMMEDIATELY
        global_sla_assign_type (str): ...
    
    Returns:
        list: List of objects assigned the SLA

    Raises:
        RequestException: If the query to Polaris returned an error
    
    Examples:
        >>> object_ids = client.get_object_ids_gce(region='us-west-1')
        >>> sla_domain_id = client.get_sla_domains('Gold')[0]['id']
        >>> client.submit_assign_sla(object_ids, sla_domain_id)
    """

    try:
        mutation_name = "core_sla_assign"
        variables = {
            "shouldApplyToExistingSnapshots": apply_to_existing_snapshots,
            "existingSnapshotRetention": existing_snapshot_retention,
            "globalSlaAssignType": global_sla_assign_type,
            "objectIds": object_ids,
            "slaId": sla_id
        }
        response = self._query(mutation_name, variables)
        return response
    except Exception:
        raise