def __init__(__self__, additional_capabilities=None, automatic_repairs_policy=None, do_not_run_extensions_on_overprovisioned_vms=None, extended_location=None, host_group=None, id=None, identity=None, location=None, name=None, orchestration_mode=None, overprovision=None, plan=None, platform_fault_domain_count=None, provisioning_state=None, proximity_placement_group=None, scale_in_policy=None, single_placement_group=None, sku=None, tags=None, type=None, unique_id=None, upgrade_policy=None, virtual_machine_profile=None, zone_balance=None, zones=None):
    if (additional_capabilities and (not isinstance(additional_capabilities, dict))):
        raise TypeError("Expected argument 'additional_capabilities' to be a dict")
    pulumi.set(__self__, 'additional_capabilities', additional_capabilities)
    if (automatic_repairs_policy and (not isinstance(automatic_repairs_policy, dict))):
        raise TypeError("Expected argument 'automatic_repairs_policy' to be a dict")
    pulumi.set(__self__, 'automatic_repairs_policy', automatic_repairs_policy)
    if (do_not_run_extensions_on_overprovisioned_vms and (not isinstance(do_not_run_extensions_on_overprovisioned_vms, bool))):
        raise TypeError("Expected argument 'do_not_run_extensions_on_overprovisioned_vms' to be a bool")
    pulumi.set(__self__, 'do_not_run_extensions_on_overprovisioned_vms', do_not_run_extensions_on_overprovisioned_vms)
    if (extended_location and (not isinstance(extended_location, dict))):
        raise TypeError("Expected argument 'extended_location' to be a dict")
    pulumi.set(__self__, 'extended_location', extended_location)
    if (host_group and (not isinstance(host_group, dict))):
        raise TypeError("Expected argument 'host_group' to be a dict")
    pulumi.set(__self__, 'host_group', host_group)
    if (id and (not isinstance(id, str))):
        raise TypeError("Expected argument 'id' to be a str")
    pulumi.set(__self__, 'id', id)
    if (identity and (not isinstance(identity, dict))):
        raise TypeError("Expected argument 'identity' to be a dict")
    pulumi.set(__self__, 'identity', identity)
    if (location and (not isinstance(location, str))):
        raise TypeError("Expected argument 'location' to be a str")
    pulumi.set(__self__, 'location', location)
    if (name and (not isinstance(name, str))):
        raise TypeError("Expected argument 'name' to be a str")
    pulumi.set(__self__, 'name', name)
    if (orchestration_mode and (not isinstance(orchestration_mode, str))):
        raise TypeError("Expected argument 'orchestration_mode' to be a str")
    pulumi.set(__self__, 'orchestration_mode', orchestration_mode)
    if (overprovision and (not isinstance(overprovision, bool))):
        raise TypeError("Expected argument 'overprovision' to be a bool")
    pulumi.set(__self__, 'overprovision', overprovision)
    if (plan and (not isinstance(plan, dict))):
        raise TypeError("Expected argument 'plan' to be a dict")
    pulumi.set(__self__, 'plan', plan)
    if (platform_fault_domain_count and (not isinstance(platform_fault_domain_count, int))):
        raise TypeError("Expected argument 'platform_fault_domain_count' to be a int")
    pulumi.set(__self__, 'platform_fault_domain_count', platform_fault_domain_count)
    if (provisioning_state and (not isinstance(provisioning_state, str))):
        raise TypeError("Expected argument 'provisioning_state' to be a str")
    pulumi.set(__self__, 'provisioning_state', provisioning_state)
    if (proximity_placement_group and (not isinstance(proximity_placement_group, dict))):
        raise TypeError("Expected argument 'proximity_placement_group' to be a dict")
    pulumi.set(__self__, 'proximity_placement_group', proximity_placement_group)
    if (scale_in_policy and (not isinstance(scale_in_policy, dict))):
        raise TypeError("Expected argument 'scale_in_policy' to be a dict")
    pulumi.set(__self__, 'scale_in_policy', scale_in_policy)
    if (single_placement_group and (not isinstance(single_placement_group, bool))):
        raise TypeError("Expected argument 'single_placement_group' to be a bool")
    pulumi.set(__self__, 'single_placement_group', single_placement_group)
    if (sku and (not isinstance(sku, dict))):
        raise TypeError("Expected argument 'sku' to be a dict")
    pulumi.set(__self__, 'sku', sku)
    if (tags and (not isinstance(tags, dict))):
        raise TypeError("Expected argument 'tags' to be a dict")
    pulumi.set(__self__, 'tags', tags)
    if (type and (not isinstance(type, str))):
        raise TypeError("Expected argument 'type' to be a str")
    pulumi.set(__self__, 'type', type)
    if (unique_id and (not isinstance(unique_id, str))):
        raise TypeError("Expected argument 'unique_id' to be a str")
    pulumi.set(__self__, 'unique_id', unique_id)
    if (upgrade_policy and (not isinstance(upgrade_policy, dict))):
        raise TypeError("Expected argument 'upgrade_policy' to be a dict")
    pulumi.set(__self__, 'upgrade_policy', upgrade_policy)
    if (virtual_machine_profile and (not isinstance(virtual_machine_profile, dict))):
        raise TypeError("Expected argument 'virtual_machine_profile' to be a dict")
    pulumi.set(__self__, 'virtual_machine_profile', virtual_machine_profile)
    if (zone_balance and (not isinstance(zone_balance, bool))):
        raise TypeError("Expected argument 'zone_balance' to be a bool")
    pulumi.set(__self__, 'zone_balance', zone_balance)
    if (zones and (not isinstance(zones, list))):
        raise TypeError("Expected argument 'zones' to be a list")
    pulumi.set(__self__, 'zones', zones)
