cloudera.services.ssb_udf module – Manage SSB User Defined Functions (UDFs)

Note

This module is part of the cloudera.services collection (version 1.0.0).

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 git+https://github.com/cloudera-labs/cloudera.services.git.

To use it in a playbook, specify: cloudera.services.ssb_udf.

New in cloudera.services 1.0.0

Synopsis

  • Create, update, or delete Cloudera SSB User Defined Functions (UDFs).

  • UDFs allow custom functions to be used in SQL queries.

  • The module supports check_mode.

Parameters

Parameter

Comments

client_cert

path

The path to a client certificate for authenticating to the API endpoint.

client_key

path

The path to a client key for authenticating to the API endpoint.

code

string

The code for the UDF.

Required when creating a new UDF.

For JavaScript UDFs, use standard JavaScript function syntax.

For Python UDFs, use standard Python function syntax.

debug

aliases: debug_endpoints

boolean

A flag to enable debug logging of the module’s execution.

Choices:

  • false ← (default)

  • true

description

string

Optional description of the UDF.

force

boolean

A flag to force a refresh of the API request, ignoring any cached results.

Choices:

  • false ← (default)

  • true

force_basic_auth

boolean

A flag to force basic authentication for API requests.

Choices:

  • false ← (default)

  • true

http_agent

aliases: user_agent

string

The User-Agent string to send with API requests.

Default: "cloudera-services-module"

id

aliases: udf_id

integer

The unique identifier of the UDF.

This parameter is mutually exclusive with name.

This field is read-only and cannot be modified after creation.

input_types

list / elements=string

List of input parameter data types for the UDF.

Required when creating a new UDF.

For JavaScript UDFs, valid types are STRING, BOOLEAN, INT, BIGINT, FLOAT, DECIMAL, TIMESTAMP, DATE.

For Python UDFs, use a list containing only STRING.

language

string

The language of the UDF.

Required when creating a new UDF.

Supported values are JAVASCRIPT and PYTHON.

Choices:

  • "JAVASCRIPT"

  • "PYTHON"

name

string

The name of the UDF.

Required when creating a new UDF (state=present).

This parameter is mutually exclusive with id.

output_type

string

The output data type of the UDF.

Required when creating a new UDF.

For JavaScript UDFs, valid types are STRING, BOOLEAN, INT, BIGINT, FLOAT, DECIMAL, TIMESTAMP, DATE.

For Python UDFs, use PYTHON_INFERRED.

page_size

aliases: default_page_size

integer

The number of items to return per page in a paginated API response.

Default: 100

project_id

string / required

The unique identifier of the project.

Required for all operations.

state

string

The desired state of the UDF.

Use present to create or update a UDF.

Use absent to delete a UDF.

Choices:

  • "present" ← (default)

  • "absent"

timeout

aliases: timeout_seconds

integer

The timeout in seconds for any API requests.

Default: 60

url

aliases: endpoint, endpoint_url

string / required

The base URL of the API endpoint, including the port if necessary.

url_password

string

The password for authenticating to the API endpoint.

url_username

string

The username for authenticating to the API endpoint.

use_gssapi

boolean

A flag to enable or disable GSSAPI authentication for API requests.

Choices:

  • false ← (default)

  • true

use_proxy

boolean

A flag to enable or disable the use of a proxy for API requests.

Choices:

  • false

  • true ← (default)

validate_certs

boolean

A flag to enable or disable SSL certificate validation for API requests.

Choices:

  • false

  • true ← (default)

Examples

- name: Create a JavaScript UDF
  cloudera.services.ssb_udf:
    project_id: "12345"
    name: "upperCase"
    language: "JAVASCRIPT"
    code: "function upperCase(str) { return str.toUpperCase(); }"
    output_type: "STRING"
    input_types:
      - "STRING"
    description: "Converts a string to uppercase"
    state: present

- name: Create a Python UDF
  cloudera.services.ssb_udf:
    project_id: "12345"
    name: "process_data"
    language: "PYTHON"
    code: |
      def process_data(data):
          return data.upper()
    output_type: "PYTHON_INFERRED"
    input_types:
      - "STRING"
    description: "Process data with Python"
    state: present

- name: Update a UDF
  cloudera.services.ssb_udf:
    project_id: "12345"
    name: "upperCase"
    code: "function upperCase(str) { return str.toUpperCase() + '!'; }"
    state: present

- name: Delete a UDF by name
  cloudera.services.ssb_udf:
    project_id: "12345"
    name: "upperCase"
    state: absent

- name: Delete a UDF by id
  cloudera.services.ssb_udf:
    project_id: "12345"
    id: 42
    state: absent

Return Values

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

Key

Description

sdk_out

string

Returns the captured REST API log.

Returned: when supported

sdk_out_lines

list / elements=string

Returns a list of each line of the captured REST API log.

Returned: when supported

udf

dictionary

The UDF details.

Returned: when state is present

code

string

The code for the UDF.

Returned: when available

created_at

string

The timestamp when the UDF was created.

Returned: when available

description

string

The description of the UDF.

Returned: when available

id

integer

The unique identifier of the UDF.

Returned: always

input_types

list / elements=string

List of input parameter data types.

Returned: when available

language

string

The language of the UDF (JAVASCRIPT or PYTHON).

Returned: always

name

string

The name of the UDF.

Returned: always

output_type

string

The output data type of the UDF.

Returned: always

project_id

string

The project identifier this UDF belongs to.

Returned: when available

updated_at

string

The timestamp when the UDF was last updated.

Returned: when available

Authors

  • Webster Mudge (@wmudge)