def automation_software_update_configuration_create()

in src/automation/azext_automation/manual/custom.py [0:0]


def automation_software_update_configuration_create(client, resource_group_name, automation_account_name,
                                                    software_update_configuration_name, frequency, interval,
                                                    operating_system, included_update_classifications=None,
                                                    excluded_kb_numbers=None, included_kb_numbers=None,
                                                    reboot_setting=None, duration=None, azure_virtual_machines=None,
                                                    non_azure_computer_names=None, azure_queries_scope=None,
                                                    azure_queries_locations=None, non_azure_queries_function_alias=None,
                                                    non_azure_queries_workspace_id=None, azure_queries_tags=None,
                                                    start_time=None, expiry_time=None, time_zone=None,
                                                    expiry_time_offset_minutes=None, is_enabled=None, next_run=None,
                                                    next_run_offset_minutes=None, creation_time=None,
                                                    last_modified_time=None, description=None, pre_task_status=None,
                                                    pre_task_source=None, pre_task_job_id=None, post_task_status=None,
                                                    post_task_source=None, post_task_job_id=None):
    parameters = {}
    update_configuration = {}
    update_configuration['operatingSystem'] = operating_system
    if operating_system == 'Windows':
        windows = {}
        if included_update_classifications is not None:
            windows['includedUpdateClassifications'] = included_update_classifications
        if excluded_kb_numbers is not None:
            windows['excludedKbNumbers'] = excluded_kb_numbers
        if included_kb_numbers is not None:
            windows['includedKbNumbers'] = included_kb_numbers
        if reboot_setting is not None:
            windows['rebootSetting'] = reboot_setting
        update_configuration['windows'] = windows
    if operating_system == 'Linux':
        linux = {}
        if included_update_classifications is not None:
            linux['includedUpdateClassifications'] = included_update_classifications
        if excluded_kb_numbers is not None:
            linux['excludedKbNumbers'] = excluded_kb_numbers
        if included_kb_numbers is not None:
            linux['includedKbNumbers'] = included_kb_numbers
        if reboot_setting is not None:
            linux['rebootSetting'] = reboot_setting
        update_configuration['linux'] = linux
    if duration is not None:
        update_configuration['duration'] = duration
    if azure_virtual_machines is not None:
        update_configuration['azureVirtualMachines'] = azure_virtual_machines
    if non_azure_computer_names:
        update_configuration['nonAzureComputerNames'] = non_azure_computer_names

    targets = {}
    azure_queries = {}
    if azure_queries_scope is not None:
        azure_queries['scope'] = azure_queries_scope
    if azure_queries_locations is not None:
        azure_queries['locations'] = azure_queries_locations
    if azure_queries_tags is not None:
        azure_queries['tagSettings'] = {'tags': {'tag': azure_queries_tags}}
    if azure_queries:
        targets['azureQueries'] = [azure_queries]

    non_azure_queries = {}
    if non_azure_queries_function_alias is not None:
        non_azure_queries['functionAlias'] = non_azure_queries_function_alias
    if non_azure_queries_workspace_id is not None:
        non_azure_queries['workspaceId'] = non_azure_queries_workspace_id
    if non_azure_queries:
        targets['nonAzureQueries'] = [non_azure_queries]

    if targets:
        update_configuration['targets'] = targets
    if update_configuration:
        parameters['updateConfiguration'] = update_configuration

    schedule_info = {}
    if start_time is not None:
        schedule_info['startTime'] = start_time
    if expiry_time is not None:
        schedule_info['expiryTime'] = expiry_time
    if expiry_time_offset_minutes is not None:
        schedule_info['expiryTimeOffsetMinutes'] = expiry_time_offset_minutes
    if is_enabled is not None:
        schedule_info['isEnabled'] = is_enabled
    if next_run is not None:
        schedule_info['nextRun'] = next_run
    if next_run_offset_minutes is not None:
        schedule_info['nextRunOffsetMinutes'] = next_run_offset_minutes
    if interval is not None:
        schedule_info['interval'] = interval
    if frequency is not None:
        schedule_info['frequency'] = frequency
    if time_zone is not None:
        schedule_info['timeZone'] = time_zone
    if creation_time is not None:
        schedule_info['creationTime'] = creation_time
    if last_modified_time is not None:
        schedule_info['lastModifiedTime'] = last_modified_time
    if description is not None:
        schedule_info['description'] = description
    if schedule_info:
        parameters['scheduleInfo'] = schedule_info

    tasks = {}
    pre_task = {}
    if pre_task_status is not None:
        pre_task['status'] = pre_task_status
    if pre_task_source is not None:
        pre_task['source'] = pre_task_source
    if pre_task_status is not None:
        pre_task['jobId'] = pre_task_job_id
    post_task = {}
    if post_task_status is not None:
        post_task['status'] = post_task_status
    if post_task_source is not None:
        post_task['source'] = post_task_source
    if post_task_status is not None:
        post_task['jobId'] = post_task_job_id

    if pre_task:
        tasks['preTask'] = pre_task
    if post_task:
        tasks['postTask'] = post_task
    if tasks:
        parameters['tasks'] = tasks

    return client.create(resource_group_name, automation_account_name, software_update_configuration_name, parameters)