def create_umw(creds,
               name,
               hostname,
               ip,
               label1=None,
               label2=None,
               label3=None,
               label4=None):
    label = []
    if label1:
        label.append({"href": label1})
    if label2:
        label.append({"href": label2})
    if label3:
        label.append({"href": label3})
    if label4:
        label.append({"href": label4})
    wl = {
        "name":
        name,
        "hostname":
        hostname,
        "public_ip":
        ip,
        "interfaces": [{
            "name": "eth0",
            "address": ip,
            "cidr_block": 32,
            "link_state": "up"
        }],
        "online":
        True,
        "labels":
        label
    }
    return sync_api(creds, "post", "/workloads", True, wl)
def update_label(creds, label_href, payload):
    return sync_api(creds, "put", label_href, False, payload)
def get_labels(creds):
    response = sync_api(creds, "get", "/labels?max_result=1", True)
    num_items_in_return_set = int(response.headers['X-Total-Count'])
    if num_items_in_return_set >= 500:
        response = async_api(creds, "/labels", True)
    return response
def get_label(creds, label_href):
    return sync_api(creds, "get", label_href, False)
def create_label(creds, type, name):
    return sync_api(creds, "post", "/labels", True, {
        "key": type,
        "value": name
    })
def update_workload(creds, workload_href, payload):
    return sync_api(creds, "put", workload_href, False, payload)