cloudera.services.atlas_relationship_def module – Manage relationship type definitions in Apache Atlas

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.atlas_relationship_def.

New in cloudera.services 1.1.0

Synopsis

  • Create, update, or delete relationship type definitions in Apache Atlas.

  • A relationship type connects two entity types through named ends.

Parameters

Parameter

Comments

attribute_defs

list / elements=dictionary

Attributes of the relationship; Atlas only allows primitive types.

Replaces the existing attributes; Atlas may reject removing attributes that are in use.

Unset suboptions keep the value Atlas already holds for an attribute of the same name.

cardinality

string

Cardinality of the attribute.

Choices:

  • "SINGLE"

  • "LIST"

  • "SET"

constraints

list / elements=dictionary

Constraints on the attribute.

params

dictionary

Parameters of the constraint.

Keys are sent to Atlas verbatim.

type

string / required

Type of the constraint, e.g. ownedRef or inverseRef.

default_value

string

Default value of the attribute.

description

string

Description of the attribute.

display_name

string

Display name of the attribute.

include_in_notification

boolean

Whether changes to the attribute are included in notifications.

Choices:

  • false

  • true

index_type

string

Index type of the attribute.

Choices:

  • "DEFAULT"

  • "STRING"

is_indexable

boolean

Whether the attribute is indexed.

Choices:

  • false

  • true

is_optional

boolean

Whether a value is optional.

Choices:

  • false

  • true

is_unique

boolean

Whether values must be unique.

Choices:

  • false

  • true

name

string / required

Name of the attribute.

options

dictionary

Free-form map of string options for the attribute.

Keys are sent to Atlas verbatim.

search_weight

integer

Search weight of the attribute.

type_name

string / required

Name of the attribute type, e.g. string or int.

values_max_count

integer

Maximum number of values.

values_min_count

integer

Minimum number of values.

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.

debug

aliases: debug_endpoints

boolean

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

Choices:

  • false ← (default)

  • true

description

string

Description of the relationship type definition.

end_def1

dictionary

First end of the relationship.

Atlas requires both ends when creating a relationship type.

Unset suboptions keep the value Atlas already holds.

cardinality

string

Cardinality of this end.

Choices:

  • "SINGLE"

  • "LIST"

  • "SET"

description

string

Description of this end.

is_container

boolean

Whether this end is the container of the relationship.

Choices:

  • false

  • true

is_legacy_attribute

boolean

Whether this end is backed by an existing entity attribute.

Choices:

  • false

  • true

name

string / required

Name of the relationship attribute Atlas adds to the entity type at this end.

type

string / required

Name of the entity type at this end.

end_def2

dictionary

Second end of the relationship.

Atlas requires both ends when creating a relationship type.

Unset suboptions keep the value Atlas already holds.

cardinality

string

Cardinality of this end.

Choices:

  • "SINGLE"

  • "LIST"

  • "SET"

description

string

Description of this end.

is_container

boolean

Whether this end is the container of the relationship.

Choices:

  • false

  • true

is_legacy_attribute

boolean

Whether this end is backed by an existing entity attribute.

Choices:

  • false

  • true

name

string / required

Name of the relationship attribute Atlas adds to the entity type at this end.

type

string / required

Name of the entity type at this end.

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"

name

string

Name of the relationship type definition.

Required when state=present or state=absent.

options

dictionary

Free-form map of string options for the type definition.

Keys are sent to Atlas verbatim.

page_size

aliases: default_page_size

integer

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

Default: 100

propagate_tags

string

Direction in which classifications propagate across the relationship.

Choices:

  • "NONE"

  • "ONE_TO_TWO"

  • "TWO_TO_ONE"

  • "BOTH"

relationship_category

string

UML-style category of the relationship.

COMPOSITION and AGGREGATION require one end to be the container.

Choices:

  • "ASSOCIATION"

  • "AGGREGATION"

  • "COMPOSITION"

relationship_label

string

Label Atlas uses for edges of this relationship.

Atlas assigns a label when unset.

service_type

string

Name of the service that owns the type definition.

state

string

Whether the relationship type definition should be present or absent.

Choices:

  • "present" ← (default)

  • "absent"

timeout

aliases: timeout_seconds

integer

The timeout in seconds for any API requests.

Default: 60

type_version

string

Version label of the type definition, e.g. 1.0.

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)

Attributes

Attribute

Support

Description

check_mode

Support: full

This module supports check mode.

diff_mode

Support: full

This module supports diff mode.

Examples

# NOTE: Examples do not include connection and authentication fields
- name: Create a relationship type definition
  cloudera.services.atlas_relationship_def:
    name: team_members
    description: Members of a team
    relationship_category: ASSOCIATION
    propagate_tags: NONE
    end_def1:
      type: team
      name: members
      cardinality: SET
      is_container: true
    end_def2:
      type: person
      name: teams
      cardinality: SET

