def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions]=None, data_collection_rule_name: Optional[pulumi.Input[str]]=None, data_flows: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DataFlowArgs']]]]]=None, data_sources: Optional[pulumi.Input[pulumi.InputType['DataCollectionRuleDataSourcesArgs']]]=None, description: Optional[pulumi.Input[str]]=None, destinations: Optional[pulumi.Input[pulumi.InputType['DataCollectionRuleDestinationsArgs']]]=None, location: Optional[pulumi.Input[str]]=None, resource_group_name: Optional[pulumi.Input[str]]=None, tags: Optional[pulumi.Input[Mapping[(str, pulumi.Input[str])]]]=None, __props__=None, __name__=None, __opts__=None):
    "\n        Definition of ARM tracked top level resource.\n\n        :param str resource_name: The name of the resource.\n        :param pulumi.ResourceOptions opts: Options for the resource.\n        :param pulumi.Input[str] data_collection_rule_name: The name of the data collection rule. The name is case insensitive.\n        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DataFlowArgs']]]] data_flows: The specification of data flows.\n        :param pulumi.Input[pulumi.InputType['DataCollectionRuleDataSourcesArgs']] data_sources: The specification of data sources. \n               This property is optional and can be omitted if the rule is meant to be used via direct calls to the provisioned endpoint.\n        :param pulumi.Input[str] description: Description of the data collection rule.\n        :param pulumi.Input[pulumi.InputType['DataCollectionRuleDestinationsArgs']] destinations: The specification of destinations.\n        :param pulumi.Input[str] location: The geo-location where the resource lives.\n        :param pulumi.Input[str] resource_group_name: The name of the resource group. The name is case insensitive.\n        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Resource tags.\n        "
    if (__name__ is not None):
        warnings.warn('explicit use of __name__ is deprecated', DeprecationWarning)
        resource_name = __name__
    if (__opts__ is not None):
        warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning)
        opts = __opts__
    if (opts is None):
        opts = pulumi.ResourceOptions()
    if (not isinstance(opts, pulumi.ResourceOptions)):
        raise TypeError('Expected resource options to be a ResourceOptions instance')
    if (opts.version is None):
        opts.version = _utilities.get_version()
    if (opts.id is None):
        if (__props__ is not None):
            raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
        __props__ = dict()
        __props__['data_collection_rule_name'] = data_collection_rule_name
        if ((data_flows is None) and (not opts.urn)):
            raise TypeError("Missing required property 'data_flows'")
        __props__['data_flows'] = data_flows
        __props__['data_sources'] = data_sources
        __props__['description'] = description
        if ((destinations is None) and (not opts.urn)):
            raise TypeError("Missing required property 'destinations'")
        __props__['destinations'] = destinations
        __props__['location'] = location
        if ((resource_group_name is None) and (not opts.urn)):
            raise TypeError("Missing required property 'resource_group_name'")
        __props__['resource_group_name'] = resource_group_name
        __props__['tags'] = tags
        __props__['etag'] = None
        __props__['name'] = None
        __props__['provisioning_state'] = None
        __props__['type'] = None
    alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_='azure-nextgen:insights/v20191101preview:DataCollectionRule'), pulumi.Alias(type_='azure-native:insights:DataCollectionRule'), pulumi.Alias(type_='azure-nextgen:insights:DataCollectionRule')])
    opts = pulumi.ResourceOptions.merge(opts, alias_opts)
    super(DataCollectionRule, __self__).__init__('azure-native:insights/v20191101preview:DataCollectionRule', resource_name, __props__, opts)
Definition of ARM tracked top level resource.

:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
:param pulumi.Input[str] data_collection_rule_name: The name of the data collection rule. The name is case insensitive.
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DataFlowArgs']]]] data_flows: The specification of data flows.
:param pulumi.Input[pulumi.InputType['DataCollectionRuleDataSourcesArgs']] data_sources: The specification of data sources. 
       This property is optional and can be omitted if the rule is meant to be used via direct calls to the provisioned endpoint.
