Actions for Ownership

  • Latest Dynatrace
  • Reference
  • 6-min read

The core capabilities of Ownership Ownership are contained in the actions for Workflows Workflows. You can combine these actions with other tasks and actions to create workflows for team import and owner queries.

Ownership actions do the following:

  • Import teams from different data sources such as Microsoft Entra ID, ServiceNow, or custom JSON.
  • Get owners by querying teams associated with Ownership-enriched Smartscape nodes or classic entities that are deprecated in a workflow.

Import teams

Import teams into Dynatrace.

Import teams action input

FieldDescriptionRequired

Source

Defines the schema for the incoming data. The selected import source determines how Ownership interprets the import data.

Possible values:

  • Entra ID groups
  • ServiceNow groups
  • JSON in Ownership schema

Required

Data containing the teams to import

Use a Jinja expression to get the result of your previous workflow task, for example, result("get_groups"). The import data can be in Entra ID groups, ServiceNow groups, or Ownership JSON format. 1

Required

Select import preferences

Choose between Import new teams and skip existing teams or Import new teams and overwrite existing teams.

Required

Select error handling preferences

Choose between Fail action and do not import a single team and Continue action and import valid teams while logging the errors.

Required

1

Ownership JSON format is expected to match the following JSON schema:

JSON schema
{
"type": "array",
"items": {
"$ref": "#/$defs/SettingsValue"
},
"$defs": {
"SettingsValue": {
"type": "object",
"properties": {
"schemaId": {
"type": "string"
},
"externalId": {
"type": "string"
},
"scope": {
"type": "string"
},
"value": {
"$ref": "#/$defs/OwnershipSettingsObject"
}
},
"required": ["schemaId", "scope", "value"]
},
"OwnershipSettingsObject": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"identifier": {
"type": "string"
},
"supplementaryIdentifiers": {
"type": "array",
"items": {
"$ref": "#/$defs/SupplementaryIdentifier"
}
},
"responsibilities": {
"$ref": "#/$defs/Responsibilities"
},
"contactDetails": {
"type": "array",
"items": {
"$ref": "#/$defs/ContactDetails"
}
},
"links": {
"type": "array",
"items": {
"$ref": "#/$defs/Link"
}
},
"additionalInformation": {
"type": "array",
"items": {
"$ref": "#/$defs/AdditionalInformation"
}
},
"externalId": {
"type": "string"
}
},
"required": [
"name",
"identifier",
"supplementaryIdentifiers",
"responsibilities",
"contactDetails",
"links",
"additionalInformation"
]
},
"SupplementaryIdentifier": {
"type": "object",
"required": ["supplementaryIdentifier"],
"properties": {
"supplementaryIdentifier": {
"type": "string"
}
}
},
"Responsibilities": {
"type": "object",
"required": [
"development",
"security",
"operations",
"infrastructure",
"lineOfBusiness"
],
"properties": {
"development": {
"type": "boolean"
},
"security": {
"type": "boolean"
},
"operations": {
"type": "boolean"
},
"infrastructure": {
"type": "boolean"
},
"lineOfBusiness": {
"type": "boolean"
}
}
},
"ContactDetails": {
"anyOf": [
{
"type": "object",
"required": ["integrationType", "jira"],
"properties": {
"integrationType": {
"const": "JIRA"
},
"jira": {
"$ref": "#/$defs/JiraConnection"
},
"url": {
"type": "string"
}
}
},
{
"type": "object",
"required": ["integrationType", "email"],
"properties": {
"integrationType": {
"const": "EMAIL"
},
"email": {
"type": "string"
}
}
},
{
"type": "object",
"required": ["integrationType", "msTeams"],
"properties": {
"integrationType": {
"const": "MS_TEAMS"
},
"msTeams": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
{
"type": "object",
"required": ["integrationType", "slackChannel"],
"properties": {
"integrationType": {
"const": "SLACK"
},
"slackChannel": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
]
},
"Link": {
"type": "object",
"required": ["linkType", "url"],
"properties": {
"linkType": {
"enum": [
"DOCUMENTATION",
"RUNBOOK",
"WIKI",
"DASHBOARD",
"HEALTH_APP",
"URL",
"REPOSITORY"
]
},
"url": {
"type": "string"
}
}
},
"AdditionalInformation": {
"type": "object",
"required": ["key", "value"],
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"JiraConnection": {
"type": "object",
"required": ["project", "defaultAssignee"],
"properties": {
"project": {
"type": "string"
},
"defaultAssignee": {
"type": "string"
}
}
}
}
}

Import teams action output

FieldDescription

importing_status

  • "SUCCESS" if all teams could be imported.
  • "PARTIAL" if only some teams could be imported.
  • "FAILED" if no teams could be imported at all.

successful_imports

A list of settings object IDs of teams that were imported successfully.

duplicate_identifiers

A list of duplicate team identifiers.

failed_identifiers

A list of team identifiers that couldn't be imported.

For more details, see workflow results in the Results tab.

Get owners

Retrieves owners from entities and team identifiers.

Get owners action input

FieldDescriptionRequired

Entity ids

A Jinja expression, for example, {{ event()["dt.entity.host"] }}. Use a comma or semicolon to separate multiple IDs.

Optional

Team

Choose from a list of teams, or Select all. You can also add a Jinja expression.

Optional

Filter by responsibility

A list of responsibilities. Possible values are:

  • Select all
  • Development
  • Security
  • Operations
  • Infrastructure
  • Line of Business
  • Not defined

Optional

Get owners action output

FieldDescription

owners

Settings objects of teams that match search criteria

jira

A list of Jira contact details per team

msTeams

A list of Microsoft Teams contact details per team

slackChannels

A list of Slack contact details per team

email

A list of Email contact details per team

For more details, see workflow results in the Results tab.

Related tags
Software Delivery