google.cloud.gcp_vertexai_index_endpoint module – Creates a GCP VertexAI.IndexEndpoint resource

Note

This module is part of the google.cloud collection (version 1.12.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install google.cloud. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: google.cloud.gcp_vertexai_index_endpoint.

Synopsis

  • An endpoint indexes are deployed into. An index endpoint can have multiple deployed indexes.

Requirements

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

  • python >= 3.8

  • requests >= 2.18.4

  • google-auth >= 2.25.1

Parameters

Parameter

Comments

access_token

string

The access token used to authenticate.

auth_kind

string / required

The type of credential used.

Choices:

  • "accesstoken"

  • "application"

  • "machineaccount"

  • "serviceaccount"

description

string

The description of the Index.

display_name

string / required

The display name of the Index.

The name can be up to 128 characters long and can consist of any UTF-8 characters.

encryption_spec

dictionary

Customer-managed encryption key spec for an IndexEndpoint.

If set, this IndexEndpoint and all sub-resources of this IndexEndpoint will be secured by this key.

kms_key_name

string / required

The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource.

Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`.

The key needs to be in the same region as where the compute resource is created.

env_type

string

Specifies which Ansible environment you’re running this module within.

This should not be set unless you know what you’re doing.

This only alters the User Agent string for any API requests.

labels

dictionary

The labels with user-defined metadata to organize your Indexes.

network

string

The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the index endpoint should be peered.

Private services access must already be configured for the network.

If left unspecified, the index endpoint is not peered with any network.

[Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`.

Where `{project}` is a project number, as in `12345`, and `{network}` is network name.

private_service_connect_config

dictionary

Configuration for private service connect.

`network` and `privateServiceConnectConfig` are mutually exclusive.

enable_private_service_connect

boolean / required

If set to true, the IndexEndpoint is created without private service access.

Choices:

  • false

  • true

project_allowlist

list / elements=string

A list of Projects from which the forwarding rule will target the service attachment.

psc_automation_configs

list / elements=dictionary

List of projects and networks where the PSC endpoints will be created.

This field is used by Online Inference(Prediction) only.

network

string / required

The full name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).

[Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/get): projects/{project}/global/networks/{network}.

project_id

string / required

Project id used to create forwarding rule.

project

string

The Google Cloud Platform project to use.

public_endpoint_enabled

boolean

If true, the deployed index will be accessible through public endpoint.

Choices:

  • false

  • true

region

string

The region of the index endpoint.

eg us-central1.

scopes

list / elements=string

Array of scopes to be used.

service_account_contents

jsonarg

The contents of a Service Account JSON file,

either in a dictionary or as a JSON string that represents it.

service_account_email

string

An optional service account email address if machineaccount is

selected and the user does not wish to use the default email.

service_account_file

path

The path of a Service Account JSON file if serviceaccount

is selected as type.

state

string

Whether the resource should exist in GCP.

Choices:

  • "present" ← (default)

  • "absent"

Notes

Note

  • API Reference: https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.indexEndpoints/

  • For authentication, you can set auth_kind using the GCP_AUTH_KIND env variable.

  • For authentication, you can set service_account_file using the GCP_SERVICE_ACCOUNT_FILE env variable.

  • For authentication, you can set service_account_contents using the GCP_SERVICE_ACCOUNT_CONTENTS env variable.

  • For authentication, you can set service_account_email using the GCP_SERVICE_ACCOUNT_EMAIL env variable.

  • For authentication, you can set access_token using the GCP_ACCESS_TOKEN env variable.

  • For authentication, you can set scopes using the GCP_SCOPES env variable.

  • Environment variables values will only be used if the playbook values are not set.

  • The service_account_email, service_account_file, service_account_file and access_token options are mutually exclusive.

Examples

- name: Create Index Endpoint
  google.cloud.gcp_vertexai_index_endpoint:
    state: present
    display_name: myidxep
    region: us-central1
    network: "projects/{{ gcp_project_number }}/global/networks/{{ mynet }}"  # Network must be peered
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"

################################################################################

- name: Create Index Endpoint with public endpoint
  google.cloud.gcp_vertexai_index_endpoint:
    state: present
    display_name: "{{ resource_name }}"
    region: us-central1
    public_endpoint_enabled: true  # public endpoints don't require VPC network
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"

Return Values

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

Key

Description

changed

boolean

Whether the resource was changed.

Returned: always

createTime

string

The timestamp of when the Index was created in RFC3339 UTC “Zulu” format, with nanosecond resolution and up to nine fractional digits.

Returned: success

etag

string

Used to perform consistent read-modify-write updates.

Returned: success

name

string

The resource name of the Index.

Returned: success

publicEndpointDomainName

string

If publicEndpointEnabled is true, this field will be populated with the domain name to use for this index endpoint.

Returned: success

state

string

The current state of the resource.

Returned: always

updateTime

string

The timestamp of when the Index was last updated in RFC3339 UTC “Zulu” format, with nanosecond resolution and up to nine fractional digits.

Returned: success

Authors

  • Google Inc. (@googlecloudplatform)