# gce_labels – Create, Update or Destroy GCE Labels

New in version 2.4.

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Return Values

- Status

## Synopsis

- Create, Update or Destroy GCE Labels on instances, disks, snapshots, etc. When specifying the GCE resource, users may specify the full URL for the resource (its ‘self_link’), or the individual parameters of the resource (type, location, name). Examples for the two options can be seen in the documentation. See https://cloud.google.com/compute/docs/label-or-tag-resources for more information about GCE Labels. Labels are gradually being added to more GCE resources, so this module will need to be updated as new resources are added to the GCE (v1) API.

## Requirements

The below requirements are needed on the host that executes this module.

- python >= 2.6

- google-api-python-client >= 1.6.2

- google-auth >= 1.0.0

- google-auth-httplib2 >= 0.0.2

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
labels - |  | A list of labels (key/value pairs) to add or remove for the resource.
resource_location - |  | The location of resource (global, us-central1-f, etc.)
resource_name - |  | The name of resource.
resource_type - |  | The type of resource (instances, disks, snapshots, images)
resource_url - |  | The 'self_link' for the resource (instance, disk, snapshot, etc)

## Notes

Note

- Labels support resources such as instances, disks, images, etc. See https://cloud.google.com/compute/docs/labeling-resources for the list of resources available in the GCE v1 API (not alpha or beta).

## Examples

    - name: Add labels on an existing instance (using resource_url)
      gce_labels:
        service_account_email: "{{ service_account_email }}"
        credentials_file: "{{ credentials_file }}"
        project_id: "{{ project_id }}"
        labels:
          webserver-frontend: homepage
          environment: test
          experiment-name: kennedy
        resource_url: https://www.googleapis.com/compute/beta/projects/myproject/zones/us-central1-f/instances/example-instance
        state: present
    - name: Add labels on an image (using resource params)
      gce_labels:
        service_account_email: "{{ service_account_email }}"
        credentials_file: "{{ credentials_file }}"
        project_id: "{{ project_id }}"
        labels:
          webserver-frontend: homepage
          environment: test
          experiment-name: kennedy
        resource_type: images
        resource_location: global
        resource_name: my-custom-image
        state: present
    - name: Remove specified labels from the GCE instance
      gce_labels:
        service_account_email: "{{ service_account_email }}"
        credentials_file: "{{ credentials_file }}"
        project_id: "{{ project_id }}"
        labels:
          environment: prod
          experiment-name: kennedy
        resource_url: https://www.googleapis.com/compute/beta/projects/myproject/zones/us-central1-f/instances/example-instance
        state: absent

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
labels dictionary | Always. | List of labels that exist on the resource. Sample: [{'webserver-frontend': 'homepage', 'environment': 'test', 'environment-name': 'kennedy'}]
resource_location string | Always. | The location of the GCE resource. Sample: us-central1-f
resource_name string | Always. | The name of the GCE resource. Sample: my-happy-little-instance
resource_type string | Always. | The type of the GCE resource. Sample: instances
resource_url string | Always. | The 'self_link' of the GCE resource. Sample: https://www.googleapis.com/compute/beta/projects/myproject/zones/us-central1-f/instances/example-instance
state string | Always. | state of the labels Sample: present

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Eric Johnson (@erjohnso) <erjohnso@google.com>

Hint

If you notice any issues in this documentation, you can edit this document to improve it.