- name: Create a composition relationship where deleting the container deletes its parts
  cloudera.services.atlas_relationship_def:
    name: table_columns
    relationship_category: COMPOSITION
    end_def1:
      type: table
      name: columns
      cardinality: SET
      is_container: true
    end_def2:
      type: column
      name: table
      cardinality: SINGLE

- name: Create a relationship that propagates classifications in both directions
  cloudera.services.atlas_relationship_def:
    name: dataset_consumers
    relationship_category: ASSOCIATION
    propagate_tags: BOTH
    end_def1:
      type: dataset
      name: consumers
      cardinality: SET
    end_def2:
      type: application
      name: datasets
      cardinality: SET

- name: Create a relationship with attributes of its own
  cloudera.services.atlas_relationship_def:
    name: team_members
    relationship_category: ASSOCIATION
    end_def1:
      type: team
      name: members
      cardinality: SET
    end_def2:
      type: person
      name: teams
      cardinality: SET
    attribute_defs:
      - name: role
        type_name: string
        is_optional: true
      - name: joined
        type_name: date
        is_optional: true

- name: Change only how classifications propagate, keeping the ends as they are
  cloudera.services.atlas_relationship_def:
    name: team_members
    propagate_tags: ONE_TO_TWO

- name: Change the cardinality of one end, keeping its other fields as they are
  cloudera.services.atlas_relationship_def:
    name: team_members
    end_def1:
      type: team
      name: members
      cardinality: LIST

- name: Preview a change without applying it
  cloudera.services.atlas_relationship_def:
    name: team_members
    description: Members of a team, with their roles
  check_mode: true
  diff: true
  register: preview

- name: Remove a relationship type definition
  cloudera.services.atlas_relationship_def:
    name: team_members
    state: absent

Return Values

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

Key

Description

relationship_def

dictionary

The relationship type definition.

Returned: when state=present

attribute_defs

list / elements=dictionary

Attributes of the relationship.

Returned: success

cardinality

string

Cardinality of the attribute.

Returned: success

constraints

list / elements=dictionary

Constraints on the attribute.

Returned: success

params

dictionary

Parameters of the constraint.

Returned: success

type

string

Type of the constraint.

Returned: success

default_value

string

Default value of the attribute.

Returned: success

description

string

Description of the attribute.

Returned: success

display_name

string

Display name of the attribute.

Returned: success

include_in_notification

boolean

Whether changes are included in notifications.

Returned: success

index_type

string

Index type of the attribute.

Returned: success

is_indexable

boolean

Whether the attribute is indexed.

Returned: success

is_optional

boolean

Whether a value is optional.

Returned: success

is_unique

boolean

Whether values must be unique.

Returned: success

name

string

Name of the attribute.

Returned: success

options

dictionary

Free-form options of the attribute.

Returned: success

search_weight

integer

Search weight of the attribute.

Returned: success

type_name

string

Name of the attribute type.

Returned: success

values_max_count

integer

Maximum number of values.

Returned: success

values_min_count

integer

Minimum number of values.

Returned: success

category

string

Type category, always RELATIONSHIP.

Returned: success

create_time

integer

Creation time in epoch milliseconds.

Returned: success

created_by

string

User that created the type definition.

Returned: success

description

string

Description of the relationship type definition.

Returned: success

end_def1

dictionary

First end of the relationship.

Returned: success

cardinality

string

Cardinality of this end.

Returned: success

description

string

Description of this end.

Returned: success

is_container

boolean

Whether this end is the container of the relationship.

Returned: success

is_legacy_attribute

boolean

Whether this end is backed by an existing entity attribute.

Returned: success

name

string

Name of the relationship attribute at this end.

Returned: success

type

string

Name of the entity type at this end.

Returned: success

end_def2

dictionary

Second end of the relationship.

Returned: success

cardinality

string

Cardinality of this end.

Returned: success

description

string

Description of this end.

Returned: success

is_container

boolean

Whether this end is the container of the relationship.

Returned: success

is_legacy_attribute

boolean

Whether this end is backed by an existing entity attribute.

Returned: success

name

string

Name of the relationship attribute at this end.

Returned: success

type

string

Name of the entity type at this end.

Returned: success

guid

string

Atlas-assigned identifier.

Returned: success

name

string

Name of the relationship type definition.

Returned: success

options

dictionary

Free-form options of the type definition.

Returned: success

propagate_tags

string

Direction in which classifications propagate.

Returned: success

relationship_category

string

UML-style category of the relationship.

Returned: success

relationship_label

string

Label Atlas uses for edges of this relationship.

Returned: success

service_type

string

Name of the service that owns the type definition.

Returned: success

type_version

string

Version label of the type definition.

Returned: success

update_time

integer

Last update time in epoch milliseconds.

Returned: success

updated_by

string

User that last updated the type definition.

Returned: success

version

integer

Atlas version number of the type definition.

Returned: success

Authors

  • Webster Mudge (@wmudge)