def _update_instance()

in src/monitor-control-service/azext_amcs/aaz/latest/monitor/data_collection/rule/_update.py [0:0]


        def _update_instance(self, instance):
            _instance_value, _builder = self.new_content_builder(
                self.ctx.args,
                value=instance,
                typ=AAZObjectType
            )
            _builder.set_prop("identity", AAZObjectType, ".identity")
            _builder.set_prop("kind", AAZStrType, ".kind")
            _builder.set_prop("properties", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}})
            _builder.set_prop("tags", AAZDictType, ".tags")

            identity = _builder.get(".identity")
            if identity is not None:
                identity.set_prop("type", AAZStrType, ".type", typ_kwargs={"flags": {"required": True}})
                identity.set_prop("userAssignedIdentities", AAZDictType, ".user_assigned_identities")

            user_assigned_identities = _builder.get(".identity.userAssignedIdentities")
            if user_assigned_identities is not None:
                user_assigned_identities.set_elements(AAZObjectType, ".", typ_kwargs={"nullable": True})

            properties = _builder.get(".properties")
            if properties is not None:
                properties.set_prop("agentSettings", AAZObjectType, ".agent_settings")
                properties.set_prop("dataCollectionEndpointId", AAZStrType, ".data_collection_endpoint_id")
                properties.set_prop("dataFlows", AAZListType, ".data_flows_raw")
                properties.set_prop("dataSources", AAZObjectType, ".data_sources")
                properties.set_prop("description", AAZStrType, ".description")
                properties.set_prop("destinations", AAZObjectType, ".destinations")
                properties.set_prop("references", AAZObjectType, ".references")
                properties.set_prop("streamDeclarations", AAZDictType, ".stream_declarations")

            agent_settings = _builder.get(".properties.agentSettings")
            if agent_settings is not None:
                agent_settings.set_prop("logs", AAZListType, ".logs")

            logs = _builder.get(".properties.agentSettings.logs")
            if logs is not None:
                logs.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.agentSettings.logs[]")
            if _elements is not None:
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("value", AAZStrType, ".value")

            data_flows = _builder.get(".properties.dataFlows")
            if data_flows is not None:
                data_flows.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.dataFlows[]")
            if _elements is not None:
                _elements.set_prop("builtInTransform", AAZStrType, ".built_in_transform")
                _elements.set_prop("captureOverflow", AAZBoolType, ".capture_overflow")
                _elements.set_prop("destinations", AAZListType, ".destinations")
                _elements.set_prop("outputStream", AAZStrType, ".output_stream")
                _elements.set_prop("streams", AAZListType, ".streams")
                _elements.set_prop("transformKql", AAZStrType, ".transform_kql")

            destinations = _builder.get(".properties.dataFlows[].destinations")
            if destinations is not None:
                destinations.set_elements(AAZStrType, ".")

            streams = _builder.get(".properties.dataFlows[].streams")
            if streams is not None:
                streams.set_elements(AAZStrType, ".")

            data_sources = _builder.get(".properties.dataSources")
            if data_sources is not None:
                data_sources.set_prop("dataImports", AAZObjectType, ".data_imports")
                data_sources.set_prop("extensions", AAZListType, ".extensions")
                data_sources.set_prop("iisLogs", AAZListType, ".iis_logs")
                data_sources.set_prop("logFiles", AAZListType, ".log_files")
                data_sources.set_prop("performanceCounters", AAZListType, ".performance_counters")
                data_sources.set_prop("platformTelemetry", AAZListType, ".platform_telemetry")
                data_sources.set_prop("prometheusForwarder", AAZListType, ".prometheus_forwarder")
                data_sources.set_prop("syslog", AAZListType, ".syslog")
                data_sources.set_prop("windowsEventLogs", AAZListType, ".windows_event_logs")
                data_sources.set_prop("windowsFirewallLogs", AAZListType, ".windows_firewall_logs")

            data_imports = _builder.get(".properties.dataSources.dataImports")
            if data_imports is not None:
                data_imports.set_prop("eventHub", AAZObjectType, ".event_hub")

            event_hub = _builder.get(".properties.dataSources.dataImports.eventHub")
            if event_hub is not None:
                event_hub.set_prop("consumerGroup", AAZStrType, ".consumer_group")
                event_hub.set_prop("name", AAZStrType, ".name")
                event_hub.set_prop("stream", AAZStrType, ".stream")

            extensions = _builder.get(".properties.dataSources.extensions")
            if extensions is not None:
                extensions.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.dataSources.extensions[]")
            if _elements is not None:
                _elements.set_prop("extensionName", AAZStrType, ".extension_name", typ_kwargs={"flags": {"required": True}})
                _elements.set_prop("extensionSettings", AAZFreeFormDictType, ".extension_settings")
                _elements.set_prop("inputDataSources", AAZListType, ".input_data_sources")
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("streams", AAZListType, ".streams")

            extension_settings = _builder.get(".properties.dataSources.extensions[].extensionSettings")
            if extension_settings is not None:
                extension_settings.set_anytype_elements(".")

            input_data_sources = _builder.get(".properties.dataSources.extensions[].inputDataSources")
            if input_data_sources is not None:
                input_data_sources.set_elements(AAZStrType, ".")

            streams = _builder.get(".properties.dataSources.extensions[].streams")
            if streams is not None:
                streams.set_elements(AAZStrType, ".")

            iis_logs = _builder.get(".properties.dataSources.iisLogs")
            if iis_logs is not None:
                iis_logs.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.dataSources.iisLogs[]")
            if _elements is not None:
                _elements.set_prop("logDirectories", AAZListType, ".log_directories")
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("streams", AAZListType, ".streams", typ_kwargs={"flags": {"required": True}})
                _elements.set_prop("transformKql", AAZStrType, ".transform_kql")

            log_directories = _builder.get(".properties.dataSources.iisLogs[].logDirectories")
            if log_directories is not None:
                log_directories.set_elements(AAZStrType, ".")

            streams = _builder.get(".properties.dataSources.iisLogs[].streams")
            if streams is not None:
                streams.set_elements(AAZStrType, ".")

            log_files = _builder.get(".properties.dataSources.logFiles")
            if log_files is not None:
                log_files.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.dataSources.logFiles[]")
            if _elements is not None:
                _elements.set_prop("filePatterns", AAZListType, ".file_patterns", typ_kwargs={"flags": {"required": True}})
                _elements.set_prop("format", AAZStrType, ".format", typ_kwargs={"flags": {"required": True}})
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("settings", AAZObjectType, ".settings")
                _elements.set_prop("streams", AAZListType, ".streams", typ_kwargs={"flags": {"required": True}})
                _elements.set_prop("transformKql", AAZStrType, ".transform_kql")

            file_patterns = _builder.get(".properties.dataSources.logFiles[].filePatterns")
            if file_patterns is not None:
                file_patterns.set_elements(AAZStrType, ".")

            settings = _builder.get(".properties.dataSources.logFiles[].settings")
            if settings is not None:
                settings.set_prop("text", AAZObjectType, ".text")

            text = _builder.get(".properties.dataSources.logFiles[].settings.text")
            if text is not None:
                text.set_prop("recordStartTimestampFormat", AAZStrType, ".record_start_timestamp_format", typ_kwargs={"flags": {"required": True}})

            streams = _builder.get(".properties.dataSources.logFiles[].streams")
            if streams is not None:
                streams.set_elements(AAZStrType, ".")

            performance_counters = _builder.get(".properties.dataSources.performanceCounters")
            if performance_counters is not None:
                performance_counters.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.dataSources.performanceCounters[]")
            if _elements is not None:
                _elements.set_prop("counterSpecifiers", AAZListType, ".counter_specifiers")
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("samplingFrequencyInSeconds", AAZIntType, ".sampling_frequency_in_seconds")
                _elements.set_prop("streams", AAZListType, ".streams")
                _elements.set_prop("transformKql", AAZStrType, ".transform_kql")

            counter_specifiers = _builder.get(".properties.dataSources.performanceCounters[].counterSpecifiers")
            if counter_specifiers is not None:
                counter_specifiers.set_elements(AAZStrType, ".")

            streams = _builder.get(".properties.dataSources.performanceCounters[].streams")
            if streams is not None:
                streams.set_elements(AAZStrType, ".")

            platform_telemetry = _builder.get(".properties.dataSources.platformTelemetry")
            if platform_telemetry is not None:
                platform_telemetry.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.dataSources.platformTelemetry[]")
            if _elements is not None:
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("streams", AAZListType, ".streams", typ_kwargs={"flags": {"required": True}})

            streams = _builder.get(".properties.dataSources.platformTelemetry[].streams")
            if streams is not None:
                streams.set_elements(AAZStrType, ".")

            prometheus_forwarder = _builder.get(".properties.dataSources.prometheusForwarder")
            if prometheus_forwarder is not None:
                prometheus_forwarder.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.dataSources.prometheusForwarder[]")
            if _elements is not None:
                _elements.set_prop("labelIncludeFilter", AAZDictType, ".label_include_filter")
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("streams", AAZListType, ".streams")

            label_include_filter = _builder.get(".properties.dataSources.prometheusForwarder[].labelIncludeFilter")
            if label_include_filter is not None:
                label_include_filter.set_elements(AAZStrType, ".")

            streams = _builder.get(".properties.dataSources.prometheusForwarder[].streams")
            if streams is not None:
                streams.set_elements(AAZStrType, ".")

            syslog = _builder.get(".properties.dataSources.syslog")
            if syslog is not None:
                syslog.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.dataSources.syslog[]")
            if _elements is not None:
                _elements.set_prop("facilityNames", AAZListType, ".facility_names")
                _elements.set_prop("logLevels", AAZListType, ".log_levels")
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("streams", AAZListType, ".streams")
                _elements.set_prop("transformKql", AAZStrType, ".transform_kql")

            facility_names = _builder.get(".properties.dataSources.syslog[].facilityNames")
            if facility_names is not None:
                facility_names.set_elements(AAZStrType, ".")

            log_levels = _builder.get(".properties.dataSources.syslog[].logLevels")
            if log_levels is not None:
                log_levels.set_elements(AAZStrType, ".")

            streams = _builder.get(".properties.dataSources.syslog[].streams")
            if streams is not None:
                streams.set_elements(AAZStrType, ".")

            windows_event_logs = _builder.get(".properties.dataSources.windowsEventLogs")
            if windows_event_logs is not None:
                windows_event_logs.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.dataSources.windowsEventLogs[]")
            if _elements is not None:
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("streams", AAZListType, ".streams")
                _elements.set_prop("transformKql", AAZStrType, ".transform_kql")
                _elements.set_prop("xPathQueries", AAZListType, ".x_path_queries")

            streams = _builder.get(".properties.dataSources.windowsEventLogs[].streams")
            if streams is not None:
                streams.set_elements(AAZStrType, ".")

            x_path_queries = _builder.get(".properties.dataSources.windowsEventLogs[].xPathQueries")
            if x_path_queries is not None:
                x_path_queries.set_elements(AAZStrType, ".")

            windows_firewall_logs = _builder.get(".properties.dataSources.windowsFirewallLogs")
            if windows_firewall_logs is not None:
                windows_firewall_logs.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.dataSources.windowsFirewallLogs[]")
            if _elements is not None:
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("profileFilter", AAZListType, ".profile_filter")
                _elements.set_prop("streams", AAZListType, ".streams", typ_kwargs={"flags": {"required": True}})

            profile_filter = _builder.get(".properties.dataSources.windowsFirewallLogs[].profileFilter")
            if profile_filter is not None:
                profile_filter.set_elements(AAZStrType, ".")

            streams = _builder.get(".properties.dataSources.windowsFirewallLogs[].streams")
            if streams is not None:
                streams.set_elements(AAZStrType, ".")

            destinations = _builder.get(".properties.destinations")
            if destinations is not None:
                destinations.set_prop("azureDataExplorer", AAZListType, ".azure_data_explorer")
                destinations.set_prop("azureMonitorMetrics", AAZObjectType, ".azure_monitor_metrics")
                destinations.set_prop("eventHubs", AAZListType, ".event_hubs")
                destinations.set_prop("eventHubsDirect", AAZListType, ".event_hubs_direct")
                destinations.set_prop("logAnalytics", AAZListType, ".log_analytics")
                destinations.set_prop("microsoftFabric", AAZListType, ".microsoft_fabric")
                destinations.set_prop("monitoringAccounts", AAZListType, ".monitoring_accounts")
                destinations.set_prop("storageAccounts", AAZListType, ".storage_accounts")
                destinations.set_prop("storageBlobsDirect", AAZListType, ".storage_blobs_direct")
                destinations.set_prop("storageTablesDirect", AAZListType, ".storage_tables_direct")

            azure_data_explorer = _builder.get(".properties.destinations.azureDataExplorer")
            if azure_data_explorer is not None:
                azure_data_explorer.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.destinations.azureDataExplorer[]")
            if _elements is not None:
                _elements.set_prop("databaseName", AAZStrType, ".database_name")
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("resourceId", AAZStrType, ".resource_id")

            azure_monitor_metrics = _builder.get(".properties.destinations.azureMonitorMetrics")
            if azure_monitor_metrics is not None:
                azure_monitor_metrics.set_prop("name", AAZStrType, ".name")

            event_hubs = _builder.get(".properties.destinations.eventHubs")
            if event_hubs is not None:
                event_hubs.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.destinations.eventHubs[]")
            if _elements is not None:
                _elements.set_prop("eventHubResourceId", AAZStrType, ".event_hub_resource_id")
                _elements.set_prop("name", AAZStrType, ".name")

            event_hubs_direct = _builder.get(".properties.destinations.eventHubsDirect")
            if event_hubs_direct is not None:
                event_hubs_direct.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.destinations.eventHubsDirect[]")
            if _elements is not None:
                _elements.set_prop("eventHubResourceId", AAZStrType, ".event_hub_resource_id")
                _elements.set_prop("name", AAZStrType, ".name")

            log_analytics = _builder.get(".properties.destinations.logAnalytics")
            if log_analytics is not None:
                log_analytics.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.destinations.logAnalytics[]")
            if _elements is not None:
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("workspaceResourceId", AAZStrType, ".workspace_resource_id")

            microsoft_fabric = _builder.get(".properties.destinations.microsoftFabric")
            if microsoft_fabric is not None:
                microsoft_fabric.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.destinations.microsoftFabric[]")
            if _elements is not None:
                _elements.set_prop("artifactId", AAZStrType, ".artifact_id")
                _elements.set_prop("databaseName", AAZStrType, ".database_name")
                _elements.set_prop("ingestionUri", AAZStrType, ".ingestion_uri")
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("tenantId", AAZStrType, ".tenant_id")

            monitoring_accounts = _builder.get(".properties.destinations.monitoringAccounts")
            if monitoring_accounts is not None:
                monitoring_accounts.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.destinations.monitoringAccounts[]")
            if _elements is not None:
                _elements.set_prop("accountResourceId", AAZStrType, ".account_resource_id")
                _elements.set_prop("name", AAZStrType, ".name")

            storage_accounts = _builder.get(".properties.destinations.storageAccounts")
            if storage_accounts is not None:
                _UpdateHelper._build_schema_storage_blob_destination_update(storage_accounts.set_elements(AAZObjectType, "."))

            storage_blobs_direct = _builder.get(".properties.destinations.storageBlobsDirect")
            if storage_blobs_direct is not None:
                _UpdateHelper._build_schema_storage_blob_destination_update(storage_blobs_direct.set_elements(AAZObjectType, "."))

            storage_tables_direct = _builder.get(".properties.destinations.storageTablesDirect")
            if storage_tables_direct is not None:
                storage_tables_direct.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.destinations.storageTablesDirect[]")
            if _elements is not None:
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("storageAccountResourceId", AAZStrType, ".storage_account_resource_id")
                _elements.set_prop("tableName", AAZStrType, ".table_name")

            references = _builder.get(".properties.references")
            if references is not None:
                references.set_prop("enrichmentData", AAZObjectType, ".enrichment_data")

            enrichment_data = _builder.get(".properties.references.enrichmentData")
            if enrichment_data is not None:
                enrichment_data.set_prop("storageBlobs", AAZListType, ".storage_blobs")

            storage_blobs = _builder.get(".properties.references.enrichmentData.storageBlobs")
            if storage_blobs is not None:
                storage_blobs.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.references.enrichmentData.storageBlobs[]")
            if _elements is not None:
                _elements.set_prop("blobUrl", AAZStrType, ".blob_url")
                _elements.set_prop("lookupType", AAZStrType, ".lookup_type")
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("resourceId", AAZStrType, ".resource_id")

            stream_declarations = _builder.get(".properties.streamDeclarations")
            if stream_declarations is not None:
                stream_declarations.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.streamDeclarations{}")
            if _elements is not None:
                _elements.set_prop("columns", AAZListType, ".columns")

            columns = _builder.get(".properties.streamDeclarations{}.columns")
            if columns is not None:
                columns.set_elements(AAZObjectType, ".")

            _elements = _builder.get(".properties.streamDeclarations{}.columns[]")
            if _elements is not None:
                _elements.set_prop("name", AAZStrType, ".name")
                _elements.set_prop("type", AAZStrType, ".type")

            tags = _builder.get(".tags")
            if tags is not None:
                tags.set_elements(AAZStrType, ".")

            return _instance_value