def __init__(__self__, additional_capabilities=None, automatic_repairs_policy=None, do_not_run_extensions_on_overprovisioned_vms=None, extended_location=None, host_group=None, id=None, identity=None, location=None, name=None, orchestration_mode=None, overprovision=None, plan=None, platform_fault_domain_count=None, provisioning_state=None, proximity_placement_group=None, scale_in_policy=None, single_placement_group=None, sku=None, tags=None, type=None, unique_id=None, upgrade_policy=None, virtual_machine_profile=None, zone_balance=None, zones=None):
    if (additional_capabilities and (not isinstance(additional_capabilities, dict))):
        raise TypeError("Expected argument 'additional_capabilities' to be a dict")
    pulumi.set(__self__, 'additional_capabilities', additional_capabilities)
    if (automatic_repairs_policy and (not isinstance(automatic_repairs_policy, dict))):
        raise TypeError("Expected argument 'automatic_repairs_policy' to be a dict")
    pulumi.set(__self__, 'automatic_repairs_policy', automatic_repairs_policy)
    if (do_not_run_extensions_on_overprovisioned_vms and (not isinstance(do_not_run_extensions_on_overprovisioned_vms, bool))):
        raise TypeError("Expected argument 'do_not_run_extensions_on_overprovisioned_vms' to be a bool")
    pulumi.set(__self__, 'do_not_run_extensions_on_overprovisioned_vms', do_not_run_extensions_on_overprovisioned_vms)
    if (extended_location and (not isinstance(extended_location, dict))):
        raise TypeError("Expected argument 'extended_location' to be a dict")
    pulumi.set(__self__, 'extended_location', extended_location)
    if (host_group and (not isinstance(host_group, dict))):
        raise TypeError("Expected argument 'host_group' to be a dict")
    pulumi.set(__self__, 'host_group', host_group)
    if (id and (not isinstance(id, str))):
        raise TypeError("Expected argument 'id' to be a str")
    pulumi.set(__self__, 'id', id)
    if (identity and (not isinstance(identity, dict))):
        raise TypeError("Expected argument 'identity' to be a dict")
    pulumi.set(__self__, 'identity', identity)
    if (location and (not isinstance(location, str))):
        raise TypeError("Expected argument 'location' to be a str")
    pulumi.set(__self__, 'location', location)
    if (name and (not isinstance(name, str))):
        raise TypeError("Expected argument 'name' to be a str")
    pulumi.set(__self__, 'name', name)
    if (orchestration_mode and (not isinstance(orchestration_mode, str))):
        raise TypeError("Expected argument 'orchestration_mode' to be a str")
    pulumi.set(__self__, 'orchestration_mode', orchestration_mode)
    if (overprovision and (not isinstance(overprovision, bool))):
        raise TypeError("Expected argument 'overprovision' to be a bool")
    pulumi.set(__self__, 'overprovision', overprovision)
    if (plan and (not isinstance(plan, dict))):
        raise TypeError("Expected argument 'plan' to be a dict")
    pulumi.set(__self__, 'plan', plan)
    if (platform_fault_domain_count and (not isinstance(platform_fault_domain_count, int))):
        raise TypeError("Expected argument 'platform_fault_domain_count' to be a int")
    pulumi.set(__self__, 'platform_fault_domain_count', platform_fault_domain_count)
    if (provisioning_state and (not isinstance(provisioning_state, str))):
        raise TypeError("Expected argument 'provisioning_state' to be a str")
    pulumi.set(__self__, 'provisioning_state', provisioning_state)
    if (proximity_placement_group and (not isinstance(proximity_placement_group, dict))):
        raise TypeError("Expected argument 'proximity_placement_group' to be a dict")
    pulumi.set(__self__, 'proximity_placement_group', proximity_placement_group)
    if (scale_in_policy and (not isinstance(scale_in_policy, dict))):
        raise TypeError("Expected argument 'scale_in_policy' to be a dict")
    pulumi.set(__self__, 'scale_in_policy', scale_in_policy)
    if (single_placement_group and (not isinstance(single_placement_group, bool))):
        raise TypeError("Expected argument 'single_placement_group' to be a bool")
    pulumi.set(__self__, 'single_placement_group', single_placement_group)
    if (sku and (not isinstance(sku, dict))):
        raise TypeError("Expected argument 'sku' to be a dict")
    pulumi.set(__self__, 'sku', sku)
    if (tags and (not isinstance(tags, dict))):
        raise TypeError("Expected argument 'tags' to be a dict")
    pulumi.set(__self__, 'tags', tags)
    if (type and (not isinstance(type, str))):
        raise TypeError("Expected argument 'type' to be a str")
    pulumi.set(__self__, 'type', type)
    if (unique_id and (not isinstance(unique_id, str))):
        raise TypeError("Expected argument 'unique_id' to be a str")
    pulumi.set(__self__, 'unique_id', unique_id)
    if (upgrade_policy and (not isinstance(upgrade_policy, dict))):
        raise TypeError("Expected argument 'upgrade_policy' to be a dict")
    pulumi.set(__self__, 'upgrade_policy', upgrade_policy)
    if (virtual_machine_profile and (not isinstance(virtual_machine_profile, dict))):
        raise TypeError("Expected argument 'virtual_machine_profile' to be a dict")
    pulumi.set(__self__, 'virtual_machine_profile', virtual_machine_profile)
    if (zone_balance and (not isinstance(zone_balance, bool))):
        raise TypeError("Expected argument 'zone_balance' to be a bool")
    pulumi.set(__self__, 'zone_balance', zone_balance)
    if (zones and (not isinstance(zones, list))):
        raise TypeError("Expected argument 'zones' to be a list")
    pulumi.set(__self__, 'zones', zones)