:param pulumi.Input[str] description: Description of the data collection rule.
:param pulumi.Input[pulumi.InputType['DataCollectionRuleDestinationsArgs']] destinations: The specification of destinations.
:param pulumi.Input[str] location: The geo-location where the resource lives.
:param pulumi.Input[str] resource_group_name: The name of the resource group. The name is case insensitive.
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Resource tags.
def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions]=None, data_collection_rule_name: Optional[pulumi.Input[str]]=None, data_flows: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DataFlowArgs']]]]]=None, data_sources: Optional[pulumi.Input[pulumi.InputType['DataCollectionRuleDataSourcesArgs']]]=None, description: Optional[pulumi.Input[str]]=None, destinations: Optional[pulumi.Input[pulumi.InputType['DataCollectionRuleDestinationsArgs']]]=None, location: Optional[pulumi.Input[str]]=None, resource_group_name: Optional[pulumi.Input[str]]=None, tags: Optional[pulumi.Input[Mapping[(str, pulumi.Input[str])]]]=None, __props__=None, __name__=None, __opts__=None):
    "\n        Definition of ARM tracked top level resource.\n\n        :param str resource_name: The name of the resource.\n        :param pulumi.ResourceOptions opts: Options for the resource.\n        :param pulumi.Input[str] data_collection_rule_name: The name of the data collection rule. The name is case insensitive.\n        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DataFlowArgs']]]] data_flows: The specification of data flows.\n        :param pulumi.Input[pulumi.InputType['DataCollectionRuleDataSourcesArgs']] data_sources: The specification of data sources. \n               This property is optional and can be omitted if the rule is meant to be used via direct calls to the provisioned endpoint.\n        :param pulumi.Input[str] description: Description of the data collection rule.\n        :param pulumi.Input[pulumi.InputType['DataCollectionRuleDestinationsArgs']] destinations: The specification of destinations.\n        :param pulumi.Input[str] location: The geo-location where the resource lives.\n        :param pulumi.Input[str] resource_group_name: The name of the resource group. The name is case insensitive.\n        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Resource tags.\n        "
    if (__name__ is not None):
        warnings.warn('explicit use of __name__ is deprecated', DeprecationWarning)
        resource_name = __name__
    if (__opts__ is not None):
        warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning)
        opts = __opts__
    if (opts is None):
        opts = pulumi.ResourceOptions()
    if (not isinstance(opts, pulumi.ResourceOptions)):
        raise TypeError('Expected resource options to be a ResourceOptions instance')
    if (opts.version is None):
        opts.version = _utilities.get_version()
    if (opts.id is None):
        if (__props__ is not None):
            raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
        __props__ = dict()
        __props__['data_collection_rule_name'] = data_collection_rule_name
        if ((data_flows is None) and (not opts.urn)):
            raise TypeError("Missing required property 'data_flows'")
        __props__['data_flows'] = data_flows
        __props__['data_sources'] = data_sources
        __props__['description'] = description
        if ((destinations is None) and (not opts.urn)):
            raise TypeError("Missing required property 'destinations'")
        __props__['destinations'] = destinations
        __props__['location'] = location
        if ((resource_group_name is None) and (not opts.urn)):
            raise TypeError("Missing required property 'resource_group_name'")
        __props__['resource_group_name'] = resource_group_name
        __props__['tags'] = tags
        __props__['etag'] = None
        __props__['name'] = None
        __props__['provisioning_state'] = None
        __props__['type'] = None
    alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_='azure-nextgen:insights/v20191101preview:DataCollectionRule'), pulumi.Alias(type_='azure-native:insights:DataCollectionRule'), pulumi.Alias(type_='azure-nextgen:insights:DataCollectionRule')])
    opts = pulumi.ResourceOptions.merge(opts, alias_opts)
    super(DataCollectionRule, __self__).__init__('azure-native:insights/v20191101preview:DataCollectionRule', resource_name, __props__, opts)