@click.option('--credential', type=types.Related('credential'),
                  required=False)
    @click.option('--source', type=click.Choice(INVENTORY_SOURCES),
                  help='The source to use for this group.')
    @click.option('--source-regions', help='Regions for your cloud provider.')
    # Options may not be valid for certain types of cloud servers
    @click.option('--source-vars', help='Override variables found on source '
                  'with variables defined in this field.')
    @click.option('--overwrite', type=bool,
                  help='Delete child groups and hosts not found in source.')
    @click.option('--overwrite-vars', type=bool,
                  help='Override vars in child groups and hosts with those '
                  'from the external source.')
    @click.option('--update-on-launch', type=bool, help='Refersh inventory '
                  'data from its source each time a job is run.')
    def modify(self, pk=None, create_on_missing=False, **kwargs):
        # Break out the options for the group vs its inventory_source
        group_fields = [f.name for f in self.fields]
        is_kwargs = {}
        for field in kwargs.copy():
            if field not in group_fields:
                is_kwargs[field] = kwargs.pop(field)

        # Handle alias for "manual" source
        if is_kwargs.get('source', None) == 'manual':
            is_kwargs['source'] = ''

        # First, modify the group.
        answer = super(Resource, self).modify(
            pk=pk, create_on_missing=create_on_missing, **kwargs)

        # If the group already exists and we aren't supposed to make changes,
        # then we're done.
        if len(is_kwargs) == 0:
            return answer

        # Get the inventory source ID ("isid").
        # Inventory sources are not created directly; rather, one was created
        # automatically when the group was created.
        isid = self._get_inventory_source_id(answer)

        # We now have our inventory source ID; modify it according to the
        # provided parameters.
        #
        # Note: Any fields that were part of the group modification need
        # to be expunged from kwargs before making this call.
        isrc = get_resource('inventory_source')
        is_answer = isrc.write(pk=isid, force_on_exists=True, **is_kwargs)

        # If either the inventory_source or the group objects were modified
        # then refelect this in the output to avoid confusing the user.
        if is_answer['changed']:
            answer['changed'] = True
        return answer
Returns a list of urls that point to a streamable version of this song.
dataset/ETHPy150Open ansible/tower-cli/lib/tower_cli/resources/group.py/Resource.modify--crossover with--dataset/ETHPy150Open simon-weber/gmusicapi/gmusicapi/clients/webclient.py/Webclient.get_stream_urls