<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def select_resources(self, *args, **kwargs):
 """Copy the query and add filtering by resource labels. Examples:: query = query.select_resources(zone='us-central1-a') query = query.select_resources(zone_prefix='europe-') query = query.select_resources(resource_type='gce_instance') A keyword argument ``<label>=<value>`` ordinarily generates a filter expression of the form:: resource.label.<label> = "<value>" However, by adding ``"_prefix"`` or ``"_suffix"`` to the keyword, you can specify a partial match. ``<label>_prefix=<value>`` generates:: resource.label.<label> = starts_with("<value>") ``<label>_suffix=<value>`` generates:: resource.label.<label> = ends_with("<value>") As a special case, ``"resource_type"`` is treated as a special pseudo-label corresponding to the filter object ``resource.type``. For example, ``resource_type=<value>`` generates:: resource.type = "<value>" See the `defined resource types`_. .. note:: The label ``"instance_name"`` is a metric label, not a resource label. You would filter on it using :type args: tuple :param args: Raw filter expression strings to include in the conjunction. If just one is provided and no keyword arguments are provided, it can be a disjunction. :type kwargs: dict :param kwargs: Label filters to include in the conjunction as described above. :rtype: :class:`Query` :returns: The new query object. .. _defined resource types: https://cloud.google.com/monitoring/api/v3/monitored-resources """

        new_query = copy.deepcopy(self)
        new_query._filter.select_resources(*args, **kwargs)
        return new_query