diff --git a/src/content/docs/alerts/get-notified/destinations.mdx b/src/content/docs/alerts/get-notified/destinations.mdx index 5788623c1c8..d4de79f6e44 100644 --- a/src/content/docs/alerts/get-notified/destinations.mdx +++ b/src/content/docs/alerts/get-notified/destinations.mdx @@ -30,7 +30,8 @@ The supported destination platforms include: * AWS EventBridge: Available in [workflows](/docs/alerts-applied-intelligence/applied-intelligence/incident-workflows/incident-workflows/). * PagerDuty: Available in [workflows](/docs/alerts-applied-intelligence/applied-intelligence/incident-workflows/incident-workflows/). * New Relic Mobile Push: Available in [workflows](/docs/alerts-applied-intelligence/applied-intelligence/incident-workflows/incident-workflows/). -* Microsoft Teams: Available in [workflows](/docs/alerts/get-notified/microsoft-teams-integrations/). +* Microsoft Teams: Available in [workflows](/docs/alerts/get-notified/microsoft-teams-integrations/). +* **Workflow Automation**: Available in [workflows](/docs/alerts-applied-intelligence/applied-intelligence/incident-workflows/incident-workflows/). Triggers [automated incident response workflows](/docs/workflow-automation/setup-and-configuration/create-destinations#trigger-from-alerts) when alert conditions are breached. For more on these and other destinations, see [notification integrations](/docs/alerts-applied-intelligence/notifications/notification-integrations). diff --git a/src/content/docs/workflow-automation/create-a-workflow-automation/create-your-own.mdx b/src/content/docs/workflow-automation/create-a-workflow-automation/create-your-own.mdx index fac0634876e..5213c719ae7 100644 --- a/src/content/docs/workflow-automation/create-a-workflow-automation/create-your-own.mdx +++ b/src/content/docs/workflow-automation/create-a-workflow-automation/create-your-own.mdx @@ -20,9 +20,9 @@ When templates don't fit your needs, [Create Your Own](https://onenr.io/0OQM47Kg This guide shows you how to build workflows using concepts and a complete example. Choose your learning path: -- **Learn core concepts first** → Read [Core concepts](#core-concepts) and [Workflow patterns](#workflow-patterns) to understand the fundamentals, then apply them -- **Follow the example** → Jump to [Example walkthrough](#example-walkthrough) to build an EC2 auto-resize workflow step-by-step -- **Reference patterns** → Use the [Workflow patterns](#workflow-patterns) section as a quick reference when building your own workflows +- **Learn core concepts first**: Read [Core concepts](#core-concepts) and [Workflow patterns](#workflow-patterns) to understand the fundamentals, then apply them +- **Follow the example**: Jump to [Example walkthrough](#example-walkthrough) to build an EC2 auto-resize workflow step-by-step +- **Reference patterns**: Use the [Workflow patterns](#workflow-patterns) section as a quick reference when building your own workflows **New to workflows?** Start with core concepts, then follow the example. The EC2 workflow demonstrates all key patterns in a real-world scenario. @@ -116,7 +116,7 @@ Understand these fundamentals before you build: - Loops + [Loops](/docs/workflow-automation/workflow-examples#loop-structure) @@ -134,7 +134,7 @@ Understand these fundamentals before you build: - Mandatory field for loop functions to define iteration count + Required parameter for loop functions to define iteration count @@ -183,7 +183,7 @@ For detailed error handling patterns, see [Best practices](/docs/workflow-automa Build your first workflow in five steps: 1. Navigate to **[one.newrelic.com](https://one.newrelic.com) > All Capabilities > Workflow Automation** and select **[Create Your Own](https://onenr.io/0OQM47KgxjG)** -2. Define parameters for credentials (from secrets manager: `${{ :secrets:keyName }}`), configuration (regions, instance types), and runtime data (account IDs, alert IDs) +2. Define parameters for credentials (from [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials): `${{ :secrets:keyName }}`), configuration (regions, instance types), and runtime data (account IDs, alert IDs) 3. Drag actions from the [catalog](/docs/workflow-automation/setup-and-configuration/actions-catalog/actions-catalog), connect them with `${{ .steps.stepName.outputs.field }}` syntax to pass data 4. Insert switches for conditional branching, loops for processing lists or polling, approval gates for human decisions 5. Run after each section to catch errors early, then [start or schedule](/docs/workflow-automation/create-a-workflow-automation/start-schedule) your workflow @@ -218,6 +218,8 @@ Four essential patterns handle most automation scenarios. Each pattern is demons **Use loops when:** Processing multiple items or repeating actions +For detailed information about loop structure, parameters, and advanced usage (including break/continue), see [Loop structure](/docs/workflow-automation/workflow-examples#loop-structure). + **Key syntax:** ```yaml # Send progress updates using range loop @@ -242,7 +244,7 @@ Four essential patterns handle most automation scenarios. Each pattern is demons ### Approval gates and waiting -**Use approval gates when:** Human judgment needed before destructive operations or compliance sign-off required +**Use approval gates when:** Human judgment is needed before destructive operations or compliance sign-off is required **Key syntax:** ```yaml @@ -314,7 +316,7 @@ Before building this workflow, ensure you have: - **AWS**: Credentials with EC2 and Systems Manager permissions - **Slack**: Bot token and channel for notifications - **New Relic**: Alert condition monitoring EC2 CPU -- **Secrets manager**: Configured (see [secrets management](/docs/infrastructure/host-integrations/installation/secrets-management/)) +- **Secrets manager**: Configured (see [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials)) ### Workflow overview [#workflow-overview] @@ -332,10 +334,10 @@ This example demonstrates key patterns you'll use in custom workflows: querying **Skip if you're reading for concepts.** This table details the 12 parameters this workflow uses. You can reference it when building, but it's not essential for understanding the flow. -This workflow requires credentials, configuration, and runtime context as inputs. Sensitive values come from secrets manager using `${{ :secrets:keyName }}` syntax. +This workflow requires credentials, configuration, and runtime context as inputs. Sensitive values come from [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) using `${{ :secrets:keyName }}` syntax. **Input categories:** -- **Authentication**: AWS and Slack credentials from secrets manager +- **Authentication**: AWS and Slack credentials from [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) - **Alert context**: Account ID and issue ID from New Relic - **Configuration**: Region, instance type, timezone, Slack channel @@ -370,7 +372,7 @@ This workflow requires credentials, configuration, and runtime context as inputs `${{ :secrets:awsAccessKeyId }}` - AWS Access Key ID retrieved from secrets manager for authenticating with AWS services. + AWS Access Key ID retrieved from [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) for authenticating with AWS services. @@ -384,7 +386,7 @@ This workflow requires credentials, configuration, and runtime context as inputs `${{ :secrets:awsSecretAccessKey }}` - AWS Secret Access Key retrieved from secrets manager. Pairs with the access key ID. + AWS Secret Access Key retrieved from [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials). Pairs with the access key ID. @@ -606,7 +608,7 @@ Now let's build each part of the workflow. Each step includes the specific actio The workflow resizes the instance through AWS Systems Manager (SSM): * **`createSsmDocument`**: Creates an SSM Automation document that stops the instance, modifies type, and restarts it. - * **`generateIdempotencyToken`**: Creates a unique UUID. Prevents duplicate resizes if the workflow runs twice. + * **`generateIdempotencyToken`**: Creates a unique UUID to prevent duplicate resizes if the workflow runs twice. * **`startResizing`**: Executes the SSM document with instance ID and new type. * **`progressLoop` (Loop)**: Posts Slack updates every 10 seconds (5 times total). * **`waitForCompletion`**: Polls SSM status with 2-minute timeout. diff --git a/src/content/docs/workflow-automation/create-a-workflow-automation/start-schedule.mdx b/src/content/docs/workflow-automation/create-a-workflow-automation/start-schedule.mdx index 07857751112..d41d7ba3cfa 100644 --- a/src/content/docs/workflow-automation/create-a-workflow-automation/start-schedule.mdx +++ b/src/content/docs/workflow-automation/create-a-workflow-automation/start-schedule.mdx @@ -16,19 +16,22 @@ freshnessValidatedDate: never This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). -Once you've created a workflow, you can run it manually on demand or schedule it to run automatically at specific times. Both methods use the [NerdGraph API](/docs/apis/nerdgraph/get-started/nerdgraph-explorer) to trigger workflow execution. +Once you've created a workflow, you can trigger it in three ways: from alerts, manually on demand, or on a schedule. ## Choose your trigger method Select the right approach for your use case: -| **Use on-demand** | **Use scheduled** | -|-------------------|-------------------| -| Testing new workflows | Regular health checks | -| Manual approval workflows | Periodic data processing | -| Alert-triggered responses | Daily/weekly reports | -| Ad-hoc maintenance tasks | Scheduled maintenance windows | -| One-time operations | Recurring backups or cleanups | +| **Trigger from alerts** | **Run on-demand** | **Run on schedule** | +|------------------------|-------------------|---------------------| +| Automated incident response | Testing new workflows | Regular health checks | +| Auto-remediation (resize EC2, rollback) | Manual operations | Periodic data processing | +| Enriched alert notifications | Ad-hoc maintenance | Daily/weekly reports | +| **Setup**: [Configure as alert destination](/docs/workflow-automation/setup-and-configuration/create-destinations#trigger-from-alerts) | **API**: [StartWorkflowRun](#on-demand) | **API**: [CreateSchedule](#scheduled) | + + + **Alert-triggered workflows**: When alert conditions are breached, New Relic can automatically trigger workflows by configuring Workflow Automation as a destination. The `issueId` and `accountId` are passed automatically. See [Send notifications from workflows](/docs/workflow-automation/setup-and-configuration/create-destinations#trigger-from-alerts) for setup instructions. + ## Before you begin @@ -38,7 +41,7 @@ Before triggering workflows, ensure you have: - **Account ID**: Your New Relic account ID (found in [Account settings](/docs/accounts/accounts-billing/account-structure/account-id)). - **Workflow name**: The exact name from your workflow definition. - **Required inputs**: Values for any parameters your workflow expects. -- **Secrets configured**: AWS credentials, Slack tokens, or other secrets stored in [secrets manager](/docs/infrastructure/host-integrations/installation/secrets-management/). +- **Secrets configured**: AWS credentials, Slack tokens, or other secrets stored in [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials). **New to workflows?** Create your first workflow before trying to trigger it. Start with [Use a template](/docs/workflow-automation/create-a-workflow-automation/use-a-template) for pre-built workflows. @@ -95,9 +98,9 @@ The following workflow definition invokes an AWS Lambda function and logs the ou - message: 'The lambda function message output is:${{ .steps.invoke1.outputs.payload.body }}' ``` -To start this workflow, use the following NerdGraph mutation. Before running this mutation, ensure you've stored your AWS credentials using the `secretsManagementCreateSecret` mutation. For more information, see [Introduction to secrets management](/docs/apis/nerdgraph/examples/nerdgraph-secrets-management). +To start this workflow, use the following NerdGraph mutation. Before running this mutation, ensure you've stored your AWS credentials using the `secretsManagementCreateSecret` mutation. For more information, see [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials). -```graphql +```yaml mutation { workflowAutomationStartWorkflowRun( # Specify the account where the workflow is defined @@ -165,7 +168,7 @@ Schedules use cron expressions to define when workflows run. Format: `minute hou The following example schedules the `lambda1` workflow to run every day at 9 AM Eastern Time: -```graphql +```yaml mutation { workflowAutomationCreateSchedule( # Specify the account where the workflow is defined diff --git a/src/content/docs/workflow-automation/introduction-to-workflow.mdx b/src/content/docs/workflow-automation/introduction-to-workflow.mdx index d09d6c5d5d6..98249bda928 100644 --- a/src/content/docs/workflow-automation/introduction-to-workflow.mdx +++ b/src/content/docs/workflow-automation/introduction-to-workflow.mdx @@ -18,6 +18,11 @@ freshnessValidatedDate: never Workflow Automation connects New Relic with your existing tools to automate incident response, infrastructure management, and operational tasks—without writing code. Build workflows that respond to alerts, integrate with AWS and Slack, manage approvals, and execute complex automation logic. +**Trigger workflows in three ways:** +- **From alerts**: Automatically start workflows when alert conditions are breached (see [Send notifications from workflows](/docs/workflow-automation/setup-and-configuration/create-destinations#trigger-from-alerts)) +- **On demand**: Manually trigger workflows via API when needed +- **On schedule**: Run workflows automatically at specific times using cron expressions + Screenshot showing the workflow automation interface50KB - No of Workflow definitions (Including all versions) + No of Workflow definitions at account level(excluding versions count) 1000 - No of Workflow definitions at org level (including all versions) + No of Workflow definitions at org level (excluding versions count) + + 1000 + + + No of versions per workflow definition at account level + + 1000 + + + No of versions per workflow definition at org level 1000 @@ -67,7 +77,7 @@ freshnessValidatedDate: never Length of a workflow input value - 1000 characters + 1000 Characters Workflow concurrent runs (per account) diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/actions-catalog.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/actions-catalog.mdx index 0d0ea809374..cf80c587b84 100644 --- a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/actions-catalog.mdx +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/actions-catalog.mdx @@ -5,7 +5,7 @@ tags: - workflow - workflow automation actions - actions catalog -metaDescription: "List of available actions catalog for workflow definition" +metaDescription: "List of available action catalogs for workflow definitions" freshnessValidatedDate: never --- @@ -15,18 +15,290 @@ freshnessValidatedDate: never This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). -New Relic actions catalog provides actions that can be performed against your infrastructure and integrations. You can orchestrate and automate your end-to-end processes by linking together actions that perform tasks in your cloud providers, and New Relic accounts. +The New Relic actions catalog provides actions that can be performed against your infrastructure and integrations. You can orchestrate and automate your end-to-end processes by linking together actions that perform tasks in your cloud providers and New Relic accounts. -## Available action catalogs [#available-catalogs] +The actions follow a hierarchical naming convention: `company.product.action`, making it easy to find and use the right action for your workflow. -The following action catalogs are available for workflow automation: +## How to use this catalog -- [AWS actions](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws) - Integrate with AWS services including Lambda, EC2, and Systems Manager -- [Communication actions](/docs/workflow-automation/setup-and-configuration/actions-catalog/communication) - Send notifications and messages through various communication channels -- [HTTP actions](/docs/workflow-automation/setup-and-configuration/actions-catalog/http) - Make HTTP requests to external APIs and services -- [New Relic actions](/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic) - Interact with New Relic platform features and data -- [PagerDuty actions](/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty) - Manage PagerDuty incidents and integrations -- [Utility actions](/docs/workflow-automation/setup-and-configuration/actions-catalog/others) - Perform common data transformation and utility operations +This catalog is organized by provider and product hierarchy. You can: +- Browse the complete list of actions in the table below +- Use your browser's search function (Ctrl+F or Cmd+F) to quickly find specific actions +- Navigate to detailed documentation pages for each product category +- Use the left navigation to drill down into specific action categories + +## Complete actions catalog + +The table below lists all available actions. Click on any action name to view its detailed documentation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Action NameCategoryDescription
[Get log events from CloudWatch Logs](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-cloudwatch#aws.cloudWatch.getLogEvents)AWS CloudWatchGet log events from CloudWatch Logs
[Put log events to CloudWatch Logs](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-cloudwatch#aws.cloudWatch.putLogEvents)AWS CloudWatchPut log events to CloudWatch Logs
[Delete an EBS snapshot](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-ec2#awsec2deletesnapshot)AWS EC2Delete an EBS snapshot
[Reboot EC2 instances](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-ec2#awsec2rebootinstances)AWS EC2Reboot EC2 instances
[Launch new EC2 instances](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-ec2#aws.ec2.runInstances)AWS EC2Launch new EC2 instances
[Start stopped EC2 instances](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-ec2#awsec2startinstances)AWS EC2Start stopped EC2 instances
[Terminate EC2 instances](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-ec2#awsec2terminateinstances)AWS EC2Terminate EC2 instances
[Execute any AWS API operation](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-execute-api#aws.execute.api)AWS Execute APIExecute any AWS API operation
[Get Lambda function configuration](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-lambda#aws.lambda.getFunction)AWS LambdaGet Lambda function configuration
[Invoke a Lambda function](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-lambda#aws.lambda.invoke)AWS LambdaInvoke a Lambda function
[List Lambda function aliases](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-lambda#aws.lambda.listAliases)AWS LambdaList Lambda function aliases
[Update Lambda function configuration](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-lambda#aws.lambda.updateFunctionConfiguration)AWS LambdaUpdate Lambda function configuration
[Delete an object from S3 bucket](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-s3#aws.s3.deleteObject)AWS S3Delete an object from S3 bucket
[Get an object from S3 bucket](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-s3#aws.s3.getObject)AWS S3Get an object from S3 bucket
[List objects in an S3 bucket](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-s3#aws.s3.listObjectsV2)AWS S3List objects in an S3 bucket
[Add an object to S3 bucket](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-s3#aws.s3.putObject)AWS S3Add an object to S3 bucket
[Publish a message to SNS topic](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sns#aws.sns.publish)AWS SNSPublish a message to SNS topic
[Receive a message from SQS queue](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sqs#aws.sqs.receiveMessage)AWS SQSReceive a message from SQS queue
[Send a message to SQS queue](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sqs#aws.sqs.sendMessage)AWS SQSSend a message to SQS queue
[Delete a Systems Manager document](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-systemsmanager#aws.systemsManager.deleteDocument)AWS Systems ManagerDelete a Systems Manager document
[Start a Systems Manager automation](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-systemsmanager#awssystemsmanagerstartautomation)AWS Systems ManagerStart a Systems Manager automation
[Wait for automation execution status](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-systemsmanager#awssystemsmanagerwaitforautomationstatus)AWS Systems ManagerWait for automation execution status
[Create or update a Systems Manager document](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-systemsmanager#awssystemsmanagerwritedocument)AWS Systems ManagerCreate or update a Systems Manager document
[Perform HTTP DELETE request](/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-delete#httpdelete)HTTPPerform HTTP DELETE request
[Perform HTTP GET request](/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-get#httpget)HTTPPerform HTTP GET request
[Perform HTTP POST request](/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-post#httppost)HTTPPerform HTTP POST request
[Perform HTTP PUT request](/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-put#httpput)HTTPPerform HTTP PUT request
[Send custom events to New Relic](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-ingest#newrelic.ingest.sendEvents)New Relic IngestSend custom events to New Relic
[Send logs to New Relic](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-ingest#newrelic.ingest.sendLogs)New Relic IngestSend logs to New Relic
[Execute NerdGraph query or mutation](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nerdgraph#newrelic.nerdgraph.execute)New Relic NerdGraphExecute NerdGraph query or mutation
[Send notification to New Relic destination](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-notification#newrelic.notification.send)New Relic NotificationSend notification to New Relic destination
[Send email notification](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-notification#newrelic.notification.sendEmail)New Relic NotificationSend email notification
[Send Microsoft Teams notification](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-notification#newrelic.notification.sendMicrosoftTeams)New Relic NotificationSend Microsoft Teams notification
[Execute NRQL query](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nrdb#newrelic.nrdb.query)New Relic NRDBExecute NRQL query
[Create a PagerDuty incident](/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident#pagerDuty.incident.create)PagerDuty IncidentCreate a PagerDuty incident
[Get PagerDuty incident details](/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident#pagerDuty.incident.get)PagerDuty IncidentGet PagerDuty incident details
[List PagerDuty incidents](/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident#pagerDuty.incident.list)PagerDuty IncidentList PagerDuty incidents
[Resolve a PagerDuty incident](/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident#pagerDuty.incident.resolve)PagerDuty IncidentResolve a PagerDuty incident
[Update a PagerDuty incident](/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident#pagerDuty.incident.update)PagerDuty IncidentUpdate a PagerDuty incident
[Get reactions from Slack message](/docs/workflow-automation/setup-and-configuration/actions-catalog/slack/slack-chat#slack.chat.getReactions)Slack ChatGet reactions from Slack message
[Post a message to Slack channel](/docs/workflow-automation/setup-and-configuration/actions-catalog/slack/slack-chat#slack.chat.postMessage)Slack ChatPost a message to Slack channel
[Convert epoch timestamp to datetime](/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-datetime#utils.datetime.fromEpoch)Utilities - DateTimeConvert epoch timestamp to datetime
[Transform data to CSV format](/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-transform#utils.transform.toCSV)Utilities - TransformTransform data to CSV format
[Generate a UUID](/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-uuid#utils.uuid.generate)Utilities - UUIDGenerate a UUID
+ +## Actions by category + +Browse actions organized by provider and product: + +### AWS Actions +- [AWS CloudWatch](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-cloudwatch) - CloudWatch Logs operations +- [AWS EC2](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-ec2) - EC2 instance and snapshot management +- [AWS Execute API](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-execute-api) - Execute any AWS API operation +- [AWS Lambda](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-lambda) - Lambda function operations +- [AWS S3](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-s3) - S3 bucket and object operations +- [AWS SNS](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sns) - SNS topic operations +- [AWS SQS](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sqs) - SQS queue operations +- [AWS Systems Manager](/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-systemsmanager) - Systems Manager automation and documents + +### HTTP Actions +- [HTTP DELETE](/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-delete) - DELETE request operations +- [HTTP GET](/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-get) - GET request operations +- [HTTP POST](/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-post) - POST request operations +- [HTTP PUT](/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-put) - PUT request operations + +### New Relic Actions +- [New Relic Ingest](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-ingest) - Send events and logs to New Relic +- [New Relic NerdGraph](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nerdgraph) - Execute NerdGraph queries and mutations +- [New Relic NRDB](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nrdb) - Query New Relic database +- [New Relic Notification](/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-notification) - Send notifications through New Relic + +### Communication Actions +- [Slack Chat](/docs/workflow-automation/setup-and-configuration/actions-catalog/slack/slack-chat) - Slack messaging operations + +### Incident Management Actions +- [PagerDuty Incident](/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident) - PagerDuty incident management + +### Utility Actions +- [Utilities - DateTime](/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-datetime) - Date and time utilities +- [Utilities - Transform](/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-transform) - Data transformation utilities +- [Utilities - UUID](/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-uuid) - UUID generation utilities ## What's next diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/auth/auth-jwt-create.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/auth/auth-jwt-create.mdx new file mode 100644 index 00000000000..167e641908e --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/auth/auth-jwt-create.mdx @@ -0,0 +1,204 @@ +--- +title: "Auth JWT actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - Auth actions + - Auth JWT actions +metaDescription: "A list of available auth jwt actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for authentication actions available in the workflow automation actions catalog. These actions enable you to create and manage JSON Web Tokens (JWT) for secure authentication in your workflows. + +## Authentication actions + + + + Create a JSON Web Token + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldTypeDescriptionExample
**algorithm**StringAlgorithm used to sign the token. + RS256 +

Supported algorithms: RS256 ,ES256

+
**privateKey**String + The private key for signing a JWT. + - RS256 supports private key in PKCS#8 & PKCS#1 format. ES256 supports private key in PKCS#8 (.p8) format. + - Private Key must be provided as a secret expression. + - PrivateKey must be stored as single line string in Secrets. + `${{ :secrets:namespace:privateKey }}`
**headers**Map + Headers provides metadata for JWT +

+ **UnSupported headers**: nested objects, arrays, null are not supported +

+
`{"kid": "key-2025-09"}`
**claims**Map + Claims are statements about an entity (typically, the user) and additional data +

+ **Unsupported Claim Types**: null, Nested objects / arbitrary maps, Lists containing non-strings or mixed types. +

+
`{"role": "admin", "scope": "read:all"}`
**expirationTimeMinutes**Int + Expiration time in minutes +

+ Expiration time should be greater than 0 and less than 30days. +

+
10
**includeIssuedAt**Boolean + Issued At timestamp +

+ Default: true +

+
true
**selectors**List + ```yaml + [name: token, + + expression: .jwt + + ] +``` +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeDescription
**success**Boolean`true/false`
**jwt**String"`xxxxx.yyyyy.zzzzz`“
**errorMessage**String`“Unsupported algorithm for creating jwt token"`
+
+ + + + + + + + + + + + + +
Workflow definition
+ ```yaml + name: create-json-web-token + description: "" + steps: + - name: auth_jwt_create_1 + type: action + action: auth.jwt.create + version: "1" + inputs: + algorithm: RS256 + privateKey: ${{ :secrets:namespace:privatekey}} + headers: + header1: value1 + claims: + claim1: value1 + expirationTimeMinutes: 10 + next: end + ``` +
+
+
+
+
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws.mdx deleted file mode 100644 index 8e75f93182b..00000000000 --- a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws.mdx +++ /dev/null @@ -1,4935 +0,0 @@ ---- -title: "AWS actions" -tags: - - workflow automation - - workflow - - workflow automation actions - - AWS actions -metaDescription: "A list of available actions in the actions catalog for workflow definitions" -freshnessValidatedDate: never ---- - - - We're still working on this feature, but we'd love for you to try it out! - - This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -This page provides a comprehensive reference for AWS actions available in the workflow automation actions catalog. These actions enable you to integrate AWS services into your workflow definitions, including Lambda functions, Systems Manager automation, EC2 instance management, and general API execution. - -## Prerequisites - -Before using AWS actions in workflow automation, ensure you have: - - * An AWS account with appropriate permissions. - * AWS credentials configured (IAM user credentials, IAM role ARN, or session credentials). - * The necessary IAM permissions for the specific AWS services you plan to use. - -See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for information on how to create IAM users and IAM roles, and set up static and session AWS credentials for integration with workflow automation AWS actions. - -## Lambda actions - - - - Invokes a Lambda function synchronously or asynchronously with an optional payload. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**functionName**RequiredString`my-lambda-function`
**invocationType**OptionalString`Event'|'RequestResponse'|'DryRun'`
**payload**OptionalString`'{"key": "value"}'`
**parameters**OptionalMap - ```yaml - { - "Qualifier": "1", - "ClientContext":"encoded value" - }, - ``` -
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - - **Action Timeout**: This action has a maximum 1-minute(60-second) timeout for synchronous invocations - - **Long-Running Functions**: For functions that may run longer than 1 minute, you must use the Event InvocationType. This invokes the function asynchronously. You can then use other actions (like aws.cloudwatch.getLogEvents or checking an SQS/SNS callback) to get the result. - - `InvocationType` is critical: - - `RequestResponse` (default): Invokes the function synchronously. The action waits for the function to complete and returns the response. - - `Event`: Invokes the function asynchronously. The action returns a success status immediately without waiting for the code to finish. - - `ClientContext` is for advanced use cases and the provided String must be Base64-encoded - - Any additional API parameters not listed above can be passed in the `parameters` map. To support a wide range of inputs, the `parameters` map accepts any optional argument available in the official boto3 API documentation. This allows you to dynamically construct requests by adding multiple fields. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - ```yaml - [{"success":true,"response":{"StatusCode":200,"ExecutedVersion":"$LATEST","Payload":{"statusCode":200,"body":"\"Hello userName\""}}}] - ``` -

- Response syntax can be referred to [invoke - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda/client/invoke.html) -

-
**success**Boolean`success: true | false`
**errorMessage**String`"errorMessage": "ValidationException: 1 validation error detected"`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: lambda-invoke-function-test - description: 'Invokes a Lambda function with a payload' - workflowInputs: - arnRole: - type: String - steps: - - name: aws_lambda_invoke_1 - type: action - action: aws.lambda.invoke - version: '1' - inputs: - awsRoleArn: ${{ .workflowInputs.arnRole }} - region: us-east-1 - functionName: my-lambda-processor - payload: '{"orderId": "12345", "amount": 99.99}' - next: end - ``` -
-
-
-
-
- - - - Modifies the configuration of a specific AWS Lambda function. Provide only the parameters you want to change. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**functionName**RequiredString`"my-lambda-function-to-update"`
**role**OptionalString`arn:aws:iam::123456789012:role/new-lambda-role`
**handler**OptionalString`“main.new_handler"`
**description**OptionalString`Updated function description`
**parameters**OptionalMap - ```yaml - { - "Timeout": "60", - "MemorySize": 123, - }, - ``` -
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - To support a wide range of inputs, the `parameters` map accepts any optional argument available. This allows you to dynamically construct requests by adding multiple fields. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - ```yaml - [{"success":true,"response":{"FunctionName":"hello-you","FunctionArn":"arn:aws:lambda:us-east-2:----:function:hello-you","Runtime":"nodejs20.x","Role":"arn:aws:iam::----:role/TF-hello-you-role","Handler":"hello-you.handler","CodeSize":334,"Description":"This is hello you description from action","Timeout":30,"MemorySize":128,"LastModified":"2025-09-23T13:57:03.000+0000","CodeSha256":"CU03aDDg+34=","Version":"$LATEST","TracingConfig":{"Mode":"PassThrough"},"RevisionId":"0f1e4d9b-c45a-4896-a32d-7cd78e77a273","State":"Active","LastUpdateStatus":"InProgress","LastUpdateStatusReason":"The function is being created.","LastUpdateStatusReasonCode":"Creating","PackageType":"Zip","Architectures":["x86_64"],"EphemeralStorage":{"Size":512},"SnapStart":{"ApplyOn":"None","OptimizationStatus":"Off"},"RuntimeVersionConfig":{"RuntimeVersionArn":"arn:aws:lambda:us-east-2::runtime:01eab27397bfdbdc243d363698d4bc355e3c8176d34a51cd47dfe58cf977f508"},"LoggingConfig":{"LogFormat":"Text","LogGroup":"/aws/lambda/hello-you"}}}] - ``` -

- Response syntax can be referred to [update_function_configuration - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda/client/update_function_configuration.html) -

-
**success**Boolean`success: true | false`
**errorMessage**String`[ { "errorMessage": "An error occurred (ResourceNotFoundException) when calling the UpdateFunctionConfiguration operation: Function not found: arn:aws:lambda:us-east-2:661945836867:function:my-lambda-function-to-update", "success": false, "response": null } ]`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: lambda-update-config-test - description: 'Updates the timeout and memory of a Lambda function' - workflowInputs: - arnRole: - type: String - steps: - - name: aws_lambda_update_function_configuration_1 - type: action - action: aws.lambda.updateFunctionConfiguration - version: '1' - inputs: - awsRoleArn: ${{ .workflowInputs.arnRole }} - region: us-west-2 - functionName: my-lambda-function-to-update - parameters: - Timeout:60 - MemorySize:123 - - next: end - ``` -
-
-
-
-
- - - - Retrieves the configuration details, code location, and other metadata for a specific AWS Lambda function. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**functionName**RequiredString`"my-lambda-function"`
**parameters**OptionalMap - ```yaml - { - "Qualifier": "1" - }, - ``` -
**selectors**OptionalList`[[{"name": "response", "expression": ".response"}]`
- - - To support a wide range of inputs, the `parameters` map accepts any optional argument available. This allows you to dynamically construct requests by adding multiple fields. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - ```yaml - {"response": } - ``` -

- Response syntax can be referred to [update_function_configuration - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda/client/get_function.html) -

-
**success**Boolean`success: true | false`
**errorMessage**String`"errorMessage": "ResourceNotFoundException: Function not found"`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: lambda-get-function-test - description: 'Retrieves the configuration of a specific Lambda function' - workflowInputs: - arnRole: - type: String - steps: - - name: aws_lambda_getFunction_1 - type: action - action: aws.lambda.getFunction - version: '1' - inputs: - awsRoleArn: ${{ .workflowInputs.arnRole }} - region: us-east-1 - FunctionName: hello-you - parameters: - Qualifier: 1 - next: end - ``` -
-
-
-
-
- - - Returns a list of aliases for a specific AWS Lambda function. Aliases are pointers to function versions. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**functionName**RequiredString`“my-lambda-function“`
**marker**OptionalString - Pass the `NextMarker` token from a previous response for pagination. -

- e.g., `“abcd....."` -

-
**maxItems**OptionalInt - Limit the number of aliases returned -

- e.g., `123` -

-
**parameters**OptionalMap - For additional optional API parameters. -

- e.g., `{"AnotherOptionalParam": "value"}` -

-
**selectors**OptionalList`[{"name": "response", "expression": ".response"}]`
- - - - **Pagination**: Use the Marker and MaxItems inputs to paginate through a large number of aliases. - - To support a wide range of inputs, the `parameters` map accepts any optional argument available. This allows you to dynamically construct requests by adding multiple fields. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - ```yaml - {"response": } - ``` -

- Response syntax can be referred to [update_function_configuration - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda/client/list_aliases.html) -

-
**success**Boolean`success: true | false`
**errorMessage**String`"errorMessage": "ResourceNotFoundException: Function not found"`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: lambda-list-aliases-test - description: 'Lists all aliases for a Lambda function' - workflowInputs: - arnRole: - type: String - steps: - - name: aws_lambda_list_aliases_1 - type: action - action: aws.lambda.listAliases - version: '1' - inputs: - awsRoleArn: ${{ .workflowInputs.arnRole }} - region: us-east-1 - functionName: hello-you - parameters: - FunctionVersion: 1 - next: end - ``` -
-
-
-
-
-
- -## EC2 actions - - - - - This action deletes an Amazon EC2 snapshot. You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first deregister the AMI before you can delete the snapshot. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**snapshotId**RequiredString`“snapshot-id-1"`
**selectors**OptionalString`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - In the action input, at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**Object - No Response in case of success : true -

- Response syntax can be referred [delete_snapshot - Boto3 1.40.55 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/delete_snapshot.html). -

-
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "Failed to delete snapshot"`
-
- - - - - - - - - - - - - -
Workflow Example
- ```yaml - name: ec2-deleteSnapshot-test - description: '' - workflowInputs: - arnRole: - type: String - region: - type: String - defaultValue: us-west-2 - snapshotId: - type: List - defaultValue: snapshot-id-1 - steps: - - name: aws_ec2_deleteSnapshot_1 - type: action - action: aws.ec2.deleteSnapshot - version: '1' - inputs: - awsRoleArn: ${{ .workflowInputs.arnRole }} - region: ${{ .workflowInputs.region }} - snapshotId: ${{ .workflowInputs.snapshotId }} - next: end - ``` -
-
-
-
-
- - - - Requests a reboot of the specified instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored. - - If an instance does not cleanly shut down within a few minutes, Amazon EC2 performs a hard reboot. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**instanceIds**RequiredList`"[\"i-0123456789abcdef0\", \"i-0fedcba9876543210\"]"`
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - In the action input, at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**Object[reboot_instances - Boto3 1.40.56 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/reboot_instances.html)
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: ""`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: reboot-ec2-test - description: '' - workflowInputs: - arnRole: - type: String - region: - type: String - defaultValue: us-west-2 - instanceIds: - type: List - defaultValue: ["i-123456789abcdef0"] - steps: - - name: aws_ec2_rebootInstances_1 - type: action - action: aws.ec2.rebootInstances - version: '1' - inputs: - awsRoleArn: ${{ .workflowInputs.arnRole }} - region: ${{ .workflowInputs.region }} - instanceIds: ${{ .workflowInputs.instanceIds }} - next: end - ``` -
-
-
-
-
- - - - Starts an Amazon EBS-backed instance that you previously stopped. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**instanceIds**RequiredList`"[\"i-0123456789abcdef0\", \"i-0fedcba9876543210\"]"`
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - In the action input, at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**Object - ```yaml - {"response":{ - 'StartingInstances': [ - { - 'InstanceId': 'String', - 'CurrentState': { - 'Code': 123, - 'Name': 'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped' - }, - 'PreviousState': { - 'Code': 123, - 'Name': 'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped' - } - }, - ] - } - - } - - } - ``` -

- Response syntax can be referred [start_instances - Boto3 1.40.50 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/start_instances.html) -

-
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "The parameter instancesSet cannot be used with the parameter maxResults"`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: ab-ec2-startInstance-test - description: '' - workflowInputs: - arnRole: - type: String - region: - type: String - defaultValue: us-west-2 - instanceIds: - type: list - defaultValue: ["i-123456789abcdef0"] - steps: - - name: aws_ec2_startInstances_1 - type: action - action: aws.ec2.startInstances - version: '1' - inputs: - awsRoleArn: ${{ .workflowInputs.arnRole }} - region: ${{ .workflowInputs.region }} - instanceIds: ${{ .workflowInputs.instanceIds }} - next: end - ``` -
-
-
-
-
- - - - Terminates the specified instances. This operation is [idempotent](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html); if you terminate an instance more than once, each call succeeds. - - If you specify multiple instances and the request fails (for example, because of a single incorrect instance ID), none of the instances are terminated. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**instanceIds**RequiredList`"[\"i-0123456789abcdef0\", \"i-0fedcba9876543210\"]"`
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - In the action input, at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - ```yaml - { - 'TerminatingInstances': [ - { - 'InstanceId': 'String', - 'CurrentState': { - 'Code': 123, - 'Name': 'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped' - }, - 'PreviousState': { - 'Code': 123, - 'Name': 'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped' - } - }, - ] - } - ``` -

- Response syntax can be referred [terminate_instances - Boto3 1.40.50 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/terminate_instances.html) -

-
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "An error occurred (`InvalidInstanceID.Malformed`) when calling the TerminateInstances operation: The instance ID 'i-012345678' is malformed"`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: ec2-terminate-test - description: '' - workflowInputs: - arnRole: - type: String - region: - type: String - defaultValue: us-west-2 - instanceIds: - type: list - defaultValue: ["i-123456789abcdef0"] - steps: - - name: aws_ec2_terminateInstances_1 - type: action - action: aws.ec2.terminateInstances - version: '1' - inputs: - awsRoleArn: ${{ .workflowInputs.arnRole }} - region: ${{ .workflowInputs.region }} - instanceIds: ${{ .workflowInputs.instanceIds }} - next: end - ``` -
-
-
-
-
- - - - Launches the specified number of instances using an AMI for which you have permissions. - - You can specify a number of options, or leave the default options. The following rules apply: - - If you don’t specify a subnet ID, we choose a default subnet from your default VPC for you. If you don’t have a default VPC, you must specify a subnet ID in the request. - - If any of the AMIs have a product code attached for which the user has not subscribed, the request fails. - - - - - Inputs - - - Outputs - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**imageId**RequiredString`“ami-0ca4d5db4872d0c28”`
**instanceType**RequiredString`“t2.micro”`
**minCount**RequiredInt`1`
**maxCount**RequiredInt`10`
**parameters**OptionalMap - ```yaml - { - "EbsOptimized": false, - "TagSpecifications": [ - { - "ResourceType": "instance", - "Tags": [ - { - "Key": "Name", - "Value": "My-Web-Server" - } - ] - } - } - ``` -
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - To support a wide range of inputs, the `parameters` map accepts any optional argument available. This allows you to dynamically construct requests by adding multiple fields. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object -

- Response syntax can be referred: [run_instances - Boto3 1.40.50 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/run_instances.html) -

-
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: ""`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: ec2_run_instance - workflowInputs: - arnRole: - type: String - required: true - steps: - - name: RunInstance - type: action - action: aws.ec2.runInstances - version: '1' - inputs: - awsRoleArn: ${{.workflowInputs.arnRole}} - region: us-east-2 - imageId: ami-0ca4d5db4872d0c28 - instanceType: t2.micro - minCount: 1 - maxCount: 1 - parameters: - EbsOptimized: false - TagSpecifications: - - ResourceType: instance - Tags: - - Key: Name - Value: My-Test-Instance - selectors: - - name: instanceId - expression: .response.Instances[0].InstanceId - ``` -
-
-
-
-
- -
- -## Systems Manager actions - - - - Writes a document to the AWS account based on the AWS credentials passed in the action input. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/?id=docs_gateway) - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsAccessKeyId**RequiredString`${{ :secrets: }}`
**awsSecretAccessKey**RequiredString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**documentName**RequiredString`documentName: "my-ssm-document"`
**documentType**OptionalString`documentType: "Command"`
**documentFormat**OptionalString`documentFormat: "YAML"`
**documentContent**RequiredString
**override**OptionalBoolean - `override: true (default)`. When `true`, always write the document with the provided name even if one already exist. When `false`, if a document with the provided `documentName` already exist, the action returns `success: false` and `errorMessage:Document already exists`. Please enable override if you want to update the existing document. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**documentName**String`documentName: "my-ssm-document"`
**documentVersion**String`documentVersion: 1`
**documentType**String`documentType: "Command"`
**documentStatus**String`documentStatus: "Active"`.
**success**Boolean`success: true`
**errorMessage**String`errorMessage: "Some error message from ssm"`
-
- - - - - - - - - - - - - - - - - -
Workflow definitionInputsOutputs
- ```yaml - schemaVersion: '0.3' - description: List all Lambda function names. - mainSteps: - - name: ExecuteAwsApi - action: aws:executeAwsApi - isEnd: true - ``` - - ```yaml - inputs: - Service: lambda - Api: ListFunctions - ``` - - ```yaml - outputs: - - Name: resultFunctionName - Selector: $..FunctionName - Type: StringList - outputs: - - ExecuteAwsApi.resultFunctionName - ``` -
-
-
-
-
- - - Deletes an AWS document in the AWS account based on the credentials passed in the action input. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html) - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsAccessKeyId**RequiredString`${{ :secrets: }}`
**awsSecretAccessKey**RequiredString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**documentName**RequiredString`documentName: "my-ssm-document"`
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**documentName**StringdocumentName: "my-ssm-document"
**success**Boolean`success: true`
**errorMessage**String`errorMessage: "Some error message from ssm"`
-
- - - - - - - - - - - - - - - - - -
Workflow definitionInputsOutputs
- ```yaml - schemaVersion: '0.3' - description: List all Lambda function names. - mainSteps: - - name: ExecuteAwsApi - action: aws:executeAwsApi - isEnd: true - ``` - - ```yaml - inputs: - Service: lambda - Api: ListFunctions - ``` - - ```yaml - outputs: - - Name: resultFunctionName - Selector: $..FunctionName - Type: StringList - outputs: - - ExecuteAwsApi.resultFunctionName - ``` -
-
-
-
-
- - - Starts an automation using an AWS document. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartAutomationExecution.html) - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsAccessKeyId**RequiredString`${{ :secrets: }}`
**awsSecretAccessKey**RequiredString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**documentName**RequiredString`documentName: "my-ssm-document"`
**parameters**OptionalMap`parameters: myKey: myValue`
**idempotencyToken**OptionalUUID`idempotencyToken: "any token"`
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**automationExecutionId**String`automationExecutionId: "3143a28d-241c-4abd-a3ca-9c0ff3890241"`
**success**Boolean`success: true`
**errorMessage**String`errorMessage: "Some error message from ssm"`
-
- - - - - - - - - - - - - - - - - -
Workflow definitionInputsOutputs
- ```yaml - schemaVersion: '0.3' - description: List all Lambda function names. - mainSteps: - - name: ExecuteAwsApi - action: aws:executeAwsApi - isEnd: true - ``` - - ```yaml - Service: lambda - Api: ListFunctions - ``` - - ```yaml - - Name: resultFunctionName - Selector: $..FunctionName - Type: StringList - outputs: - - ExecuteAwsApi.resultFunctionName - ``` -
-
-
-
-
- - - Waits for an automation using an AWS document. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/?id=docs_gateway) for more information. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**automationExecutionId**RequiredString`automationExecutionId: "3143a28d-241c-4abd-a3ca-9c0ff3890241"`. The automation executionID for which we need to wait for its completion.
**automationExecutionStatuses**OptionalListList of automation execution statuses from [AutomationExecution](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_AutomationExecution.html#AutomationExecutionStatus) that can stop the waiting, `Default: ["Success", "Failed"]`
**timeout**Optionalint`timeout: 600`. The duration in seconds can wait for automation status to be one of the expected `automationExecutionStatuses`. Post this timeout duration, the action return value with timeout error.
**selectors**OptionalList`[{\"name\": \"automationExecutionStatus\", \"expression\": \".automationExecutionStatus\"}, {\"name\": \"scriptOutput\", \"expression\": \".automationExecutionOutputs.pythonStep.scriptOutput | tojson\"}]`.
- - - 1. In the action input, only `awsAccessKeyId` and `awsSecretAccessKey` can be provided, but they should be static credentials of an IAM user. - 2. If session credentials are to be used, `awsAccessKeyId`, `awsSecretAccessKey` and `awsSessionToken` must be passed to the action input. - 3. Refer to the instructions to set up [AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials). - 4. Use selectors to get only the specified parameters as output. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**automationExecutionId**String`automationExecutionId: "3143a28d-241c-4abd-a3ca-9c0ff3890241"`
**automationExecutionStatus**String`automationExecutionStatus: "Success"`. If action is successful, It will either of the values passed in `automationExecutionStatuses` input field. Else, this will be null.
**automationExecutionOutputs**Map - ```yaml - "automationExecutionOutputs": { - "ExecuteGetApiResources": { - "resultResourceId": [ - "pky3cb" - ] - }, - "ExecuteListVersionsByFunction": { - "resultLambdaVersionArn": [ - "arn:aws:lambda:us-east-2:123456789012:function:ApiGwTestFn:1" - ] - } - } - ``` -

- The output will be a map of output values from the document. Any output in the document can be collected using this output field and can be used in subsequent steps of the workflow automation definition. -

-
**success**Boolean`success: true`
**errorMessage**String`errorMessage: "Some error message from ssm"`
-
- - - - - - - - - - - - - - - - - -
Workflow definitionInputsOutputs
- ```yaml - schemaVersion: '0.3' - description: List all Lambda function names. - mainSteps: - - name: ExecuteAwsApi - action: aws:executeAwsApi - isEnd: true - ``` - - ```yaml - Service: lambda - Api: ListFunctions - ``` - - ```yaml - - Name: resultFunctionName - Selector: $..FunctionName - Type: StringList - outputs: - - ExecuteAwsApi.resultFunctionName - ``` -
-
-
-
-
- -
- -## General AWS actions - - - - - This action allows you to execute any AWS API operation for a specified service. It supports providing AWS credentials, region, service name, API name, and optional parameters. The action can return outputs such as success status, response data, and error messages, making it versatile for interacting with AWS services programmatically. - - ### Security and IAM configuration - - To use this action, you must configure AWS credentials. See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for detailed instructions on creating an IAM role or IAM user. - - - **Security best practice:** When defining IAM policies for this action, always use least-privilege access. Grant only the specific AWS API actions your workflow requires, and restrict permissions to specific resources rather than using wildcards. - - - ### Required IAM permissions - - The permissions you need depend on which AWS services and APIs your workflow calls. Use the examples below as templates for creating least-privilege policies. - - **Example: Allow sending messages to a specific SQS queue** - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Action": "sqs:SendMessage", - "Resource": "arn:aws:sqs:us-west-2::" - } - ] - } - ``` - - **Example: Allow querying a specific DynamoDB table** - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Action": "dynamodb:Query", - "Resource": "arn:aws:dynamodb:us-west-2::table/" - } - ] - } - ``` - - **Example: Multiple services with specific permissions** - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Action": "sqs:SendMessage", - "Resource": "arn:aws:sqs:us-west-2::" - }, - { - "Effect": "Allow", - "Action": "dynamodb:Query", - "Resource": "arn:aws:dynamodb:us-west-2::table/" - } - ] - } - ``` - - - - Replace ``, ``, and `` with your actual values - - Find available AWS service APIs in the [Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) - - For more complex IAM policy patterns, see the [AWS IAM documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) - - - For more information on how this action works, see the [AWS Systems Manager executeAwsApi documentation](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-action-executeAwsApi.html). - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**service**RequiredString`service: "sqs"`.[AWS available services](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)
**api**RequiredStringapi: "create_queue"
**parameters**RequiredMap - ```yaml - parameters: { - "QueueName": "dks-testing-queue", - "Attributes": { - "DelaySeconds": "0", - "MessageRetentionPeriod": "86400" - } - } - ``` -
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - - In the action input, at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. - - In the action input, if `awsAccessKeyId` and `awsSecretAccessKey` are to be provided, make sure they are static credentials of an IAM user. - - If session credentials are to be used, `awsAccessKeyId`, `awsSecretAccessKey` and `awsSessionToken` must be passed to the action input. - - Refer to [AWS credentials](/docs/workflow-automation/set-up-aws-credentials/) for instructions. - - Use selectors to get only the specified parameters as output. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object`{"response":` - }} each service and api have different response for example https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/query.html.
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "User does not have permission to query DynamoDB"`
-
- - - - ### Example 1: Send a message to an SQS queue - - This example demonstrates how to send a message to an Amazon SQS queue using the `aws.execute.api` action with IAM role authentication. - - ```yaml - name: sqs_send_message_example - - workflowInputs: - awsRoleArn: - type: String - description: "ARN of the IAM role to assume (e.g., arn:aws:iam::123456789012:role/workflow-sqs-role)" - awsRegion: - type: String - defaultValue: us-east-2 - awsQueueUrl: - type: String - defaultValue: "https://sqs.us-east-2.amazonaws.com//" - - steps: - - name: sendSqsMessage - type: action - action: aws.execute.api - version: 1 - inputs: - awsRoleArn: ${{ .workflowInputs.awsRoleArn }} - region: ${{ .workflowInputs.awsRegion }} - service: sqs - api: send_message - parameters: - QueueUrl: ${{ .workflowInputs.awsQueueUrl }} - MessageBody: | - { - "message": "deployment is bad", - "status": "not good" - } - selectors: - - name: success - expression: '.success' - - name: messageId - expression: '.response.MessageId' - - name: errorMessage - expression: '.errorMessage' - - - name: logResult - type: action - action: newrelic.ingest.sendLogs - version: 1 - inputs: - message: 'SQS message sent. Success: ${{ .steps.sendSqsMessage.outputs.success }}, MessageId: ${{ .steps.sendSqsMessage.outputs.messageId }}' - licenseKey: '${{ :secrets:NEW_RELIC_LICENSE_KEY }}' - ``` - - **Required IAM policy for this example:** - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Action": "sqs:SendMessage", - "Resource": "arn:aws:sqs:us-east-2::" - } - ] - } - ``` - - **Expected outputs:** - - `success`: Boolean indicating whether the message was sent successfully - - `messageId`: The unique ID assigned by SQS to the sent message - - `errorMessage`: Error message if the operation failed - - ### Example 2: Query a DynamoDB table - - This example demonstrates how to query a DynamoDB table using the `aws.execute.api` action with session credentials. - - ```yaml - name: dynamodb_query_example - - workflowInputs: - awsAccessKeyId: - type: String - defaultValue: "${{ :secrets:AWS_ACCESS_KEY_ID }}" - awsSecretAccessKey: - type: String - defaultValue: "${{ :secrets:AWS_SECRET_ACCESS_KEY }}" - awsSessionToken: - type: String - defaultValue: "${{ :secrets:AWS_SESSION_TOKEN }}" - awsRegion: - type: String - defaultValue: us-east-2 - tableName: - type: String - defaultValue: workflow-definitions-prod - scopedName: - type: String - description: "The scoped name to query" - version: - type: String - defaultValue: "1" - - steps: - - name: queryDynamoDB - type: action - action: aws.execute.api - version: 1 - inputs: - awsAccessKeyId: ${{ .workflowInputs.awsAccessKeyId }} - awsSecretAccessKey: ${{ .workflowInputs.awsSecretAccessKey }} - awsSessionToken: ${{ .workflowInputs.awsSessionToken }} - region: ${{ .workflowInputs.awsRegion }} - service: dynamodb - api: query - parameters: - TableName: ${{ .workflowInputs.tableName }} - KeyConditionExpression: "ScopedName = :scopedNameValue AND Version = :versionValue" - ExpressionAttributeValues: - ":scopedNameValue": - S: ${{ .workflowInputs.scopedName }} - ":versionValue": - N: ${{ .workflowInputs.version }} - selectors: - - name: success - expression: '.success' - - name: response - expression: '.response' - - name: errorMessage - expression: '.errorMessage' - - - name: logResult - type: action - action: newrelic.ingest.sendLogs - version: 1 - inputs: - message: 'DynamoDB query result: ${{ .steps.queryDynamoDB.outputs.response.Items }}' - licenseKey: '${{ :secrets:NEW_RELIC_LICENSE_KEY }}' - ``` - - **Required IAM policy for this example:** - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Action": "dynamodb:Query", - "Resource": "arn:aws:dynamodb:us-east-2::table/workflow-definitions-prod" - } - ] - } - ``` - - **Expected outputs:** - - `success`: Boolean indicating whether the query was successful - - `response`: The DynamoDB query response containing the matching items - - `errorMessage`: Error message if the operation failed - -
-
-
-
- -## CloudWatch actions - - - - - This action retrieves a batch of log events from a specified log stream in AWS CloudWatch Logs. It's essential for monitoring, auditing, and troubleshooting applications by programmatically fetching log data. - - - - - Inputs - - - Outputs - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**logStreamName**RequiredString`"2023/10/27/[$LATEST]abcdef123456"`
**logGroupName**OptionalString`"/aws/lambda/my-function"`
**logGroupIdentifier**OptionalString`“arn:partition:service:region:account-id:resource”`
**startTime**OptionalInt`1759296000000`
**endTime**OptionalInt`1759296000000`
**limit**OptionalInt`50`
**startFromHead**OptionalBoolean`true`
**unmask**OptionalBoolean`false`
**nextToken**OptionalString`“f/39218833627378687642013305455131706539523449361490509828/s”`
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - ```yaml - { - 'events': [ - { - 'timestamp': 123, - 'message': 'string', - 'ingestionTime': 123 - }, - ], - 'nextForwardToken': 'string', - 'nextBackwardToken': 'string' -} - ``` -
**success**Boolean`success: true | false`
**errorMessage**String`“An error occurred (ExpiredTokenException) when calling the GetLogEvents operation: The security token included in the request is expired”`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: get-lambda-logs - description: 'Retrieve log events from an AWS Lambda function' - workflowInputs: - region: - type: String - defaultValue: us-east-2 - logGroupName: - type: String - defaultValue: /aws/lambda/my-function - logStreamName: - type: String - defaultValue: 2023/10/27/[$LATEST]abcdef123456 - steps: - name: get_events_step - type: action - action: aws.cloudwatch.get_log_events - version: '1' - inputs: - region: ${{ .workflowInputs.region }} - logGroupName: ${{ .workflowInputs.logGroupName }} - logStreamName: ${{ .workflowInputs.logStreamName }} - limit: 100 - ``` -
-
-
-
-
- - - - - - Inputs - - - Outputs - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**logGroupName**RequiredString`"/aws/lambda/hello-you"`
**logStreamName**RequiredString`"2025/09/24/[$LATEST]09f7ca9e9ab044f389419ce60305f594"`
**logEvents**RequiredList - ```yaml - [ - -{ "timestamp": 1698384000000, "message": "Workflow task started." }, - - { "timestamp": 1698384000015, "message": "Data validated successfully." } ] - ``` -
**entity**OptionalDict`{ "entity": { "keyAttributes": { "ResourceType": "AWS::ElasticLoadBalancingV2::LoadBalancer", "Identifier": "app/my-web-lb/12345", "Environment": "Production" }, "attributes": { "MonitoringTier": "Gold", "OwnerTeam": "Networking", "MaintenanceWindow": "Sat: 0200-0400" } } }`
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - ```yaml - { - 'events': [ - { - 'timestamp': 123, - 'message': 'string', - 'ingestionTime': 123 - }, - ], - 'nextForwardToken': 'string', - 'nextBackwardToken': 'string' - } -``` -
**success**Boolean`success: true | false`
**errorMessage**String`“An error occurred (ExpiredTokenException) when calling the GetLogEvents operation: The security token included in the request is expired”`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: get-lambda-logs - description: 'Retrieve log events from an AWS Lambda function' - workflowInputs: - region: - type: String - defaultValue: us-east-2 - logGroupName: - type: String - defaultValue: /aws/lambda/my-function - logStreamName: - type: String - defaultValue: 2023/10/27/[$LATEST]abcdef123456 - steps: - name: get_events_step - type: action - action: aws.cloudwatch.get_log_events - version: '1' - inputs: - region: ${{ .workflowInputs.region }} - logGroupName: ${{ .workflowInputs.logGroupName }} - logStreamName: ${{ .workflowInputs.logStreamName }} - limit: 100 - ``` -
-
-
-
-
-
- -## S3 actions - - - - - The `listObjectsV2` method returns some or all (up to 1,000) of the objects in a bucket. It is a more modern and recommended version of `list_objects`. - - - - - Inputs - - - Outputs - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**bucket**RequiredString"`examplebucket`"
**prefix**OptionalString"`path/to/folder/`"
**maxKeys**OptionalInteger`100`
**continuationToken**OptionalString`some-token`
**parameters**OptionalMap - ```graphql - { - "Delimiter": "/" - } - ``` -
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldType
EncodingTypeString
FetchOwnerBoolean
StartAfterString
RequestPayerString
ExpectedBucketOwnerString
OptionalObjectAttributesList
DelimiterString
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - - - ```yaml - { - 'IsTruncated': True|False, - 'Contents': [ - { - 'Key': 'string', - 'LastModified': datetime(2015, 1, 1), - 'ETag': 'string', - 'ChecksumAlgorithm': [ - 'CRC32'|'CRC32C'|'SHA1'|'SHA256'|'CRC64NVME', - ], - 'ChecksumType': 'COMPOSITE'|'FULL_OBJECT', - 'Size': 123, - 'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'|'OUTPOSTS'|'GLACIER_IR'|'SNOW'|'EXPRESS_ONEZONE'|'FSX_OPENZFS', - 'Owner': { - 'DisplayName': 'string', - 'ID': 'string' - }, - 'RestoreStatus': { - 'IsRestoreInProgress': True|False, - 'RestoreExpiryDate': datetime(2015, 1, 1) - } - }, - ], - 'Name': 'string', - 'Prefix': 'string', - 'Delimiter': 'string', - 'MaxKeys': 123, - 'CommonPrefixes': [ - { - 'Prefix': 'string' - }, - ], - 'EncodingType': 'url', - 'KeyCount': 123, - 'ContinuationToken': 'string', - 'NextContinuationToken': 'string', - 'StartAfter': 'string', - 'RequestCharged': 'requester' - } - ``` -

- Response syntax can be referred to in the [list_objects_v2 - Boto3 1.40.52 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/list_objects_v2.html) -

-
-
-
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "Parameter validation failed:\nInvalid bucket name \"s3-activity-test \": Bucket name must match the regex \"^[a-zA-Z0-9.\\-_]{1,255}$\" or be an ARN matching the regex \"^arn:(aws).:(s3|s3-object-lambda):[a-z\\-0-9]:[0-9]{12}:accesspoint[/:][a-zA-Z0-9\\-.]{1,63}$|^arn:(aws).*:s3-outposts:[a-z\\-0-9]+:[0-9]{12}:outpost[/:][a-zA-Z0-9\\-]{1,63}[/:]accesspoint[/:][a-zA-Z0-9\\-]{1,63}$\""`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: aws-s3-list-objects-v2 - description: 'List Objects in an AWS S3 Bucket' - - steps: - - name: aws_s3_listObjectsV2_1 - type: action - action: aws.s3.listObjectsV2 - version: '1' - inputs: - awsRoleArn: "arn:aws:iam::123456789012:role/my-workflow-role" - region: "us-east-2" - bucket: "examplebucket" - prefix: "path/to/folder/" - maxKeys: 100 - continuationToken: "some-token" - next: end - ``` -
-
-
-
-
- - - - The `deleteObject` method permanently removes a single object from a bucket. For versioned buckets, this operation inserts a **delete marker**, which hides the object without permanently deleting it unless a `VersionId` is specified. - - - - - Inputs - - - Outputs - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**bucket**RequiredString"`examplebucket`"
**key**RequiredString"`path/to/object.txt`"
**parameters**OptionalMap - ```yaml - { - "RequestPayer": "test", - "BypassGovernanceRetention": false - "VersionId":"testVersion", - "MFA":"Test" - } - ``` -
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldType
RequestPayerString
BypassGovernanceRetentionBoolean
ExpectedBucketOwnerString
IfMatchString
IfMatchLastModifiedTimeMap
IfMatchSizeInt
VersionIdString
MFAString
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - - - ```yaml - { - 'DeleteMarker': True|False, - 'VersionId': 'string', - 'RequestCharged': 'requester' - } - ``` -

- Response syntax can be referred [delete_object - Boto3 1.40.55 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/delete_object.html) -

-
-
-
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "Parameter validation failed:\nInvalid bucket name \"s3-activity-test \": Bucket name must match the regex \"^[a-zA-Z0-9.\\-_]{1,255}$\" or be an ARN matching the regex \"^arn:(aws).:(s3|s3-object-lambda):[a-z\\-0-9]:[0-9]{12}:accesspoint[/:][a-zA-Z0-9\\-.]{1,63}$|^arn:(aws).*:s3-outposts:[a-z\\-0-9]+:[0-9]{12}:outpost[/:][a-zA-Z0-9\\-]{1,63}[/:]accesspoint[/:][a-zA-Z0-9\\-]{1,63}$\""`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: aws-s3-delete-object - description: 'Delete an AWS S3 Object' - - steps: - - name: aws_s3_deleteObject_1 - type: action - action: aws.s3.deleteObject - version: '1' - inputs: - awsRoleArn: "arn:aws:iam::123456789012:role/my-workflow-role" - region: "us-west-2" - bucket: "my-bucket" - key: "path/to/object.txt" - next: end - ``` -
-
-
-
-
- - - - Adds an object to a bucket. Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. - - - - - Inputs - - - Outputs - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**bucket**RequiredString"`examplebucket`"
**key**RequiredString"`path/to/object.txt`"
**body**RequiredString`file content`
**contentType**RequiredString"`plain/text`"
**tagging**OptionalString`“key1=value1"`
**parameters**OptionalMap - ```yaml - { - "ServerSideEncryption": "AES256", - "Metadata": { - 'metadata1': 'value1', - 'metadata2': 'value2', - } - } - ``` -
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldType
RequestPayerString
ACLString
CacheControlString
ContentDispositionString
ContentEncodingString
ContentLanguageString
ContentLengthInt
ContentMD5String
ChecksumAlgorithmString
ChecksumCRC32String
ChecksumCRC32CString
ChecksumCRC64NVMEString
ChecksumSHA1String
ChecksumSHA256String
ExpiresMap
IfMatchString
IfNoneMatchString
GrantFullControlString
GrantReadString
GrantReadACPString
GrantWriteACPString
WriteOffsetBytesInt
ServerSideEncryptionString
StorageClassString
WebsiteRedirectLocationString
SSECustomerAlgorithmString
SSECustomerKeyString
SSEKMSKeyIdString
SSEKMSEncryptionContextString
BucketKeyEnabledBoolean
RequestPayerString
ObjectLockModeString
ObjectLockRetainUntilDateMap
ObjectLockLegalHoldStatusString
ExpectedBucketOwnerString
MetadataMap
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - - - ```yaml - { - 'Expiration': 'string', - 'ETag': 'string', - 'ChecksumCRC32': 'string', - 'ChecksumCRC32C': 'string', - 'ChecksumCRC64NVME': 'string', - 'ChecksumSHA1': 'string', - 'ChecksumSHA256': 'string', - 'ChecksumType': 'COMPOSITE'|'FULL_OBJECT', - 'ServerSideEncryption': 'AES256'|'aws:fsx'|'aws:kms'|'aws:kms:dsse', - 'VersionId': 'string', - 'SSECustomerAlgorithm': 'string', - 'SSECustomerKeyMD5': 'string', - 'SSEKMSKeyId': 'string', - 'SSEKMSEncryptionContext': 'string', - 'BucketKeyEnabled': True|False, - 'Size': 123, - 'RequestCharged': 'requester' - } - ``` -

- Response syntax can be referred [put_object - Boto3 1.40.59 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/put_object.html) -

-
-
-
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "An error occurred (NoSuchBucket) when calling the PutObject operation: The specified bucket does not exist"`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: s3-put-object - description: 'Put an AWS S3 Object' - - steps: - - name: aws_s3_putObject_1 - type: action - action: aws.s3.putObject - version: '1' - inputs: - awsRoleArn: "arn:aws:iam::123456789012:role/my-workflow-role" - region: "us-east-2" - bucket: "examplebucket" - key: "path/to/object.txt" - body: "Hello world" - contentType: "plain/text" - tagging: "key1=value1" - next: end - ``` -
-
-
-
-
- - - - In the `GetObject` request, specify the full key name for the object. - - - - - Inputs - - - Outputs - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**bucket**RequiredString"`examplebucket`"
**key**RequiredString"`path/to/object.txt`"
**versionId**OptionalString`"some-version-id"`
**range**OptionalString`bytes=0-99`
**parameters**OptionalMap - ```yaml - { - "ChecksumMode": "ENABLED", - "ExpectedBucketOwner": "test-user" - } - ``` -
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
- - - The action will fail if the object is more than 100kb. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldType
IfMatchString
IfModifiedSinceMap
IfNoneMatchString
IfUnmodifiedSinceMap
ResponseCacheControlString
ResponseContentDispositionString
ResponseContentEncodingString
ResponseContentLanguageString
ResponseContentTypeString
ResponseExpiresMap
SSECustomerAlgorithmString
SSECustomerKeyString
RequestPayerString
PartNumberInt
ExpectedBucketOwnerString
ChecksumModeString
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - - - ```yaml - { - 'Body': StreamingBody(), - 'DeleteMarker': True|False, - 'AcceptRanges': 'string', - 'Expiration': 'string', - 'Restore': 'string', - 'LastModified': datetime(2015, 1, 1), - 'ContentLength': 123, - 'ETag': 'string', - 'ChecksumCRC32': 'string', - 'ChecksumCRC32C': 'string', - 'ChecksumCRC64NVME': 'string', - 'ChecksumSHA1': 'string', - 'ChecksumSHA256': 'string', - 'ChecksumType': 'COMPOSITE'|'FULL_OBJECT', - 'MissingMeta': 123, - 'VersionId': 'string', - 'CacheControl': 'string', - 'ContentDisposition': 'string', - 'ContentEncoding': 'string', - 'ContentLanguage': 'string', - 'ContentRange': 'string', - 'ContentType': 'string', - 'Expires': datetime(2015, 1, 1), - 'ExpiresString': 'string', - 'WebsiteRedirectLocation': 'string', - 'ServerSideEncryption': 'AES256'|'aws:fsx'|'aws:kms'|'aws:kms:dsse', - 'Metadata': { - 'string': 'string' - }, - 'SSECustomerAlgorithm': 'string', - 'SSECustomerKeyMD5': 'string', - 'SSEKMSKeyId': 'string', - 'BucketKeyEnabled': True|False, - 'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE'|'OUTPOSTS'|'GLACIER_IR'|'SNOW'|'EXPRESS_ONEZONE'|'FSX_OPENZFS', - 'RequestCharged': 'requester', - 'ReplicationStatus': 'COMPLETE'|'PENDING'|'FAILED'|'REPLICA'|'COMPLETED', - 'PartsCount': 123, - 'TagCount': 123, - 'ObjectLockMode': 'GOVERNANCE'|'COMPLIANCE', - 'ObjectLockRetainUntilDate': datetime(2015, 1, 1), - 'ObjectLockLegalHoldStatus': 'ON'|'OFF' - } - ``` -

- Response syntax can be referred to in the [get_object - Boto3 1.40.59 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/get_object.html) -

-
-
-
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "An error occurred (InvalidArgument) when calling the GetObject operation: Invalid version id specified"`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: s3-get-object - description: 'Get an AWS S3 Object' - - steps: - - name: aws_s3_getObject_1 - type: action - action: aws.s3.getObject - version: '1' - inputs: - awsRoleArn: "arn:aws:iam::123456789012:role/my-workflow-role" - region: "us-east-2" - bucket: "examplebucket" - key: "path/to/object.txt" - next: end - ``` -
-
-
-
-
-
- -## SNS actions - - - - - Sends a message to an Amazon SNS topic. All subscribers to the topic will receive the message. - - - - - Inputs - - - Outputs - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**message**RequiredString - Messages must be UTF-8 encoded strings and at most 256 KB in size -

- `'Workflow failed at step 3'` -

-
**topicArn**OptionalString - If you don’t specify a value for the topicArn parameter, Must specify a value for the targetArn parameters. -

- `“arn:aws:sns:us-east-2:123456789012:my-topic”` -

-
**targetArn**OptionalString - If you don’t specify a value for the topicArn parameter, Must specify a value for the targetArn parameters. -

- `"arn:aws:sns:us-east-2:123456789012:MySNSTopic"` -

-
**subject**OptionalString`"Workflow Update"`
**MessageStructure**OptionalString`MessageStructure`
**messageAttributes**OptionalMap - ```json - { - 'string': { - 'DataType': 'string', - 'StringValue': 'string', - 'BinaryValue': b'bytes' - } - }, - ``` -
**messageDeduplicationId**OptionalString`“abc123deduplicationId5678”`
**messageGroupId**OptionalString`“order-processing-group-2023_A”`
- - - - - - - - - - - - - - - - - - -
Input FieldTypeExample
PhoneNumberStringWe do not include PhoneNumber as it is considered Personally Identifiable Information (PII).
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - `[{"success":true,"response":{"MessageId":"2333ededwedwed-52f5-a716-e10355e3e2ff"}}]` -

- Response syntax can be referred to sns-publish- Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sns/client/publish.html) -

-
**success**Boolean`success: true | false`
**errorMessage**String`[{"errorMessage":"An error occurred (InvalidParameter) when calling the Publish operation: Invalid parameter: TopicArn or TargetArn Reason: no value for required parameter","success":false,"response":null}]`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: sns-publish-test - description: Publishes a notification to an SNS topic - workflowInputs: - arnRole: - type: String - steps: - - name: aws_sns_publish_1 - type: action - action: aws.sns.publish - version: '1' - inputs: - awsRoleArn: ${{ .workflowInputs.arnRole }} - region: us-east-1 - topicArn: arn:aws:sns:us-east-1:123456789012:workflow-test-topic - subject: "Workflow Update" - message: "The data processing workflow has completed successfully." - next: end - ``` -
-
-
-
-
-
- -## SQS actions - - - - - Sends a message to a specified Amazon SQS queue. - - - - - Inputs - - - Outputs - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**queueUrl**RequiredString"`https://sqs.us-east-2.amazonaws.com/123456789012/my-queue`"
**messageBody**RequiredString`“This is a test message”`
**messageDeduplicationId**OptionalString`“abc123deduplicationId5678”`
**messageGroupId**OptionalString`“group1”`
**messageAttributes**OptionalMap -

- `{ "my_attribute_name_1": { "DataType": "String", "StringValue":"my_attribute_value_1"},` -

- -

- `"my_attribute_name_2": { "DataType": "String", "StringValue":"my_attribute_value_2"}}` -

-
**delaySeconds**OptionalInt`123`
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - `{"statusCode":200, "payload":{"status":"success","data":{"MessageId":"e9b73a52-d018-4a73-9fcd-8efb682fba43","MD5OfMessageBody":"fae535c7f7c5687a1c3d8bc52288e33a","MD5OfMessageAttributes":"3ae3c4f59958e031d0d53af2d157e834", }, "message":"Message sent successfully to the SQS queue." }}` -

- Response syntax can be referred to [SQS send_message - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs/client/send_message.html) -

-
**success**Boolean`success: true | false`
**errorMessage**String`"errorMessage": "SQS.Client.exceptions.QueueDoesNotExist: "The specified queue does not exist.""`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: sqs-send-message-test - description: Sends a message to an SQS queue - workflowInputs: - arnRole: - type: String - steps: - - name: aws_sqs_sendMessage_1 - type: action - action: aws.sqs.sendMessage - version: '1' - inputs: - awsRoleArn: ${{ .workflowInputs.arnRole }} - region: us-east-2 - queueUrl: https://sqs.us-east-2.amazonaws.com/123456789012/workflow-test-queue - messageBody: "This is a test message" - messageAttributes: - my_attribute_name_1: - DataType: "String" - StringValue: "my_attribute_value_1" - my_attribute_name_2: - DataType: "String" - StringValue: "my_attribute_value_2" - next: end - ``` -
-
-
-
-
-
- - - - - Retrieves one or more messages, from the specified queue - - - - - Inputs - - - Outputs - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**queueUrl**RequiredString"`https://sqs.us-east-2.amazonaws.com/123456789012/my-queue`"
**maxNumberOfMessages**OptionalInt`10`
**waitTimeSeconds**OptionalInt`5`
**VisibilityTimeout**OptionalInt`123`
**AttributeNames**OptionalList - ```yaml - [ - 'All'|'Policy'|'VisibilityTimeout'|'MaximumMessageSize'|'MessageRetentionPeriod'|'ApproximateNumberOfMessages'|'ApproximateNumberOfMessagesNotVisible'|'CreatedTimestamp'|'LastModifiedTimestamp'|'QueueArn'|'ApproximateNumberOfMessagesDelayed'|'DelaySeconds'|'ReceiveMessageWaitTimeSeconds'|'RedrivePolicy'|'FifoQueue'|'ContentBasedDeduplication'|'KmsMasterKeyId'|'KmsDataKeyReusePeriodSeconds'|'DeduplicationScope'|'FifoThroughputLimit'|'RedriveAllowPolicy'|'SqsManagedSseEnabled', - ] - ``` -
**messageAttributeNames**OptionalList - ```yaml - [ - 'message_attribute_name', - ], - ``` -
**messageSystemAttributeNames**OptionalList`['SenderId', 'SentTimestamp']`
**receiveRequestAttemptId**OptionalString`“req-1234abcd”`
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**response**object - `{"response": }
` -

- Response syntax can be referred to receive_message - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs/client/receive_message.html) -

-
**success**Boolean`success: true | false`
**errorMessage**String`"errorMessage": "SQS.Client.exceptions.QueueDoesNotExist: "The specified queue does not exist.""`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: sqs-receive-message-test - description: 'Receives a message from an SQS queue' - steps: - - name: aws_sqs_receiveMessage_1 - type: action - action: aws.sqs.receiveMessage - version: '1' - inputs: - awsRoleArn: ${{ :secrets:awsRoleArn }} - region: us-east-1 - queueUrl: https://sqs.us-east-1.amazonaws.com/123456789012/workflow-test-queue - waitTimeSeconds: 5 - maxNumberOfMessages: 10 - messageAttributeNames: ['message_attribute_name'], - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-cloudwatch.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-cloudwatch.mdx new file mode 100644 index 00000000000..73aa9ed5f46 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-cloudwatch.mdx @@ -0,0 +1,424 @@ +--- +title: "AWS CloudWatch actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - AWS actions + - AWS CloudWatch actions +metaDescription: "A list of available aws cloudwatch actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for aws cloudwatch actions available in the workflow automation actions catalog. These actions enable you to cloudwatch logs operations. + +## Prerequisites + +Before using AWS actions in workflow automation, ensure you have: + + * An AWS account with appropriate permissions. + * AWS credentials configured (IAM user credentials, IAM role ARN, or session credentials). + * The necessary IAM permissions for the specific AWS services you plan to use. + +See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for information on how to create IAM users and IAM roles, and set up static and session AWS credentials for integration with workflow automation AWS actions. + + + + + Retrieves a batch of log events from a specified log stream in AWS CloudWatch Logs. It's essential for monitoring, auditing, and troubleshooting applications by programmatically fetching log data. + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**logStreamName**RequiredString`"2023/10/27/[$LATEST]abcdef123456"`
**logGroupName**OptionalString`"/aws/lambda/my-function"`
**logGroupIdentifier**OptionalString`“arn:partition:service:region:account-id:resource”`
**startTime**OptionalInt`1759296000000`
**endTime**OptionalInt`1759296000000`
**limit**OptionalInt`50`
**startFromHead**OptionalBoolean`true`
**unmask**OptionalBoolean`false`
**nextToken**OptionalString`“f/39218833627378687642013305455131706539523449361490509828/s”`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object + ```yaml + { + 'events': [ + { + 'timestamp': 123, + 'message': 'string', + 'ingestionTime': 123 + }, + ], + 'nextForwardToken': 'string', + 'nextBackwardToken': 'string' +} + ``` +
**success**Boolean`success: true | false`
**errorMessage**String`“An error occurred (ExpiredTokenException) when calling the GetLogEvents operation: The security token included in the request is expired”`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: get-lambda-logs + description: 'Retrieve log events from an AWS Lambda function' + workflowInputs: + region: + type: String + defaultValue: us-east-2 + logGroupName: + type: String + defaultValue: /aws/lambda/my-function + logStreamName: + type: String + defaultValue: 2023/10/27/[$LATEST]abcdef123456 + steps: + name: get_events_step + type: action + action: aws.cloudwatch.get_log_events + version: '1' + inputs: + region: ${{ .workflowInputs.region }} + logGroupName: ${{ .workflowInputs.logGroupName }} + logStreamName: ${{ .workflowInputs.logStreamName }} + limit: 100 + ``` +
+
+
+
+
+ + + + This uploads a batch of log events to the specified log stream in AWS CloudWatch Logs. It is used for programmatically sending log data from applications or services to CloudWatch for monitoring and analysis. + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**logGroupName**RequiredString`"/aws/lambda/hello-you"`
**logStreamName**RequiredString`"2025/09/24/[$LATEST]09f7ca9e9ab044f389419ce60305f594"`
**logEvents**RequiredList`[ { "timestamp": 1698384000000, "message": "Workflow task started." }, { "timestamp": 1698384000015, "message": "Data validated successfully." } ]`
**entity**OptionalDict`{ "entity": { "keyAttributes": { "ResourceType": "AWS::ElasticLoadBalancingV2::LoadBalancer", "Identifier": "app/my-web-lb/12345", "Environment": "Production" }, "attributes": { "MonitoringTier": "Gold", "OwnerTeam": "Networking", "MaintenanceWindow": "Sat: 0200-0400" } } }`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeDescriptionExample
**response**ObjectThe raw JSON response, which includes the `nextSequenceToken`. + ```yaml + { + 'nextSequenceToken': 'string', + 'rejectedLogEventsInfo': { + 'tooNewLogEventStartIndex': 123, + 'tooOldLogEventEndIndex': 123, + 'expiredLogEventEndIndex': 123 + }, + 'rejectedEntityInfo': { + 'errorType': 'InvalidEntity'|'InvalidTypeValue'|'InvalidKeyAttributes'|'InvalidAttributes'|'EntitySizeTooLarge'|'UnsupportedLogGroupType'|'MissingRequiredFields' + } +} +``` +
**success**BooleanIndicates whether the log events were successfully uploaded.`true`
**errorMessage**StringA descriptive error message if the action failed.`"An error occurred (ExpiredTokenException) when calling the PutLogEvents operation: The security token included in the request is expired"`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: put-custom-logs +description: 'Upload a batch of custom log events to CloudWatch' + +workflowInputs: + region: + type: String + defaultValue: us-east-2 + logGroupName: + type: String + defaultValue: my-custom-app-logs + logStreamName: + type: String + defaultValue: instance-01-thread-01 + +steps: + - name: upload_logs + type: action + action: aws.cloudwatch.put_log_events + version: '1' + inputs: + region: ${{ .workflowInputs.region }} + logGroupName: ${{ .workflowInputs.logGroupName }} + logStreamName: ${{ .workflowInputs.logStreamName }} + logEvents: + - timestamp: 1698384000000 + message: "Workflow started successfully" + - timestamp: 1698384005000 + message: "Step 1 completed" + next: end + ``` +
+
+
+
+
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-ec2.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-ec2.mdx new file mode 100644 index 00000000000..b4614aa6616 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-ec2.mdx @@ -0,0 +1,1654 @@ +--- +title: "AWS EC2 actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - AWS actions + - AWS EC2 actions +metaDescription: "A list of available aws ec2 actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for aws ec2 actions available in the workflow automation actions catalog. These actions enable you to ec2 instance and snapshot management. + +## Prerequisites + +Before using AWS actions in workflow automation, ensure you have: + + * An AWS account with appropriate permissions. + * AWS credentials configured (IAM user credentials, IAM role ARN, or session credentials). + * The necessary IAM permissions for the specific AWS services you plan to use. + +See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for information on how to create IAM users and IAM roles, and set up static and session AWS credentials for integration with workflow automation AWS actions. + + + + + + Launches the specified number of instances using an AMI for which you have permissions. + + You can specify a number of options, or leave the default options. The following rules apply: + - If you don't specify a subnet ID, we choose a default subnet from your default VPC for you. If you don't have a default VPC, you must specify a subnet ID in the request. + - If any of the AMIs have a product code attached for which the user has not subscribed, the request fails. + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**imageId**RequiredString`"ami-0ca4d5db4872d0c28"`
**instanceType**RequiredString`"t2.micro"`
**minCount**RequiredInt`1`
**maxCount**RequiredInt`10`
**parameters**OptionalMap + ```yaml + { + "EbsOptimized": false, + "TagSpecifications": [ + { + "ResourceType": "instance", + "Tags": [ + { + "Key": "Name", + "Value": "My-Web-Server" + } + ] + } + } + ``` +
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + To support a wide range of inputs, the `parameters` map accepts any optional argument available. This allows you to dynamically construct requests by adding multiple fields. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object +

+ Response syntax can be referred: [run_instances - Boto3 1.40.50 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/run_instances.html) +

+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: ""`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: ec2_run_instance + workflowInputs: + arnRole: + type: String + required: true + steps: + - name: RunInstance + type: action + action: aws.ec2.runInstances + version: '1' + inputs: + awsRoleArn: ${{.workflowInputs.arnRole}} + region: us-east-2 + imageId: ami-0ca4d5db4872d0c28 + instanceType: t2.micro + minCount: 1 + maxCount: 1 + parameters: + EbsOptimized: false + TagSpecifications: + - ResourceType: instance + Tags: + - Key: Name + Value: My-Test-Instance + selectors: + - name: instanceId + expression: .response.Instances[0].InstanceId + ``` +
+
+
+
+
+ + + + Describes the specified instances or all instances. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**instanceIds**OptionalList`"[\"i-0123456789abcdef0\", \"i-0fedcba9876543210\"]"`
**filters**OptionalList`"[{\"Name\": \"instance-state-name\", \"Values\": [\"running\"]}]"`
**nextToken**OptionalString`“abcdefgh“`
**maxResults**OptionalInt100
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + In action input at least one of the AWS credentials (short, long, role) should be provided, where role take precedence over the others. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object + ```yaml + {"response": + + }} + ``` +

+ Response syntax can be referred [describe_instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/describe_instances.html). +

+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "The parameter instancesSet cannot be used with the parameter maxResults"`
+ + + - If you specify instance IDs, the output includes information for only the specified instances. + - If you specify filters, the output includes information for only those instances that meet the filter criteria. + - If you do not specify instance IDs or filters, the output includes information for all instances. + - The parameter `instanceIds` cannot be used with `maxResults`. + +
+ + + + + + + + + + + + + +
Workflow Example
+ ```yaml + name: ab-ec2-describe-test + description: '' + workflowInputs: + arnRole: + type: String + steps: + - name: aws_ec2_describeInstances_1 + type: action + action: aws.ec2.describeInstances + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: us-east-2 + instanceIds: + - i-123456789abcdef0 + next: end + ``` +
+
+
+
+
+ + + + Starts an Amazon EBS-backed instance that you previously stopped. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**instanceIds**RequiredList`"[\"i-0123456789abcdef0\", \"i-0fedcba9876543210\"]"`
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + In the action input, at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object + ```yaml + {"response":{ + 'StartingInstances': [ + { + 'InstanceId': 'string', + 'CurrentState': { + 'Code': 123, + 'Name': 'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped' + }, + 'PreviousState': { + 'Code': 123, + 'Name': 'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped' + } + }, + ] +} + +} + +} + ``` +

+ Response syntax can be referred [start_instances - Boto3 1.40.50 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/start_instances.html) +

+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "The parameter instancesSet cannot be used with the parameter maxResults"`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: ab-ec2-startInstance-test +description: '' +workflowInputs: + arnRole: + type: String + region: + type: String + defaultValue: us-west-2 + instanceIds: + type: list + defaultValue: ["i-123456789abcdef0"] +steps: + - name: aws_ec2_startInstances_1 + type: action + action: aws.ec2.startInstances + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: ${{ .workflowInputs.region }} + instanceIds: ${{ .workflowInputs.instanceIds }} + next: end + ``` +
+
+
+
+
+ + + + Stops an Amazon EBS-backed instance + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**instanceIds**RequiredList`"[\"i-0123456789abcdef0\", \"i-0fedcba9876543210\"]"`
**hibernate**OptionalBooleantrue or false (Default: `false`)
**force**OptionalBooleantrue or false (Default: `false`)
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + In the action input, at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object + ```yaml + { + 'StoppingInstances': [ + { + 'InstanceId': 'string', + 'CurrentState': { + 'Code': 123, + 'Name': 'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped' + }, + 'PreviousState': { + 'Code': 123, + 'Name': 'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped' + } + }, + ] +} + ``` +

+ Response syntax can be referred [stop_instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/stop_instances.html) +

+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "An error occurred (InvalidInstanceID.Malformed) when calling the StopInstances operation: The instance ID 'i-123456789' is malformed"`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: ec2_stop_instance +description: '' +workflowInputs: + arnRole: + type: String + region: + type: String + defaultValue: us-west-2 + instanceIds: + type: list + defaultValue: ["i-123456789abcdef0"] +steps: + - name: aws_stop_instances_1 + type: action + action: aws.ec2.stopInstances + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: ${{ .workflowInputs.region }} + instanceIds: ${{ .workflowInputs.instanceIds }} + next: end + ``` +
+
+
+
+
+ + + + Requests a reboot of the specified instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored. + + If an instance does not cleanly shut down within a few minutes, Amazon EC2 performs a hard reboot. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**instanceIds**RequiredList`"[\"i-0123456789abcdef0\", \"i-0fedcba9876543210\"]"`
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + In the action input, at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object[reboot_instances - Boto3 1.40.56 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/reboot_instances.html)
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: ""`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: reboot-ec2-test +description: '' +workflowInputs: + arnRole: + type: String + region: + type: String + defaultValue: us-west-2 + instanceIds: + type: list + defaultValue: ["i-123456789abcdef0"] +steps: + - name: aws_ec2_rebootInstances_1 + type: action + action: aws.ec2.rebootInstances + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: ${{ .workflowInputs.region }} + instanceIds: ${{ .workflowInputs.instanceIds }} + next: end + ``` +
+
+
+
+
+ + + + Shuts down the specified instances. This operation is [idempotent](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html); if you terminate an instance more than once, each call succeeds. + + If you specify multiple instances and the request fails (for example, because of a single incorrect instance ID), none of the instances are terminated. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**instanceIds**RequiredList`"[\"i-0123456789abcdef0\", \"i-0fedcba9876543210\"]"`
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + In the action input, at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object + ```yaml + { + 'TerminatingInstances': [ + { + 'InstanceId': 'string', + 'CurrentState': { + 'Code': 123, + 'Name': 'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped' + }, + 'PreviousState': { + 'Code': 123, + 'Name': 'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped' + } + }, + ] +} + ``` +

+ Response syntax can be referred [terminate_instances - Boto3 1.40.50 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/terminate_instances.html) +

+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "An error occurred (InvalidInstanceID.Malformed) when calling the TerminateInstances operation: The instance ID 'i-012345678' is malformed"`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: ec2-terminate-test +description: '' +workflowInputs: + arnRole: + type: String + region: + type: String + defaultValue: us-west-2 + instanceIds: + type: list + defaultValue: ["i-123456789abcdef0"] +steps: + - name: aws_ec2_terminateInstances_1 + type: action + action: aws.ec2.terminateInstances + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: ${{ .workflowInputs.region }} + instanceIds: ${{ .workflowInputs.instanceIds }} + next: end + ``` +
+
+
+
+
+ + + + Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and save data before shutting down an instance. + + The location of the source EBS volume determines where you can create the snapshot. + + + + + Inputs + + + + Outputs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**description**OptionalString`"This is a test snapshot"`
**outpostArn**OptionalString`“arn:aws:ec2:us-east-1:123456789012:outpost/op-1a2b3c4d5e6f7g8h9”`
**volumeId**RequiredString“`vol-0123456789abcdef0`“
**tagSpecifications**OptionalList`[{"ResourceType":"snapshot","Tags":[{"Key":"testKey","Value":"testValue"}]}]`
**location**OptionalString`“regional”`
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + Input at least one of the AWS credentials (short, long, role) should be provided, where role take precedence over the others. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object + ```yaml + { + 'OwnerAlias': 'string', + 'OutpostArn': 'string', + 'Tags': [ + { + 'Key': 'string', + 'Value': 'string' + }, + ], + 'StorageTier': 'archive'|'standard', + 'RestoreExpiryTime': datetime(2015, 1, 1), + 'SseType': 'sse-ebs'|'sse-kms'|'none', + 'AvailabilityZone': 'string', + 'TransferType': 'time-based'|'standard', + 'CompletionDurationMinutes': 123, + 'CompletionTime': datetime(2015, 1, 1), + 'FullSnapshotSizeInBytes': 123, + 'SnapshotId': 'string', + 'VolumeId': 'string', + 'State': 'pending'|'completed'|'error'|'recoverable'|'recovering', + 'StateMessage': 'string', + 'StartTime': datetime(2015, 1, 1), + 'Progress': 'string', + 'OwnerId': 'string', + 'Description': 'string', + 'VolumeSize': 123, + 'Encrypted': True|False, + 'KmsKeyId': 'string', + 'DataEncryptionKeyId': 'string' +} + ``` +

+ Response syntax can be referred [create_snapshot](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/create_snapshot.html). +

+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "The parameter instancesSet cannot be used with the parameter maxResults"`
+
+
+
+
+ + + + Deletes the specified snapshot. + + You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first deregister the AMI before you can delete the snapshot. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**snapshotId**RequiredString`“snapshot-id-1"`
**selectors**OptionalString`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + Input at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object + No Response in case of `success : true` +

+ Response syntax can be referred [delete_snapshot - Boto3 1.40.55 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2/client/delete_snapshot.html). +

+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "Failed to delete snapshot"`
+
+ + + + + + + + + + + + + +
Workflow Example
+ ```yaml + name: ec2-deleteSnapshot-test +description: '' +workflowInputs: + arnRole: + type: String + region: + type: String + defaultValue: us-west-2 + snapshotId: + type: list + defaultValue: snapshot-id-1 +steps: + - name: aws_ec2_deleteSnapshot_1 + type: action + action: aws.ec2.deleteSnapshot + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: ${{ .workflowInputs.region }} + snapshotId: ${{ .workflowInputs.snapshotId }} + next: end + ``` +
+
+
+
+
+ + + + Invokes an AWS Bedrock agent. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**agentId**RequiredString`Q123456789`
**agentAliasId**RequiredString`AL12345678`
**sessionId**OptionalString` e1572683-d2dd-4904-a32a-36f398b52dd5`
**inputText**RequiredString`“your prompt to agent”`
**parameters**OptionalMap + ```yaml +{ + +invocationId : “your-invocation-id“, + +endSession : True + +} + ``` +
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object + ```yaml + { + "success": true, + "response": { + "contentType": "application/json", + "sessionId": "046d9e16-7b2b-4404-88c0-1fa8efb655a9", + "completion": "Response from bedrock agent" + } +} + ``` +
**success**Boolean`success: true | false`
**errorMessage**String`An error occurred (ValidationException) when calling the InvokeAgent operation`
+
+ + + + + + + + + + + + + +
Workflow Example
+ ```yaml + name: test-bedrock-agent +description: 'This invokes an aws bedrock agent' + +steps: + - name: aws_bedrock_invokeAgent_1 + type: action + action: aws.bedrock.invokeAgent + version: '1' + inputs: + region: us-east-1 + agentId: Agent123456 + agentAliasId: Alias12345 + sessionId: 5aa61ad7-8e57-4369-a178-66ff5dae71f2 + inputText: What are the top 3 developments in AI? + awsRoleArn: ${{ :secrets:arnRole }} + parameters: + endSession: false + next: end + ``` +
+
+
+
+
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-execute-api.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-execute-api.mdx new file mode 100644 index 00000000000..8eaa417a171 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-execute-api.mdx @@ -0,0 +1,327 @@ +--- +title: "AWS Execute API" +tags: + - workflow automation + - workflow + - workflow automation actions + - AWS actions + - AWS Execute API +metaDescription: "A list of available aws execute api in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for aws execute api available in the workflow automation actions catalog. These actions enable you to execute any aws api operation. + +## Prerequisites + +Before using AWS actions in workflow automation, ensure you have: + + * An AWS account with appropriate permissions. + * AWS credentials configured (IAM user credentials, IAM role ARN, or session credentials). + * The necessary IAM permissions for the specific AWS services you plan to use. + +See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for information on how to create IAM users and IAM roles, and set up static and session AWS credentials for integration with workflow automation AWS actions. + +## Security and IAM configuration + + To use this action, you must configure AWS credentials. See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for detailed instructions on creating an IAM role or IAM user. + + + **Security best practice:** When defining IAM policies for this action, always use least-privilege access. Grant only the specific AWS API actions your workflow requires, and restrict permissions to specific resources rather than using wildcards. + + +## Required IAM permissions + + The permissions you need depend on which AWS services and APIs your workflow calls. Use the examples below as templates for creating least-privilege policies. + + **Example 1: Send messages to a specific SQS queue** + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": "sqs:SendMessage", + "Resource": "arn:aws:sqs:us-west-2::" + } + ] + } + ``` + + **Examples 2: Query a specific DynamoDB table** + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": "dynamodb:Query", + "Resource": "arn:aws:dynamodb:us-west-2::table/" + } + ] + } + ``` + + **Example 3: Multiple services with specific permissions** + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": "sqs:SendMessage", + "Resource": "arn:aws:sqs:us-west-2::" + }, + { + "Effect": "Allow", + "Action": "dynamodb:Query", + "Resource": "arn:aws:dynamodb:us-west-2::table/" + } + ] + } + ``` + + + - Replace ``, ``, and `` with your actual values + - Find available AWS service APIs in the [Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) + - For more complex IAM policy patterns, see the [AWS IAM documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) + + + For more information on how this action works, see the [AWS Systems Manager executeAwsApi documentation](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-action-executeAwsApi.html). + +## Call an AWS API [#aws-execute-api] + + Execute any AWS API operation for a specified service. It supports providing AWS credentials, region, service name, API name, and optional parameters. The action can return outputs such as success status, response data, and error messages, making it versatile for interacting with AWS services programmatically. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**service**RequiredString`service: "sqs"`.[AWS available services](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)
**api**RequiredString`api: "create_queue"`
**parameters**RequiredMap +

+ ```yaml + parameters: { + "QueueName": "dks-testing-queue", + "Attributes": { + "DelaySeconds": "0", + "MessageRetentionPeriod": "86400" + } +} + ``` +

+
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**Object`{"response":}` - each service and api have different response, for example see the [DynamoDB Query response](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/query.html).
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "User does not have permission to query DynamoDB"`
+ + + - Input at least one of the AWS credentials (short, long, role) should be provided, where the role takes precedence over the others. + - In the action input, if `awsAccessKeyId` and `awsSecretAccessKey` are to be provided, make sure they are static credentials of an IAM user. + - If session credentials are to be used, `awsAccessKeyId`, `awsSecretAccessKey` and `awsSessionToken` must be passed to the action input. + - Refer to [AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for instructions. + - Use selectors to get only the specified parameters as output. + +
+ + + + ### Example: Query a DynamoDB table + + This example demonstrates how to query a DynamoDB table using the `aws.execute.api` action with session credentials. + + ```yaml + name: aws_execute_api_dynamoDB_dks + + workflowInputs: + key: + type: String + defaultValue: "${{ :secrets: }}" + access: + type: String + defaultValue: "${{ :secrets: }}" + region: + type: String + defaultValue: us-east-2 + tableName: + type: String + defaultValue: workflow-definitions-dev + scopedName: + type: String + version: + type: String + defaultValue: "1" + + steps: + - name: executeApi + type: action + action: aws.execute.api + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + service: dynamodb + api: query + parameters: + TableName: ${{ .workflowInputs.tableName }} + KeyConditionExpression: "ScopedName = :scopedNameValue AND Version = :VersionValue" + ExpressionAttributeValues: + ":scopedNameValue": + S: ${{ .workflowInputs.scopedName }} + ":VersionValue": + N: ${{ .workflowInputs.version }} + selectors: + - name: response + expression: '.response' + - name: errorMessage + expression: '.errorMessage' + - name: success + expression: '.success' + + + - name: wait + type: wait + seconds: 2 + + - name: logOutput + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: 'The execute API message output is:${{ .steps.executeApi.outputs.response.Item }}' + licenseKey: '${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }}' + - name: logOutput1 + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: 'does execute API have any error :${{ .steps.executeApi.outputs.errorMessage }}' + licenseKey: '${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }}' + - name: logOutput2 + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: 'is execute successful :${{ .steps.executeApi.outputs.success }}' + licenseKey: '${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }}' + ``` + +
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-lambda.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-lambda.mdx new file mode 100644 index 00000000000..36ff17b2ad5 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-lambda.mdx @@ -0,0 +1,841 @@ +--- +title: "AWS Lambda actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - AWS actions + - AWS Lambda actions +metaDescription: "A list of available AWS Lambda actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for AWS Lambda actions available in the workflow automation actions catalog. These actions enable you to manage and invoke Lambda functions as part of your workflow definitions. + +## Prerequisites + +Before using AWS Lambda actions in workflow automation, ensure you have: + + * An AWS account with appropriate permissions. + * AWS credentials configured (IAM user credentials, IAM role ARN, or session credentials). + * The necessary IAM permissions for Lambda operations. + +See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for information on how to create IAM users and IAM roles, and set up static and session AWS credentials for integration with workflow automation AWS actions. + +## Lambda actions + + + + Invokes a Lambda function synchronously or asynchronously with an optional payload. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**functionName**RequiredString`functionName: "hello-you"`
**payload**OptionalMap + `payload: user: R2-D2` +
**selectors**OptionalList`[{\"name\": \"payload\", \"expression\": \".payload\"}]`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**payload**Map + ```yaml + { + statusCode=200.0, + body=\"Hello R2-D2!\" + } + ``` +
**statusCode**Int`statusCode: 200`
**executedVersion**String`executedVersion: "$LATEST"`
**functionError**String`functionError: "Unhandled::Error occurred"`
**success**Boolean`Status of the request`
**errorMessage**String`Failure reason as message`
+ + + - In action input at least one of the AWS Credentials (short, long, role) should be provided, where role take precedence over the others. + - In action input, if `awsAccessKeyId` and `awsSecretAccessKey` are to be provided make sure they are static credentials of an IAM user. + - If session credentials are to be used, `awsAccessKeyId`, `awsSecretAccessKey` and `awsSessionToken` must be passed to action input. + - The credential owner must have the `lambda:InvokeFunction` IAM permission to invoke the lambda function passed in the action input. + - The selectors to get the only specified parameters as output. + +
+ + + + + + + + + + + + + + + + + + + +
Workflow definitionInputsOutputsOutputs when selectors are provided
+ ```yaml + name: LambdaTest + + workflowInputs: + region: + type: String + functionName: + type: String + payload: + type: Map + defaultValue: {} + + steps: + - name: awsLambda + type: action + action: aws.lambda.invoke + version: 1 + inputs: + region: ${{ .workflowInputs.region }} + functionName: ${{ .workflowInputs.functionName }} + awsAccessKeyId: ${{ :secrets:awsAccessKeyId }} + awsSecretAccessKey: ${{ :secrets:awsSecretAccessKey }} + awsSessionToken: ${{ :secrets:awsSessionToken }} + payload: ${{ .workflowInputs.payload }} + selectors: ${{ .workflowInputs.selectors }} + + - name: logOutput + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: 'The lambda function message output is:${{ .steps.awsLambda.outputs.payload.body }}' + licenseKey: '${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }}' + ``` + + ```yaml + { + "inputs": [ + { + "key": "region" + "value": "\"us-east-2\"" + }, + { + "key": "functionName" + "value": "\"hello-you\"" + }, + { + "key": "payload" + "value": "{\"user\":\"R2-D2\"}" + }, + { + "key": "selectors" + "value": "[{\"name\": \"payload\", \"expression\": \".payload\"}]" + } + ] + } + ``` + + ```yaml + Success case: + { + success: true + executedVersion=$LATEST, + statusCode=200, + payload={ + statusCode=200.0, + body=\"Hello R2-D2\" + } + } + + Failure case: + { + "errorMessage": "Invalid format", + "success": false + } + ``` + + ```yaml + { + payload={ + statusCode=200.0, + body=\"Hello R2-D2\" + } + } + ``` +
+
+
+
+
+ + + + Modifies the configuration of a specific AWS Lambda function. Provide only the parameters you want to change. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**functionName**RequiredString`"my-lambda-function-to-update"`
**role**OptionalString`arn:aws:iam::123456789012:role/new-lambda-role`
**handler**OptionalString`"main.new_handler"`
**description**OptionalString`Updated function description`
**parameters**OptionalMap + ```yaml + { + "Timeout": "60", + "MemorySize": 123, + }, + ``` +
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + To support a wide range of inputs, the `parameters` map accepts any optional argument available. This allows you to dynamically construct requests by adding multiple fields. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**object + ```yaml + [{"success":true,"response":{"FunctionName":"hello-you","FunctionArn":"arn:aws:lambda:us-east-2:----:function:hello-you","Runtime":"nodejs20.x","Role":"arn:aws:iam::----:role/TF-hello-you-role","Handler":"hello-you.handler","CodeSize":334,"Description":"This is hello you description from action","Timeout":30,"MemorySize":128,"LastModified":"2025-09-23T13:57:03.000+0000","CodeSha256":"CU03aDDg+34=","Version":"$LATEST","TracingConfig":{"Mode":"PassThrough"},"RevisionId":"0f1e4d9b-c45a-4896-a32d-7cd78e77a273","State":"Active","LastUpdateStatus":"InProgress","LastUpdateStatusReason":"The function is being created.","LastUpdateStatusReasonCode":"Creating","PackageType":"Zip","Architectures":["x86_64"],"EphemeralStorage":{"Size":512},"SnapStart":{"ApplyOn":"None","OptimizationStatus":"Off"},"RuntimeVersionConfig":{"RuntimeVersionArn":"arn:aws:lambda:us-east-2::runtime:01eab27397bfdbdc243d363698d4bc355e3c8176d34a51cd47dfe58cf977f508"},"LoggingConfig":{"LogFormat":"Text","LogGroup":"/aws/lambda/hello-you"}}}] + ``` +

+ Response syntax can be referred to [update_function_configuration - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda/client/update_function_configuration.html) +

+
**success**Boolean`success: true | false`
**errorMessage**String`[ { "errorMessage": "An error occurred (ResourceNotFoundException) when calling the UpdateFunctionConfiguration operation: Function not found: arn:aws:lambda:us-east-2:661945836867:function:my-lambda-function-to-update", "success": false, "response": null } ]`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: lambda-update-config-test + description: 'Updates the timeout and memory of a Lambda function' + workflowInputs: + arnRole: + type: String + steps: + - name: aws_lambda_update_function_configuration_1 + type: action + action: aws.lambda.updateFunctionConfiguration + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: us-west-2 + functionName: my-lambda-function-to-update + parameters: + Timeout:60 + MemorySize:123 + + next: end + ``` +
+
+
+
+
+ + + + Retrieves the configuration details, code location, and other metadata for a specific AWS Lambda function. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**functionName**RequiredString`"my-lambda-function"`
**parameters**OptionalMap + ```yaml + { + "Qualifier": "1" + }, + ``` +
**selectors**OptionalList`[[{"name": "response", "expression": ".response"}]`
+ + + To support a wide range of inputs, the `parameters` map accepts any optional argument available. This allows you to dynamically construct requests by adding multiple fields. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**object + ```yaml + {"response": } + ``` +

+ Response syntax can be referred to [update_function_configuration - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda/client/get_function.html) +

+
**success**Boolean`success: true | false`
**errorMessage**String`"errorMessage": "ResourceNotFoundException: Function not found"`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: lambda-get-function-test + description: 'Retrieves the configuration of a specific Lambda function' + workflowInputs: + arnRole: + type: String + steps: + - name: aws_lambda_getFunction_1 + type: action + action: aws.lambda.getFunction + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: us-east-1 + FunctionName: hello-you + parameters: + Qualifier: 1 + next: end + ``` +
+
+
+
+
+ + + Returns a list of aliases for a specific AWS Lambda function. Aliases are pointers to function versions. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**functionName**RequiredString`"my-lambda-function"`
**marker**OptionalString + Pass the `NextMarker` token from a previous response for pagination. +

+ e.g., `"abcd....."` +

+
**maxItems**OptionalInt + Limit the number of aliases returned +

+ e.g., `123` +

+
**parameters**OptionalMap + For additional optional API parameters. +

+ e.g., `{"AnotherOptionalParam": "value"}` +

+
**selectors**OptionalList`[{"name": "response", "expression": ".response"}]`
+ + + - **Pagination**: Use the `Marker` and `MaxItems` inputs to paginate through a large number of aliases. + - To support a wide range of inputs, the `parameters` map accepts any optional argument available. This allows you to dynamically construct requests by adding multiple fields. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**object + ```yaml + {"response": } + ``` +

+ Response syntax can be referred to [update_function_configuration - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda/client/list_aliases.html) +

+
**success**Boolean`success: true | false`
**errorMessage**String`"errorMessage": "ResourceNotFoundException: Function not found"`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: lambda-list-aliases-test + description: 'Lists all aliases for a Lambda function' + workflowInputs: + arnRole: + type: String + steps: + - name: aws_lambda_list_aliases_1 + type: action + action: aws.lambda.listAliases + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: us-east-1 + functionName: hello-you + parameters: + FunctionVersion: 1 + next: end + ``` +
+
+
+
+
+
diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-s3.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-s3.mdx new file mode 100644 index 00000000000..8ce3685ab11 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-s3.mdx @@ -0,0 +1,1227 @@ +--- +title: "AWS S3 actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - AWS actions + - AWS S3 actions +metaDescription: "A list of available aws s3 actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for aws s3 actions available in the workflow automation actions catalog. These actions enable you to s3 bucket and object operations. + +## Prerequisites + +Before using AWS actions in workflow automation, ensure you have: + + * An AWS account with appropriate permissions. + * AWS credentials configured (IAM user credentials, IAM role ARN, or session credentials). + * The necessary IAM permissions for the specific AWS services you plan to use. + +See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for information on how to create IAM users and IAM roles, and set up static and session AWS credentials for integration with workflow automation AWS actions. + + + + + The `listObjectsV2` method returns some or all (up to 1,000) of the objects in a bucket. It is a more modern and recommended version of `list_objects`. + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**bucket**RequiredString"`examplebucket`"
**prefix**OptionalString"`path/to/folder/`"
**maxKeys**OptionalInteger`100`
**continuationToken**OptionalString`some-token`
**parameters**OptionalMap + ```graphql + { + "Delimiter": "/" + } + ``` +
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldType
EncodingTypeString
FetchOwnerBoolean
StartAfterString
RequestPayerString
ExpectedBucketOwnerString
OptionalObjectAttributesList
DelimiterString
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**object + + + ```yaml + { + 'IsTruncated': True|False, + 'Contents': [ + { + 'Key': 'string', + 'LastModified': datetime(2015, 1, 1), + 'ETag': 'string', + 'ChecksumAlgorithm': [ + 'CRC32'|'CRC32C'|'SHA1'|'SHA256'|'CRC64NVME', + ], + 'ChecksumType': 'COMPOSITE'|'FULL_OBJECT', + 'Size': 123, + 'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'|'OUTPOSTS'|'GLACIER_IR'|'SNOW'|'EXPRESS_ONEZONE'|'FSX_OPENZFS', + 'Owner': { + 'DisplayName': 'string', + 'ID': 'string' + }, + 'RestoreStatus': { + 'IsRestoreInProgress': True|False, + 'RestoreExpiryDate': datetime(2015, 1, 1) + } + }, + ], + 'Name': 'string', + 'Prefix': 'string', + 'Delimiter': 'string', + 'MaxKeys': 123, + 'CommonPrefixes': [ + { + 'Prefix': 'string' + }, + ], + 'EncodingType': 'url', + 'KeyCount': 123, + 'ContinuationToken': 'string', + 'NextContinuationToken': 'string', + 'StartAfter': 'string', + 'RequestCharged': 'requester' + } + ``` +

+ Response syntax can be referred to in the [list_objects_v2 - Boto3 1.40.52 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/list_objects_v2.html) +

+
+
+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "Parameter validation failed:\nInvalid bucket name \"s3-activity-test \": Bucket name must match the regex \"^[a-zA-Z0-9.\\-_]{1,255}$\" or be an ARN matching the regex \"^arn:(aws).:(s3|s3-object-lambda):[a-z\\-0-9]:[0-9]{12}:accesspoint[/:][a-zA-Z0-9\\-.]{1,63}$|^arn:(aws).*:s3-outposts:[a-z\\-0-9]+:[0-9]{12}:outpost[/:][a-zA-Z0-9\\-]{1,63}[/:]accesspoint[/:][a-zA-Z0-9\\-]{1,63}$\""`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: aws-s3-list-objects-v2 + description: 'List Objects in an AWS S3 Bucket' + + steps: + - name: aws_s3_listObjectsV2_1 + type: action + action: aws.s3.listObjectsV2 + version: '1' + inputs: + awsRoleArn: "arn:aws:iam::123456789012:role/my-workflow-role" + region: "us-east-2" + bucket: "examplebucket" + prefix: "path/to/folder/" + maxKeys: 100 + continuationToken: "some-token" + next: end + ``` +
+
+
+
+
+ + + + The `deleteObject` method permanently removes a single object from a bucket. For versioned buckets, this operation inserts a **delete marker**, which hides the object without permanently deleting it unless a `VersionId` is specified. + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**bucket**RequiredString"`examplebucket`"
**key**RequiredString"`path/to/object.txt`"
**parameters**OptionalMap + ```yaml + { + "RequestPayer": "test", + "BypassGovernanceRetention": false + "VersionId":"testVersion", + "MFA":"Test" + } + ``` +
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldType
RequestPayerString
BypassGovernanceRetentionBoolean
ExpectedBucketOwnerString
IfMatchString
IfMatchLastModifiedTimeMap
IfMatchSizeInt
VersionIdString
MFAString
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**object + + + ```yaml + { + 'DeleteMarker': True|False, + 'VersionId': 'string', + 'RequestCharged': 'requester' + } + ``` +

+ Response syntax can be referred [delete_object - Boto3 1.40.55 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/delete_object.html) +

+
+
+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "Parameter validation failed:\nInvalid bucket name \"s3-activity-test \": Bucket name must match the regex \"^[a-zA-Z0-9.\\-_]{1,255}$\" or be an ARN matching the regex \"^arn:(aws).:(s3|s3-object-lambda):[a-z\\-0-9]:[0-9]{12}:accesspoint[/:][a-zA-Z0-9\\-.]{1,63}$|^arn:(aws).*:s3-outposts:[a-z\\-0-9]+:[0-9]{12}:outpost[/:][a-zA-Z0-9\\-]{1,63}[/:]accesspoint[/:][a-zA-Z0-9\\-]{1,63}$\""`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: aws-s3-delete-object + description: 'Delete an AWS S3 Object' + + steps: + - name: aws_s3_deleteObject_1 + type: action + action: aws.s3.deleteObject + version: '1' + inputs: + awsRoleArn: "arn:aws:iam::123456789012:role/my-workflow-role" + region: "us-west-2" + bucket: "my-bucket" + key: "path/to/object.txt" + next: end + ``` +
+
+
+
+
+ + + + Adds an object to a bucket. Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**bucket**RequiredString"`examplebucket`"
**key**RequiredString"`path/to/object.txt`"
**body**RequiredString`file content`
**contentType**RequiredString"`plain/text`"
**tagging**OptionalString`“key1=value1"`
**parameters**OptionalMap + ```yaml + { + "ServerSideEncryption": "AES256", + "Metadata": { + 'metadata1': 'value1', + 'metadata2': 'value2', + } + } + ``` +
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldType
RequestPayerString
ACLString
CacheControlString
ContentDispositionString
ContentEncodingString
ContentLanguageString
ContentLengthInt
ContentMD5String
ChecksumAlgorithmString
ChecksumCRC32String
ChecksumCRC32CString
ChecksumCRC64NVMEString
ChecksumSHA1String
ChecksumSHA256String
ExpiresMap
IfMatchString
IfNoneMatchString
GrantFullControlString
GrantReadString
GrantReadACPString
GrantWriteACPString
WriteOffsetBytesInt
ServerSideEncryptionString
StorageClassString
WebsiteRedirectLocationString
SSECustomerAlgorithmString
SSECustomerKeyString
SSEKMSKeyIdString
SSEKMSEncryptionContextString
BucketKeyEnabledBoolean
RequestPayerString
ObjectLockModeString
ObjectLockRetainUntilDateMap
ObjectLockLegalHoldStatusString
ExpectedBucketOwnerString
MetadataMap
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**object + + + ```yaml + { + 'Expiration': 'string', + 'ETag': 'string', + 'ChecksumCRC32': 'string', + 'ChecksumCRC32C': 'string', + 'ChecksumCRC64NVME': 'string', + 'ChecksumSHA1': 'string', + 'ChecksumSHA256': 'string', + 'ChecksumType': 'COMPOSITE'|'FULL_OBJECT', + 'ServerSideEncryption': 'AES256'|'aws:fsx'|'aws:kms'|'aws:kms:dsse', + 'VersionId': 'string', + 'SSECustomerAlgorithm': 'string', + 'SSECustomerKeyMD5': 'string', + 'SSEKMSKeyId': 'string', + 'SSEKMSEncryptionContext': 'string', + 'BucketKeyEnabled': True|False, + 'Size': 123, + 'RequestCharged': 'requester' + } + ``` +

+ Response syntax can be referred [put_object - Boto3 1.40.59 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/put_object.html) +

+
+
+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "An error occurred (NoSuchBucket) when calling the PutObject operation: The specified bucket does not exist"`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: s3-put-object + description: 'Put an AWS S3 Object' + + steps: + - name: aws_s3_putObject_1 + type: action + action: aws.s3.putObject + version: '1' + inputs: + awsRoleArn: "arn:aws:iam::123456789012:role/my-workflow-role" + region: "us-east-2" + bucket: "examplebucket" + key: "path/to/object.txt" + body: "Hello world" + contentType: "plain/text" + tagging: "key1=value1" + next: end + ``` +
+
+
+
+
+ + + + In the `GetObject` request, specify the full key name for the object. + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**bucket**RequiredString"`examplebucket`"
**key**RequiredString"`path/to/object.txt`"
**versionId**OptionalString`"some-version-id"`
**range**OptionalString`bytes=0-99`
**parameters**OptionalMap +```yaml + { + "ChecksumMode": "ENABLED", + "ExpectedBucketOwner": "test-user" + } +``` +
**selectors**OptionalList`[{\"name\": \"response\", \"expression\": \".response\"}, {\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"errorMessage\", \"expression\": \".errorMessage\"}]`
+ + + The action will fail if the object is more than 100kb. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldType
IfMatchString
IfModifiedSinceMap
IfNoneMatchString
IfUnmodifiedSinceMap
ResponseCacheControlString
ResponseContentDispositionString
ResponseContentEncodingString
ResponseContentLanguageString
ResponseContentTypeString
ResponseExpiresMap
SSECustomerAlgorithmString
SSECustomerKeyString
RequestPayerString
PartNumberInt
ExpectedBucketOwnerString
ChecksumModeString
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**object + + + ```yaml + { + 'Body': StreamingBody(), + 'DeleteMarker': True|False, + 'AcceptRanges': 'string', + 'Expiration': 'string', + 'Restore': 'string', + 'LastModified': datetime(2015, 1, 1), + 'ContentLength': 123, + 'ETag': 'string', + 'ChecksumCRC32': 'string', + 'ChecksumCRC32C': 'string', + 'ChecksumCRC64NVME': 'string', + 'ChecksumSHA1': 'string', + 'ChecksumSHA256': 'string', + 'ChecksumType': 'COMPOSITE'|'FULL_OBJECT', + 'MissingMeta': 123, + 'VersionId': 'string', + 'CacheControl': 'string', + 'ContentDisposition': 'string', + 'ContentEncoding': 'string', + 'ContentLanguage': 'string', + 'ContentRange': 'string', + 'ContentType': 'string', + 'Expires': datetime(2015, 1, 1), + 'ExpiresString': 'string', + 'WebsiteRedirectLocation': 'string', + 'ServerSideEncryption': 'AES256'|'aws:fsx'|'aws:kms'|'aws:kms:dsse', + 'Metadata': { + 'string': 'string' + }, + 'SSECustomerAlgorithm': 'string', + 'SSECustomerKeyMD5': 'string', + 'SSEKMSKeyId': 'string', + 'BucketKeyEnabled': True|False, + 'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE'|'OUTPOSTS'|'GLACIER_IR'|'SNOW'|'EXPRESS_ONEZONE'|'FSX_OPENZFS', + 'RequestCharged': 'requester', + 'ReplicationStatus': 'COMPLETE'|'PENDING'|'FAILED'|'REPLICA'|'COMPLETED', + 'PartsCount': 123, + 'TagCount': 123, + 'ObjectLockMode': 'GOVERNANCE'|'COMPLIANCE', + 'ObjectLockRetainUntilDate': datetime(2015, 1, 1), + 'ObjectLockLegalHoldStatus': 'ON'|'OFF' + } + ``` +

+ Response syntax can be referred to in the [get_object - Boto3 1.40.59 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/get_object.html) +

+
+
+
**success**Boolean`success: true | false`
**errorMessage**String`errorMessage: "An error occurred (InvalidArgument) when calling the GetObject operation: Invalid version id specified"`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: s3-get-object + description: 'Get an AWS S3 Object' + + steps: + - name: aws_s3_getObject_1 + type: action + action: aws.s3.getObject + version: '1' + inputs: + awsRoleArn: "arn:aws:iam::123456789012:role/my-workflow-role" + region: "us-east-2" + bucket: "examplebucket" + key: "path/to/object.txt" + next: end + ``` +
+
+
+
+
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sns.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sns.mdx new file mode 100644 index 00000000000..a58ded5ba15 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sns.mdx @@ -0,0 +1,267 @@ +--- +title: "AWS SNS actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - AWS actions + - AWS SNS actions +metaDescription: "A list of available aws sns actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for aws sns actions available in the workflow automation actions catalog. These actions enable you to sns topic operations. + +## Prerequisites + +Before using AWS actions in workflow automation, ensure you have: + + * An AWS account with appropriate permissions. + * AWS credentials configured (IAM user credentials, IAM role ARN, or session credentials). + * The necessary IAM permissions for the specific AWS services you plan to use. + +See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for information on how to create IAM users and IAM roles, and set up static and session AWS credentials for integration with workflow automation AWS actions. + + + + + Sends a message to an Amazon SNS topic. All subscribers to the topic will receive the message. + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**message**RequiredString + Messages must be UTF-8 encoded strings and at most 256 KB in size +

+ `'Workflow failed at step 3'` +

+
**topicArn**OptionalString + If you don’t specify a value for the topicArn parameter, Must specify a value for the targetArn parameters. +

+ `“arn:aws:sns:us-east-2:123456789012:my-topic”` +

+
**targetArn**OptionalString + If you don’t specify a value for the topicArn parameter, Must specify a value for the targetArn parameters. +

+ `"arn:aws:sns:us-east-2:123456789012:MySNSTopic"` +

+
**subject**OptionalString`"Workflow Update"`
**MessageStructure**OptionalString`MessageStructure`
**messageAttributes**OptionalMap + ```json + { + 'string': { + 'DataType': 'string', + 'StringValue': 'string', + 'BinaryValue': b'bytes' + } + }, + ``` +
**messageDeduplicationId**OptionalString`“abc123deduplicationId5678”`
**messageGroupId**OptionalString`“order-processing-group-2023_A”`
+ + + + + + + + + + + + + + + + + + +
Input FieldTypeExample
PhoneNumberStringWe do not include PhoneNumber as it is considered Personally Identifiable Information (PII).
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**object + `[{"success":true,"response":{"MessageId":"2333ededwedwed-52f5-a716-e10355e3e2ff"}}]` +

+ Response syntax can be referred to sns-publish- Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sns/client/publish.html) +

+
**success**Boolean`success: true | false`
**errorMessage**String`[{"errorMessage":"An error occurred (InvalidParameter) when calling the Publish operation: Invalid parameter: TopicArn or TargetArn Reason: no value for required parameter","success":false,"response":null}]`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: sns-publish-test + description: Publishes a notification to an SNS topic + workflowInputs: + arnRole: + type: String + steps: + - name: aws_sns_publish_1 + type: action + action: aws.sns.publish + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: us-east-1 + topicArn: arn:aws:sns:us-east-1:123456789012:workflow-test-topic + subject: "Workflow Update" + message: "The data processing workflow has completed successfully." + next: end + ``` +
+
+
+
+
+
+ diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sqs.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sqs.mdx new file mode 100644 index 00000000000..7f0a7b7c9f4 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sqs.mdx @@ -0,0 +1,416 @@ +--- +title: "AWS SQS actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - AWS actions + - AWS SQS actions +metaDescription: "A list of available aws sqs actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for aws sqs actions available in the workflow automation actions catalog. These actions enable you to sqs queue operations. + +## Prerequisites + +Before using AWS actions in workflow automation, ensure you have: + + * An AWS account with appropriate permissions. + * AWS credentials configured (IAM user credentials, IAM role ARN, or session credentials). + * The necessary IAM permissions for the specific AWS services you plan to use. + +See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for information on how to create IAM users and IAM roles, and set up static and session AWS credentials for integration with workflow automation AWS actions. + + + + + Sends a message to a specified Amazon SQS queue. + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**queueUrl**RequiredString"`https://sqs.us-east-2.amazonaws.com/123456789012/my-queue`"
**messageBody**RequiredString`“This is a test message”`
**messageDeduplicationId**OptionalString`“abc123deduplicationId5678”`
**messageGroupId**OptionalString`“group1”`
**messageAttributes**OptionalMap +

+ `{ "my_attribute_name_1": { "DataType": "String", "StringValue":"my_attribute_value_1"},` +

+ +

+ `"my_attribute_name_2": { "DataType": "String", "StringValue":"my_attribute_value_2"}}` +

+
**delaySeconds**OptionalInt`123`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**object + `{"statusCode":200, "payload":{"status":"success","data":{"MessageId":"e9b73a52-d018-4a73-9fcd-8efb682fba43","MD5OfMessageBody":"fae535c7f7c5687a1c3d8bc52288e33a","MD5OfMessageAttributes":"3ae3c4f59958e031d0d53af2d157e834", }, "message":"Message sent successfully to the SQS queue." }}` +

+ Response syntax can be referred to [SQS send_message - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs/client/send_message.html) +

+
**success**Boolean`success: true | false`
**errorMessage**String`"errorMessage": "SQS.Client.exceptions.QueueDoesNotExist: "The specified queue does not exist.""`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: sqs-send-message-test + description: Sends a message to an SQS queue + workflowInputs: + arnRole: + type: String + steps: + - name: aws_sqs_sendMessage_1 + type: action + action: aws.sqs.sendMessage + version: '1' + inputs: + awsRoleArn: ${{ .workflowInputs.arnRole }} + region: us-east-2 + queueUrl: https://sqs.us-east-2.amazonaws.com/123456789012/workflow-test-queue + messageBody: "This is a test message" + messageAttributes: + my_attribute_name_1: + DataType: "String" + StringValue: "my_attribute_value_1" + my_attribute_name_2: + DataType: "String" + StringValue: "my_attribute_value_2" + next: end + ``` +
+
+
+
+
+
+ + + + + Retrieves one or more messages, from the specified queue + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`"us-east-2"`
**queueUrl**RequiredString"`https://sqs.us-east-2.amazonaws.com/123456789012/my-queue`"
**maxNumberOfMessages**OptionalInt`10`
**waitTimeSeconds**OptionalInt`5`
**VisibilityTimeout**OptionalInt`123`
**AttributeNames**OptionalList + ```yaml + [ + 'All'|'Policy'|'VisibilityTimeout'|'MaximumMessageSize'|'MessageRetentionPeriod'|'ApproximateNumberOfMessages'|'ApproximateNumberOfMessagesNotVisible'|'CreatedTimestamp'|'LastModifiedTimestamp'|'QueueArn'|'ApproximateNumberOfMessagesDelayed'|'DelaySeconds'|'ReceiveMessageWaitTimeSeconds'|'RedrivePolicy'|'FifoQueue'|'ContentBasedDeduplication'|'KmsMasterKeyId'|'KmsDataKeyReusePeriodSeconds'|'DeduplicationScope'|'FifoThroughputLimit'|'RedriveAllowPolicy'|'SqsManagedSseEnabled', + ] + ``` +
**messageAttributeNames**OptionalList + ```yaml + [ + 'message_attribute_name', + ], + ``` +
**messageSystemAttributeNames**OptionalList`['SenderId', 'SentTimestamp']`
**receiveRequestAttemptId**OptionalString`“req-1234abcd”`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**response**object + `{"response": }
` +

+ Response syntax can be referred to receive_message - Boto3 documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs/client/receive_message.html) +

+
**success**Boolean`success: true | false`
**errorMessage**String`"errorMessage": "SQS.Client.exceptions.QueueDoesNotExist: "The specified queue does not exist.""`
+
+ + + + + + + + + + + + + +
Workflow example
+```yaml + name: sqs-receive-message-test + description: 'Receives a message from an SQS queue' + steps: + - name: aws_sqs_receiveMessage_1 + type: action + action: aws.sqs.receiveMessage + version: '1' + inputs: + awsRoleArn: ${{ :secrets:awsRoleArn }} + region: us-east-1 + queueUrl: https://sqs.us-east-1.amazonaws.com/123456789012/workflow-test-queue + waitTimeSeconds: 5 + maxNumberOfMessages: 10 + messageAttributeNames: ['message_attribute_name'], +``` +
+
+
+
+
+
diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-systemsmanager.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-systemsmanager.mdx new file mode 100644 index 00000000000..bfe6caa5794 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-systemsmanager.mdx @@ -0,0 +1,1320 @@ +--- +title: "AWS Systems Manager actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - AWS actions + - AWS Systems Manager actions +metaDescription: "A list of available aws systems manager actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for aws systems manager actions available in the workflow automation actions catalog. These actions enable you to systems manager automation and document operations. + +## Prerequisites + +Before using AWS actions in workflow automation, ensure you have: + + * An AWS account with appropriate permissions. + * AWS credentials configured (IAM user credentials, IAM role ARN, or session credentials). + * The necessary IAM permissions for the specific AWS services you plan to use. + +See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for information on how to create IAM users and IAM roles, and set up static and session AWS credentials for integration with workflow automation AWS actions. + + + + Write an SSM document to the AWS account based on the aws credentials passed in the action input. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/?id=docs_gateway) + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**documentName**RequiredString`documentName: "my-ssm-document"`
**documentType**OptionalString + `documentType: "Command"` +

Check valid values from [here](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DocumentDescription.html#systemsmanager-Type-DocumentDescription-Status:text=Required%3A%20No-,Status,-The%20status%20of).

+
**documentFormat**OptionalString + `documentFormat: "YAML"` +

Check valid values from [here](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DocumentDescription.html#systemsmanager-Type-DocumentDescription-Status:text=Required%3A%20No-,Status,-The%20status%20of).

+
**documentContent**RequiredStringCheck example
**override**OptionalBoolean + `override: true (default)`. + +

When `true`, always write the document with the provided name even if one already exist.

+ +

When `false`, if a document with the provided `documentName` already exist, the action returns `success: false` and `errorMessage: Document already exists. Please enable override if you want to update the existing document.`

+
**selectors**Optionallist`[{\"name\": \"documentName\", \"expression\": \".documentName\"}, {\"name\": \"documentType\", \"expression\": \".documentType\"}, {\"name\": \"documentStatus\", \"expression\": \".documentStatus\"}, {\"name\": \"success\", \"expression\": \".success\"}]`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeDescription and example
**documentName**String`documentName: "my-ssm-document"`
**documentVersion**String`documentVersion: 1`
**documentType**String`documentType: "Command"`
**documentStatus**String + `documentStatus: "Active"` + +

The value will be one of the statuses from [here](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DocumentDescription.html#systemsmanager-Type-DocumentDescription-Status:text=Required%3A%20No-,Status,-The%20status%20of).

+
**success**Boolean`success: true`
**errorMessage**String`errorMessage: "Some error message from ssm"`
+ + + - In action input, only `awsAccessKeyId` and `awsSecretAccessKey` can be provided but they should be static credentials of an IAM user. + - If session credentials are to be used, `awsAccessKeyId`, `awsSecretAccessKey` and `awsSessionToken` must be passed to action input. + - The selectors to get the only specified parameters as output. + - Refer to [AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials) for instructions. + +
+ + + + **Example 1**: A simple SSM document to list all lambda function + + ```yaml + schemaVersion: '0.3' + description: List all Lambda function names. + mainSteps: + - name: ExecuteAwsApi + action: aws:executeAwsApi + isEnd: true + inputs: + Service: lambda + Api: ListFunctions + outputs: + - Name: resultFunctionName + Selector: $..FunctionName + Type: StringList + outputs: + - ExecuteAwsApi.resultFunctionName + ``` + + **Complete autoflows definition with SSM listing lambda functions** + + ```yaml + name: aws-api + + workflowInputs: + key: + type: String + defaultValue: "${{ :secrets:11933347:USERNAME_AWS_ACCESS_KEY_ID }}" + access: + type: String + defaultValue: "${{ :secrets:11933347:USERNAME_AWS_SECRET_ACCESS_KEY }}" + token: + type: String + defaultValue: "${{ :secrets:11933347:USERNAME_AWS_SESSION_TOKEN }}" + region: + type: String + defaultValue: us-east-2 + + steps: + - name: createSsmDocument + type: action + action: aws.systemsManager.writeDocument + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + selectors: + - name: documentName + expression: '.documentName' + - name: documentType + expression: '.documentType' + - name: documentStatus + expression: '.documentStatus' + - name: success + expression: '.success' + documentName: "LambdaListFunctionNames" + documentContent: | + schemaVersion: '0.3' + description: List all Lambda function names. + mainSteps: + - name: ExecuteAwsApi + action: aws:executeAwsApi + isEnd: true + inputs: + Service: lambda + Api: ListFunctions + outputs: + - Name: resultFunctionName + Selector: $..FunctionName + Type: StringList + outputs: + - ExecuteAwsApi.resultFunctionName + + - name: generateIdempotencyToken + type: action + action: utils.uuid.generate + version: 1 + + - name: start1 + type: action + action: aws.systemsManager.startAutomation + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + documentName: "${{ .steps.createSsmDocument.outputs.documentName }}" + idempotencyToken: ${{ .steps.generateIdempotencyToken.outputs.uuid }} + + - name: waitForCompletion + type: action + action: aws.systemsManager.waitForAutomationStatus + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + automationExecutionId: ${{ .steps.start1.outputs.automationExecutionId }} + # Optional, default is Success and Failed + automationExecutionStatuses: + - "Success" + - "Failed" + timeout: 60 + + - name: hasCompleted + type: switch + switch: + - condition: ${{ .steps.waitForCompletion.outputs.automationExecutionStatus == "Failed" }} + next: displayError + - condition: ${{ .steps.waitForCompletion.outputs.automationExecutionStatus == "Success" }} + next: displaySuccess + next: displayUnexpected + + - name: displayUnexpected + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: "Unexpected status ${{ .steps.waitForCompletion.outputs.automationExecutionStatus | tojson }}" + next: cleanupSsmDocument + + - name: displaySuccess + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: "This is all the lambda function names on the region ${{ .workflowInputs.region }}:${{ .steps.waitForCompletion.outputs.automationExecutionOutputs.ExecuteAwsApi.resultFunctionName | join(\",\") }}" + next: cleanupSsmDocument + + - name: displayError + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: "Error while executing document ${{ .steps.createSsmDocument.outputs.documentName }}, detail: ${{ .steps.waitForCompletion.outputs.errorMessage }}" + next: cleanupSsmDocument + + - name: cleanupSsmDocument + type: action + action: aws.systemsManager.deleteDocument + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + documentName: ${{ .steps.createSsmDocument.outputs.documentName }} + ``` + + **Example 2: Execute a Python script** + + + Using the AWS `SystemsManager` automation and document action, we can define a workflow definition that execute a python script. + + Here is a short example illustrating with a simple Hello World application. + + + ```yaml + schemaVersion: '0.3' + description: "Run a Python script that says 'Hello' to the username passed as input and capture the output." + parameters: + Username: + type: String + description: "The username to greet." + default: "User" + mainSteps: + - action: aws:executeScript + name: pythonStep + inputs: + Runtime: python3.8 + Handler: script_handler + Script: | + def script_handler(event, context): + username = event['username'] + return f'Hello {username}' + InputPayload: + username: "{{ Username }}" + outputs: + - Name: scriptOutput + Type: String + Selector: $.Payload + outputs: + - pythonStep.scriptOutput + ``` + This can then be used in the workflow below: + + + ```yaml + name: aws-python-script + + workflowInputs: + key: + type: String + defaultValue: "${{ :secrets:11933347:USERNAME_AWS_ACCESS_KEY_ID }}" + access: + type: String + defaultValue: "${{ :secrets:11933347:USERNAME_AWS_SECRET_ACCESS_KEY }}" + token: + type: String + defaultValue: "${{ :secrets:11933347:USERNAME_AWS_SESSION_TOKEN }}" + region: + type: String + defaultValue: us-west-2 + name: + type: String + defaultValue: ExecuteHelloPythonScript + username: + type: String + defaultValue: World! + + steps: + - name: generateIdempotencyToken + type: action + action: utils.uuid.generate + version: 1 + + - name: createSsmDocument + type: action + action: aws.systemsManager.writeDocument + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + documentName: ${{ .workflowInputs.name }} + documentContent: | + schemaVersion: '0.3' + description: "Run a Python script that says 'Hello' to the username passed as input and capture the output." + parameters: + Username: + type: String + description: "The username to greet." + default: "User" + mainSteps: + - action: aws:executeScript + name: pythonStep + inputs: + Runtime: python3.8 + Handler: script_handler + Script: | + def script_handler(event, context): + username = event['username'] + return f'Hello {username}' + InputPayload: + username: "{{ Username }}" + outputs: + - Name: scriptOutput + Type: String + Selector: $.Payload + outputs: + - pythonStep.scriptOutput + + - name: start1 + type: action + action: aws.systemsManager.startAutomation + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + documentName: "${{ .steps.createSsmDocument.outputs.documentName }}" + idempotencyToken: ${{ .steps.generateIdempotencyToken.outputs.uuid }} + parameters: + Username: ${{ .workflowInputs.username }} + + - name: waitForCompletion + type: action + action: aws.systemsManager.waitForAutomationStatus + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + automationExecutionId: ${{ .steps.start1.outputs.automationExecutionId }} + # Optional, default is Success and Failed + automationExecutionStatuses: + - "Success" + - "Failed" + timeout: 300 + + - name: hasCompleted + type: switch + switch: + - condition: ${{ .steps.waitForCompletion.outputs.automationExecutionStatus == "Failed" }} + next: displayError + - condition: ${{ .steps.waitForCompletion.outputs.automationExecutionStatus == "Success" }} + next: displaySuccess + next: displayUnexpected + + - name: displayUnexpected + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: "Unexpected status ${{ .steps.waitForCompletion.outputs.automationExecutionStatus | tojson }}" + next: cleanupSsmDocument + + - name: displaySuccess + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: "This is the results of the automation that was run on the region ${{ .workflowInputs.region }}:${{ .steps.waitForCompletion.outputs.automationExecutionOutputs.pythonStep.scriptOutput | tojson }}" + next: cleanupSsmDocument + + - name: displayError + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: "Error while executing document ${{ .steps.createSsmDocument.outputs.documentName }}, detail: ${{ .steps.waitForCompletion.outputs | tojson }}" + next: cleanupSsmDocument + + - name: cleanupSsmDocument + type: action + action: aws.systemsManager.deleteDocument + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + documentName: ${{ .steps.createSsmDocument.outputs.documentName }} + ``` + This can be started with the following NerdGraph mutation, assuming the AWS temporary secrets have been previously stored with the `secretsManagementCreateSecretNerdGraph` mutations. + + ```yaml + mutation { + autoflowsStartWorkflowRun(accountId: 11933347, + definition: { + name: "aws-python-script", + }, workflowInputs: [ + {key: "key" value: "${{ :secrets:testUser123_AWS_ACCESS_KEY_ID }}"} + {key: "access" value: "${{ :secrets:testUser123_AWS_SECRET_ACCESS_KEY }}"} + {key: "token" value: "${{ :secrets:testUser123_AWS_SESSION_TOKEN }}"} + {key: "region" value:"us-west-2"} + {key: "username" value: "Julien"} + ]) + { runId } + } + ``` + + Executing the mutation above, returns a runId, for example `207e8c23-2c89-4af2-a74f-3c9ea2ffd543`. This runId can then be used to query the Logs and see the following output: + + Image of a python script execution output + + + + + **Example 3: A more complex SSM document** + + 1. Get the list of API gateway rest APIs. Filter my api (`Test API`) and get the rest API id. + 2. Get the list of all resources inside my api (`Test API`). Filter my specific resource based on pathPart(`/test`) and get the resourceID + 3. Get the list of versions for my lambda function (`ApiGwTestFn`). Filter the specific version that I want to rollback to (version: 1) and get the functionArn of that version. + 4. Update the API gateway integration with the lambda functionArn acquired in the above step. + 5. Create a new deployment for my rest API (`Test API`). + + + ```yaml + schemaVersion: '0.3' + description: Test SSM for API gateway rollback + mainSteps: + - name: ExecuteAwsApi + action: aws:executeAwsApi + nextStep: ExecuteGetApiResources + inputs: + Service: apigateway + Api: GetRestApis + outputs: + - Name: resultApiId + Selector: $.items[?(@.name=='Test API')].id + Type: String + - name: ExecuteGetApiResources + action: aws:executeAwsApi + nextStep: ExecuteListVersionsByFunction + inputs: + Service: apigateway + Api: GetResources + restApiId: '{{ ExecuteAwsApi.resultApiId }}' + outputs: + - Name: resultResourceId + Selector: $.items[?(@.pathPart=='test')].id + Type: String + - name: ExecuteListVersionsByFunction + action: aws:executeAwsApi + nextStep: ExecuteApiGwUpdateIntg + inputs: + Service: lambda + Api: ListVersionsByFunction + FunctionName: ApiGwTestFn + outputs: + - Name: resultLambdaVersionArn + Selector: $.Versions[?(@.Version=='1')].FunctionArn + Type: String + - name: ExecuteApiGwUpdateIntg + action: aws:executeAwsApi + nextStep: ExecuteApiGwCreateDeployment + inputs: + Service: apigateway + Api: UpdateIntegration + restApiId: '{{ ExecuteAwsApi.resultApiId }}' + resourceId: '{{ ExecuteGetApiResources.resultResourceId }}' + httpMethod: GET + patchOperations: + - op: replace + path: /uri + value: arn:aws:apigateway:us-east-2:lambda:path/2015-03-31/functions/{{ ExecuteListVersionsByFunction.resultLambdaVersionArn }}/invocations + - name: ExecuteApiGwCreateDeployment + action: aws:executeAwsApi + inputs: + Service: apigateway + Api: CreateDeployment + restApiId: '{{ ExecuteAwsApi.resultApiId }}' + outputs: + - ExecuteGetApiResources.resultResourceId + - ExecuteListVersionsByFunction.resultLambdaVersionArn + ``` + + + The sample SSM outputs `ExecuteGetApiResources.resultResourceId` and `ExecuteListVersionsByFunction.resultLambdaVersionArn`. These outputs can be used in further steps in the workflow definition. + +
+
+
+
+ + + + This action is to delete an AWS SSM document in the AWS account based on the credentials passed in the action input. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html) + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**RequiredString`${{ :secrets: }}`
**awsSecretAccessKey**RequiredString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**documentName**RequiredString`documentName: "my-ssm-document"`
**selectors**OptionalList`[{\"name\": \"success\", \"expression\": \".success\"}, {\"name\": \"documentName\", \"expression\": \".documentName\"}]`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**documentName**String`documentName: "my-ssm-document"`
**success**Boolean`success: true`
**errorMessage**String`errorMessage: "Some error message from ssm"`
+ + + - In action input, only `awsAccessKeyId` and `awsSecretAccessKey` can be provided but they should be static credentials of an IAM user. + - If session credentials are to be used, `awsAccessKeyId`, `awsSecretAccessKey` and `awsSessionToken` must be passed to action input. + - The selectors to get the only specified parameters as output. + +
+ + + + A simple SSM document to list all lambda function + + ```yaml + schemaVersion: '0.3' + description: List all Lambda function names. + mainSteps: + - name: ExecuteAwsApi + action: aws:executeAwsApi + isEnd: true + inputs: + Service: lambda + Api: ListFunctions + outputs: + - Name: resultFunctionName + Selector: $..FunctionName + Type: StringList + outputs: + - ExecuteAwsApi.resultFunctionName + ``` + + **The complete workflow definition with SSM**: + + ```yaml + name: aws-api + + workflowInputs: + key: + type: String + defaultValue: "${{ :secrets:11933347:USERNAME_AWS_ACCESS_KEY_ID }}" + access: + type: String + defaultValue: "${{ :secrets:11933347:USERNAME_AWS_SECRET_ACCESS_KEY }}" + token: + type: String + defaultValue: "${{ :secrets:11933347:USERNAME_AWS_SESSION_TOKEN }}" + region: + type: String + defaultValue: us-east-2 + + steps: + - name: createSsmDocument + type: action + action: aws.systemsManager.writeDocument + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + selectors: + - name: documentName + expression: '.documentName' + - name: documentType + expression: '.documentType' + - name: documentStatus + expression: '.documentStatus' + - name: success + expression: '.success' + documentName: "LambdaListFunctionNames" + documentContent: | + schemaVersion: '0.3' + description: List all Lambda function names. + mainSteps: + - name: ExecuteAwsApi + action: aws:executeAwsApi + isEnd: true + inputs: + Service: lambda + Api: ListFunctions + outputs: + - Name: resultFunctionName + Selector: $..FunctionName + Type: StringList + outputs: + - ExecuteAwsApi.resultFunctionName + + - name: generateIdempotencyToken + type: action + action: utils.uuid.generate + version: 1 + + - name: start1 + type: action + action: aws.systemsManager.startAutomation + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + documentName: "${{ .steps.createSsmDocument.outputs.documentName }}" + idempotencyToken: ${{ .steps.generateIdempotencyToken.outputs.uuid }} + + - name: waitForCompletion + type: action + action: aws.systemsManager.waitForAutomationStatus + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + automationExecutionId: ${{ .steps.start1.outputs.automationExecutionId }} + # Optional, default is Success and Failed + automationExecutionStatuses: + - "Success" + - "Failed" + timeout: 60 + + - name: hasCompleted + type: switch + switch: + - condition: ${{ .steps.waitForCompletion.outputs.automationExecutionStatus == "Failed" }} + next: displayError + - condition: ${{ .steps.waitForCompletion.outputs.automationExecutionStatus == "Success" }} + next: displaySuccess + next: displayUnexpected + + - name: displayUnexpected + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: "Unexpected status ${{ .steps.waitForCompletion.outputs.automationExecutionStatus | tojson }}" + next: cleanupSsmDocument + + - name: displaySuccess + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: "This is all the lambda function names on the region ${{ .workflowInputs.region }}:${{ .steps.waitForCompletion.outputs.automationExecutionOutputs.ExecuteAwsApi.resultFunctionName | join(\",\") }}" + next: cleanupSsmDocument + + - name: displayError + type: action + action: newrelic.instrumentation.log + version: 1 + inputs: + message: "Error while executing document ${{ .steps.createSsmDocument.outputs.documentName }}, detail: ${{ .steps.waitForCompletion.outputs.errorMessage }}" + next: cleanupSsmDocument + + - name: cleanupSsmDocument + type: action + action: aws.systemsManager.deleteDocument + version: 1 + inputs: + awsAccessKeyId: ${{ .workflowInputs.key }} + awsSecretAccessKey: ${{ .workflowInputs.access }} + awsSessionToken: ${{ .workflowInputs.token }} + region: ${{ .workflowInputs.region }} + documentName: ${{ .steps.createSsmDocument.outputs.documentName }} + ``` + +
+
+
+
+ + + + Starts an automation using an AWS SSM document. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartAutomationExecution.html) + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**documentName**RequiredString`documentName: "my-ssm-document"`
**parameters**OptionalMap`parameters: myKey: myValue`
**idempotencyToken**OptionalUUID + `idempotencyToken: "any token"` +

This will be passed as client token for idempotency to start aws ssm automation.

+
**selectors**OptionalList`[{\"name\": \"automationExecutionId\", \"expression\": \".automationExecutionId\"}, {\"name\": \"success\", \"expression\": \".success\"}]`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**automationExecutionId**String`automationExecutionId: "3143a28d-241c-4abd-a3ca-9c0ff3890241"`
**success**Boolean`success: true`
**errorMessage**String`errorMessage: "Some error message from ssm"`
+ + + - In the action input, if `awsAccessKeyId` and `awsSecretAccessKey` are to be provided, make sure they are static credentials of an IAM user. + - If session credentials are to be used, `awsAccessKeyId`, `awsSecretAccessKey` and `awsSessionToken` must be passed to the action input. + - Refer to [AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials/) for instructions. + - Use selectors to get only the specified parameters as output. + +
+ + + + + + + + + + + + + + + + + +
Workflow definitionInputsOutputs
+ ```yaml + schemaVersion: '0.3' + description: List all Lambda function names. + mainSteps: + - name: ExecuteAwsApi + action: aws:executeAwsApi + isEnd: true + ``` + + ```yaml + Service: lambda + Api: ListFunctions + ``` + + ```yaml + - Name: resultFunctionName + Selector: $..FunctionName + Type: StringList + outputs: + - ExecuteAwsApi.resultFunctionName + ``` +
+
+
+
+
+
+ + + + Waits for an automation using an AWS document. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/?id=docs_gateway) for more information. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeExample
**awsRoleArn**OptionalString`arn:aws:iam::123456789012:role/my-workflow-role`
**awsAccessKeyId**OptionalString`${{ :secrets: }}`
**awsSecretAccessKey**OptionalString`${{ :secrets: }}`
**awsSessionToken**OptionalString`${{ :secrets: }}`
**region**RequiredString`region: "us-east-2"`
**automationExecutionId**RequiredString`automationExecutionId: "3143a28d-241c-4abd-a3ca-9c0ff3890241"`. The automation `executionId` for which we need to wait for its completion.
**automationExecutionStatuses**OptionalList + `automationExecutionStatuses: ["status1", "status2"]` +

List of automation execution statuses from [AutomationExecution](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_AutomationExecution.html#AutomationExecutionStatus) that can stop the waiting.

Default: `["Success", "Failed"]`

+
**timeout**Optionalint + `timeout: 180`(default), maximum 600. + +

The duration in seconds we can wait for automation status to be one of the expected `automationExecutionStatuses`.

+ +

If timeout occurred, the output contains `success: false` and `errorMessag: Timeout waiting for automation status`.

+
**selectors**OptionalList`[{\"name\": \"automationExecutionStatus\", \"expression\": \".automationExecutionStatus\"}, {\"name\": \"scriptOutput\", \"expression\": \".automationExecutionOutputs.pythonStep.scriptOutput | tojson\"}]`.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**automationExecutionId**String`automationExecutionId: "3143a28d-241c-4abd-a3ca-9c0ff3890241"`
**automationExecutionStatus**String + `automationExecutionStatus: "Success"` + +

If action is successful, It will either of the values passed in `automationExecutionStatuses` input field.

+ +

Else, this will be null.

+
**automationExecutionOutputs**Map + ```yaml + "automationExecutionOutputs": { + "ExecuteGetApiResources": { + "resultResourceId": [ + "pky3cb" + ] + }, + "ExecuteListVersionsByFunction": { + "resultLambdaVersionArn": [ + "arn:aws:lambda:us-east-2:661945836867:function:ApiGwTestFn:1" + ] + } + } + ``` +

+ The output will be a map of output values from the document. Any output in the document can be collected using this output field and can be used in subsequent steps of the workflow automation definition. +

+
**success**Boolean`success: true`
**errorMessage**String`errorMessage: "Some error message from ssm"`
+ + + 1. In the action input, only `awsAccessKeyId` and `awsSecretAccessKey` can be provided, but they should be static credentials of an IAM user. + 2. If session credentials are to be used, `awsAccessKeyId`, `awsSecretAccessKey` and `awsSessionToken` must be passed to the action input. + 3. Refer to the instructions to set up [AWS credentials](/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials). + 4. Use selectors to get only the specified parameters as output. + +
+ + + + + + + + + + + + + + + + + +
Workflow definitionInputsOutputs
+ ```yaml + schemaVersion: '0.3' + description: List all Lambda function names. + mainSteps: + - name: ExecuteAwsApi + action: aws:executeAwsApi + isEnd: true + ``` + + ```yaml + Service: lambda + Api: ListFunctions + ``` + + ```yaml + - Name: resultFunctionName + Selector: $..FunctionName + Type: StringList + outputs: + - ExecuteAwsApi.resultFunctionName + ``` +
+
+
+
+
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx deleted file mode 100644 index edfc92f7285..00000000000 --- a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx +++ /dev/null @@ -1,664 +0,0 @@ ---- -title: "HTTP actions" -tags: - - workflow automation - - workflow - - workflow automation actions - - HTTP actions -metaDescription: "A list of available HTTP actions in the actions catalog for workflow definitions" -freshnessValidatedDate: never ---- - - - We're still working on this feature, but we'd love for you to try it out! - - This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -This page provides a comprehensive reference for HTTP actions available in the workflow automation actions catalog. These actions enable you to make HTTP requests (GET, POST, PUT, DELETE) to external APIs and services as part of your workflow definitions. - -## Prerequisites - -Before using HTTP actions in workflow automation, ensure you have: - - * Target API endpoint URLs. - * Any required authentication credentials (API keys, tokens, etc.). - * Understanding of the API request/response formats. - - - HTTP actions support secret syntax for any header value, allowing you to securely pass sensitive data like API keys. See [secrets management](/docs/infrastructure/host-integrations/installation/secrets-management/) for more information. - - -## HTTP actions - - - - -Perform an HTTP GET call to retrieve data from an API endpoint. - - - This supports secret syntax for any header value. - - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeDescription
**url**RequiredStringThe target URL for the request. The scheme must be included: `https://example.com`
**urlParams**OptionalMapThe query parameters to append to the URL. Takes a stringified JSON object.
**headers**OptionalMapThe headers to add to the request. Takes a stringified JSON object.
**selectors**OptionalListThe selectors to get only the specified parameters as output.
-
- - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeDescription
**responseBody**StringThe body of the response.
**statusCode**IntegerThe HTTP status code of the response.
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: httpGetTest - description: 'Performs an HTTP GET request to retrieve data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - steps: - - name: query - type: action - action: http.get - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - next: end - ``` - - **Example inputs:** - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}" - } - ``` - - **Example outputs:** - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - -Performs an HTTP POST call to send data to an API endpoint. - - - This supports secret syntax for any header value. - - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeDescription
**url**RequiredStringThe target URL for the request. The scheme must be included: `https://example.com`
**urlParams**OptionalMapThe query parameters to append to the URL. Takes a stringified JSON object.
**headers**OptionalMapThe headers to add to the request. Takes a stringified JSON object.
**body**OptionalStringThe request body.
**selectors**OptionalListThe selectors to get only the specified parameters as output.
-
- - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeDescription
**responseBody**StringThe body of the response.
**statusCode**IntegerThe HTTP status code of the response.
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: httpPostTest - description: 'Performs an HTTP POST request to send data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - steps: - - name: query - type: action - action: http.post - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - next: end - ``` - - **Example inputs:** - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}" - } - ``` - - **Example outputs:** - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - -Performs an HTTP PUT request to update data at an API endpoint. - - - If you need to pass sensitive data to an input, for example an `Api-Key` header, you can use values stored via the [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) NerdGraph mutation. - - Example: - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeDescription
**url**RequiredStringThe target URL for the request. The URL must include the scheme (for example, https:// or http://). Example: `https://example.com`
**urlParams**OptionalMapThe query parameters to append to the URL. Takes a stringified JSON object.
**headers**OptionalMapThe headers to add to the request. Takes a stringified JSON object.
**body**OptionalStringThe request body.
**selectors**OptionalListThe selectors to get only the specified parameters as output.
-
- - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeDescription
**responseBody**StringThe body of the response.
**statusCode**IntegerThe HTTP status code of the response.
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: httpPutTest - description: 'Performs an HTTP PUT request to update data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.put - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **Example inputs:** - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **Example outputs:** - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - -Performs an HTTP DELETE request to remove data at an API endpoint. - - - If you need to pass sensitive data to an input, for example an `Api-Key` header, you can use values stored via the [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) NerdGraph mutation. - - Example: - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeDescription
**url**RequiredStringThe target URL for the request. The URL must include the scheme (for example, https:// or http://). Example: `https://example.com`
**urlParams**OptionalMapThe query parameters to append to the URL. Takes a stringified JSON object.
**headers**OptionalMapThe headers to add to the request. Takes a stringified JSON object.
**selectors**OptionalListThe selectors to get only the specified parameters as output.
-
- - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeDescription
**responseBody**StringThe body of the response.
**statusCode**IntegerThe HTTP status code of the response.
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: httpDeleteTest - description: 'Performs an HTTP DELETE request to remove data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.delete - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **Example inputs:** - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **Example outputs:** - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
-
diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-delete.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-delete.mdx new file mode 100644 index 00000000000..f6283f50248 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-delete.mdx @@ -0,0 +1,236 @@ +--- +title: "HTTP Delete" +tags: + - workflow automation + - workflow + - workflow automation actions + - HTTP actions + - HTTP DELETE +metaDescription: "A list of available http delete in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for http delete available in the workflow automation actions catalog. These actions enable you to http delete request operations. + +## Prerequisites + +Before using HTTP actions in workflow automation, ensure you have: + + * Target API endpoint URLs. + * Any required authentication credentials (API keys, tokens, etc.). + * Understanding of the API request/response formats. + + + HTTP actions support secret syntax for any header value, allowing you to securely pass sensitive data like API keys. See [secrets management](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) for more information. + + +## Automatic request headers [#automatic-headers] + +All HTTP requests performed by Workflow Automation automatically include the following headers: + + + + + + + + + + + + + + + + + + +
HeaderFormat
`x-abuse-info``Request sent by a New Relic WorkflowAutomation. {runId}`
where `{runId}` is the workflow run ID
`User-Agent``NewRelic/WorkflowAutomation (region={region}; https://newrelic.com ; support@newrelic.com)`
where `{region}` is the New Relic region
+ +## Delete web data [#http-delete] + +Performs an HTTP DELETE request to remove data at an API endpoint. + + + If you need to pass sensitive data to an input, for example an `Api-Key` header, you can use values stored via the [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) NerdGraph mutation. + + Example: + ```json + { + "inputs": [ + { + "key": "headers", + "value": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" + } + ] + } + ``` + + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeDescription
**url**RequiredStringThe target URL for the request. The URL must include the scheme (for example, https:// or http://). Example: `https://example.com`
**urlParams**OptionalMapThe query parameters to append to the URL. Takes a stringified JSON object.
**headers**OptionalMapThe headers to add to the request. Takes a stringified JSON object.
**selectors**OptionalListThe selectors to get only the specified parameters as output.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeDescription
**responseBody**StringThe body of the response.
**statusCode**IntThe status code of the response.
**success**BooleanStatus of the request.
**errorMessage**StringFailure reason as message.
+
+ + + + + + + + + + + + + + + + + +
Workflow definitionInputOutput
+ ```yaml + name: httpDeleteTest + steps: + - name: query + type: action + action: http.delete + version: 1 + inputs: + url: ${{ .workflowInputs.url }} + urlParams: ${{ .workflowInputs.urlParams }} + headers: ${{ .workflowInputs.headers }} + selectors: ${{ .workflowInputs.selectors }} + ``` + + ```yaml + { + "inputs": [ + { + "key": "url", + "value": "https://example.com" + }, + { + "key": "urlParams", + "value": "{\"foo\": \"bar\"}" + }, + { + "key": "headers", + "value": "{\"baz\": \"bat\"}" + }, + { + "key": "selectors", + "value": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" + } + ] + } + ``` + + ```yaml + Success case: + { + "success": true + "responseBody": "\n...\n", + "statusCode": 200 + } + + Failure case: + { + "errorMessage": "An unexpected error failed to call http delete endpoint.", + "success": false + } + ``` +
+
+
+
diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-get.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-get.mdx new file mode 100644 index 00000000000..c98156c8a80 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-get.mdx @@ -0,0 +1,248 @@ +--- +title: "HTTP Get" +tags: + - workflow automation + - workflow + - workflow automation actions + - HTTP actions + - HTTP GET +metaDescription: "A list of available http get in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for HTTP Get available in the workflow automation actions catalog. These actions enable you to perform HTTP GET request operations. + +## Prerequisites + +Before using HTTP actions in workflow automation, ensure you have: + + * Target API endpoint URLs. + * Any required authentication credentials (API keys, tokens, etc.). + * Understanding of the API request/response formats. + + + HTTP actions support secret syntax for any header value, allowing you to securely pass sensitive data like API keys. See [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) for more information. + + +## Automatic request headers [#automatic-headers] + +All HTTP requests performed by Workflow Automation automatically include the following headers: + + + + + + + + + + + + + + + + + + +
HeaderFormat
`x-abuse-info``Request sent by a New Relic WorkflowAutomation. {runId}`
where `{runId}` is the workflow run ID
`User-Agent``NewRelic/WorkflowAutomation (region={region}; https://newrelic.com ; support@newrelic.com)`
where `{region}` is the New Relic region
+ +## Request web data [#http-get] + + Perform an HTTP GET call to retrieve data from an API endpoint. + + + If you need to pass sensitive data to an input, for example an `Api-Key` header, you can use values stored via the [secretsManagementCreateSecret](https://onenr.io/0KQXX6BmdQa) NerdGraph mutation. + + **Example** + + ```yaml + { + "inputs": [ + { + "key": "headers", + "value": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" + } + ] + } +``` + + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeDescription
**url**RequiredStringThe target URL for the request. The scheme must be included: `https://example.com`. See [using workflow inputs](/docs/workflow-automation/workflow-examples/#using-workflow-inputs) for dynamic values.
**urlParams**OptionalMapThe query parameters to append to the URL. Takes a stringified JSON object.
**headers**OptionalMapThe headers to add to the request. Takes a stringified JSON object.
**selectors**OptionalListThe selectors to get only the specified parameters as output.
+ + ### Selectors + + **Purpose:** Extract specific data from the API response. + + **Structure:** + - `name`: The variable name to store the extracted value + - `expression`: JSONPath or expression to parse the response + - Use `responseBody | fromjson` to parse JSON responses + - Chain additional filters using dot notation (e.g., `.abbreviation`) + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeDescription
**responseBody**StringThe body of the response.
**statusCode**IntThe status code of the response.
**success**BooleanStatus of the request.
**errorMessage**StringFailure reason as message.
+
+ + + + + + + + + + + + + + + + + +
Workflow definitionInputOutput
+ ```yaml + name: httpGetTest + steps: + - name: query + type: action + action: http.get + version: 1 + inputs: + url: ${{ .workflowInputs.url }} + urlParams: ${{ .workflowInputs.urlParams }} + headers: ${{ .workflowInputs.headers }} + selectors: ${{ .workflowInputs.selectors }} + ``` + + ```yaml + { + "inputs": [ + { + "key": "url", + "value": "https://example.com" + }, + { + "key": "urlParams", + "value": "{\"foo\": \"bar\"}" + }, + { + "key": "headers", + "value": "{\"baz\": \"bat\"}" + }, + { + "key": "selectors", + "value": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" + } + ] + } + ``` + + ```yaml + Success case: + { + "responseBody": "\n...\n", + "statusCode": 200 + "success": true + } + + Failure case: + { + "errorMessage": "An unexpected error failed to call http get endpoint.", + "success": false + } + ``` +
+
+
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-post.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-post.mdx new file mode 100644 index 00000000000..b2e872499e5 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-post.mdx @@ -0,0 +1,249 @@ +--- +title: "HTTP Post" +tags: + - workflow automation + - workflow + - workflow automation actions + - HTTP actions + - HTTP POST +metaDescription: "A list of available http post in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for http post available in the workflow automation actions catalog. These actions enable you to http post request operations. + +## Prerequisites + +Before using HTTP actions in workflow automation, ensure you have: + + * Target API endpoint URLs. + * Any required authentication credentials (API keys, tokens, etc.). + * Understanding of the API request/response formats. + + + HTTP actions support secret syntax for any header value, allowing you to securely pass sensitive data like API keys. See [secrets management](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) for more information. + + +## Automatic request headers [#automatic-headers] + +All HTTP requests performed by Workflow Automation automatically include the following headers: + + + + + + + + + + + + + + + + + + +
HeaderFormat
`x-abuse-info``Request sent by a New Relic WorkflowAutomation. {runId}`
where `{runId}` is the workflow run ID
`User-Agent``NewRelic/WorkflowAutomation (region={region}; https://newrelic.com ; support@newrelic.com)`
where `{region}` is the New Relic region
+ +## Send data to a server [#http-post] + +Performs an HTTP POST call to send data to an API endpoint. + + + If you need to pass sensitive data to an input, for example an Api-Key header, you can use values stored via the [secretsManagementCreateSecret](https://onenr.io/0KQXX6BmdQa) NerdGraph mutation. + + **Example** + + ```yaml + { + "inputs": [ + { + "key": "headers", + "value": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" + } + ] + } +``` + + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeDescription
**url**RequiredStringThe target URL for the request. The scheme must be included: `https://example.com`
**urlParams**OptionalMapThe query parameters to append to the URL. Takes a stringified JSON object.
**headers**OptionalMapThe headers to add to the request. Takes a stringified JSON object.
**body**OptionalStringThe request body.
**selectors**OptionalListThe selectors to get only the specified parameters as output.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeDescription
**responseBody**StringThe body of the response.
**statusCode**IntThe status code of the response.
**success**BooleanStatus of the request.
**errorMessage**StringFailure reason as message.
+
+ + + + + + + + + + + + + + + + + +
Workflow definitionInputOutput
+ ```yaml + name: httpPostTest + + steps: + - name: query + type: action + action: http.post + version: 1 + inputs: + url: ${{ .workflowInputs.url }} + urlParams: ${{ .workflowInputs.urlParams }} + headers: ${{ .workflowInputs.headers }} + body: ${{ .workflowInputs.body }} + selectors: ${{ .workflowInputs.selectors }} + ``` + + ```yaml + { + "inputs": [ + { + "key": "url", + "value": "https://example.com" + }, + { + "key": "headers", + "value": "{\"Content-Type\":\"application/json\"}" + }, + { + "key": "urlParams", + "value": "{\"foo\": \"bar\"}" + }, + { + "key": "body", + "value": "{\"foo\": \"bar\"}" + }, + { + "key": "selectors", + "value": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" + } + ] + } + ``` + + ```yaml + Success case: + { + "success": true + "responseBody": "", + "statusCode": 200 + } + + Failure case: + { + "errorMessage": "An unexpected error failed to call http post endpoint.", + "success": false + } + ``` +
+
+
+
diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-put.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-put.mdx new file mode 100644 index 00000000000..c4552d92ede --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-put.mdx @@ -0,0 +1,248 @@ +--- +title: "HTTP Put" +tags: + - workflow automation + - workflow + - workflow automation actions + - HTTP actions + - HTTP PUT +metaDescription: "A list of available http put in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for http put available in the workflow automation actions catalog. These actions enable you to http put request operations. + +## Prerequisites + +Before using HTTP actions in workflow automation, ensure you have: + + * Target API endpoint URLs. + * Any required authentication credentials (API keys, tokens, etc.). + * Understanding of the API request/response formats. + + + HTTP actions support secret syntax for any header value, allowing you to securely pass sensitive data like API keys. See [secrets management](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) for more information. + + +## Automatic request headers [#automatic-headers] + +All HTTP requests performed by Workflow Automation automatically include the following headers: + + + + + + + + + + + + + + + + + + +
HeaderFormat
`x-abuse-info``Request sent by a New Relic WorkflowAutomation. {runId}`
where `{runId}` is the workflow run ID
`User-Agent``NewRelic/WorkflowAutomation (region={region}; https://newrelic.com ; support@newrelic.com)`
where `{region}` is the New Relic region
+ +## Create resource at URI [#http-put] + +Performs an HTTP PUT request to update data at an API endpoint. + + + If you need to pass sensitive data to an input, for example an `Api-Key` header, you can use values stored via the [secretsManagementCreateSecret](https://onenr.io/0KQXX6BmdQa) NerdGraph mutation. + + Example: + ```json + { + "inputs": [ + { + "key": "headers", + "value": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" + } + ] + } + ``` + + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeDescription
**url**RequiredStringThe target URL for the request. The scheme must be included: `https://example.com`
**urlParams**OptionalMapThe query parameters to append to the URL. Takes a stringified JSON object.
**headers**OptionalMapThe headers to add to the request. Takes a stringified JSON object.
**body**OptionalStringThe request body.
**selectors**OptionalListThe selectors to get only the specified parameters as output.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeDescription
**responseBody**StringThe body of the response.
**statusCode**IntThe HTTP status code of the response.
**success**BooleanStatus of the request.
**errorMessage**StringFailure reason as message.
+
+ + + + + + + + + + + + + + + + + +
Workflow definitionInputsOutputs
+ ```yaml + name: httpPutTest + + steps: + - name: query + type: action + action: http.put + version: 1 + inputs: + url: ${{ .workflowInputs.url }} + urlParams: ${{ .workflowInputs.urlParams }} + headers: ${{ .workflowInputs.headers }} + body: ${{ .workflowInputs.body }} + selectors: ${{ .workflowInputs.selectors }} + ``` + + ```yaml + { + "inputs": [ + { + "key": "url", + "value": "https://example.com" + }, + { + "key": "headers", + "value": "{\"Content-Type\":\"application/json\"}" + }, + { + "key": "urlParams", + "value": "{\"foo\": \"bar\"}" + }, + { + "key": "body", + "value": "{\"foo\": \"bar\"}" + }, + { + "key": "selectors", + "value": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" + } + ] + } + ``` + + ```yaml + Success case: + { + "responseBody": "", + "statusCode": 200 + "success": true + } + + Failure case: + { + "errorMessage": "An unexpected error failed to call http post endpoint.", + "success": false + } + ``` +
+
+
+
diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-ingest.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-ingest.mdx new file mode 100644 index 00000000000..8eb2ff1a3c4 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-ingest.mdx @@ -0,0 +1,371 @@ +--- +title: "New Relic Ingest actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - New Relic actions + - New Relic Ingest actions +metaDescription: "A list of available new relic ingest actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for new relic ingest actions available in the workflow automation actions catalog. These actions enable you to send events and logs to new relic. + +## Prerequisites + +Before using New Relic actions in workflow automation, ensure you have: + + * A New Relic account with appropriate permissions. + * A New Relic license key (if sending data to a different account). + * The necessary permissions for the specific New Relic services you plan to use. + +See [License Key](/docs/apis/intro-apis/new-relic-api-keys/#license-key) for information on how to create and manage your New Relic Account License Key. + +## Data ingest actions + + + + Reports a custom event to New Relic. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeDescriptionExample
**attributes**OptionalMap +

+ Common attributes which is part of all the events when provided. +

+ +

+ Merging for each event item when needed event item overrides common definition. +

+
`"{\"page\": \"1\", \"limit\": \"10\"}"`
**events**RequiredList +

+ The list of event data. + + Events requires the use of an `eventType` field that represents the custom event type. The maximum events allowed per request is **100**. + +

+
`"[{\"eventType\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"eventType\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]"`
**licenseKey**OptionalString + The **New Relic Account License Key** (required) specifies the + target account for your events. If not provided, the system uses the default license key from the account executing the workflow. + + [Read more about our API keys](/docs/apis/intro-apis/new-relic-api-keys/#license-key) to create and manage your **New Relic Account License Key**. + `"{{ .secrets.secretName }}"`, where `secretName` is the key under which the license key is stored.
**selectors**OptionalListThe selectors to get only the specified parameters as output.`[{\"name\": \"success\", \"expression\": \".success\"}]`
+
+ + + + + + + + + + + + + + + + + + + +
Output FieldType
**success**Boolean
**errorMessage**string
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: heartbeat_newrelicIngestSendEvents + +workflowInputs: + cellName: + type: String + +steps: + - name: runAction + type: action + action: newrelic.ingest.sendEvents + version: 1 + inputs: + attributes: + colour: red + id: 1234 + events: + - eventType: HeartBeat + test: "OK" + attributes: + foo: bar + - eventType: HeartBeat1234 + test: "OK1234" + attributes: + foo: bar + - eventType: HeartBeat12345 + test: "OK12345" + attributes: + foo: bar + colour: yellow + - eventType: HeartBeat12345678 + test: "OK12345678" + selectors: + - name: success + expression: ".success" + ``` + + **Expected output:** + ```yaml + { + "success": true + } + ``` + + **Retrieve events:** + + After successfully executing a workflow, you can retrieve the associated event by running a query under the account that executed the workflow: + + ```sql + SELECT * FROM HeartBeat + ``` +
+
+
+
+
+
+ + + + +Send logs to New Relic + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeDescriptionExample
**attributes**OptionalMapCommon attributes are included in all logs when provided. These merge with each log item, with log-specific values overriding common attributes when conflicts occur.`"{\"page\": \"1\", \"limit\": \"10\"}"`
**logs**RequiredListList of logs. Each **log** requires a `message` field. Maximum of 100 logs per request.`"[{\"message\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"message\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]"`
**licenseKey**OptionalString + The **New Relic Account License Key** (required) specifies the + target account for your events. If not provided, the system uses the default license key from the account executing the workflow. + + [Read more about our API keys](/docs/apis/intro-apis/new-relic-api-keys/#license-key) to create and manage your **New Relic Account License Key**. + `"{{ .secrets.secretName }}"`, where `secretName` is the key under which the license key is stored.
**selectors**OptionalListThe selectors to get only the specified parameters as output.
+
+ + + + + + + + + + + + + + + + + + + +
Output FieldType
**success**Boolean
**errorMessage**string
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: heartbeat_newrelicIngestSendLogs + +workflowInputs: + cellName: + type: String + +steps: + - name: runAction + type: action + action: newrelic.ingest.sendLogs + version: 1 + inputs: + attributes: + colour: red + id: 1234 + logs: + - message: 'Heartbeat sendLogs Action Test Message' + attributes: + foo: bar + - message: 'HeartBeat1234' + attributes: + foo: bar + - message: 'HeartBeat12345' + attributes: + foo: bar + colour: yellow + - message: 'HeartBeat12345678' + selectors: + - name: success + expression: ".success" + ``` + + **Expected output:** + ```yaml + { + "success": true + } + ``` + + **Retrieve logs:** + + After successfully executing a workflow, you can retrieve the associated log by running a query under the account that executed the workflow: + + ```sql + SELECT * FROM Log + ``` +
+
+
+
+
+
diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nerdgraph.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nerdgraph.mdx new file mode 100644 index 00000000000..88dbe6e64bb --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nerdgraph.mdx @@ -0,0 +1,196 @@ +--- +title: "New Relic NerdGraph actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - New Relic actions + - New Relic NerdGraph actions +metaDescription: "A list of available new relic nerdgraph actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for new relic nerdgraph actions available in the workflow automation actions catalog. These actions enable you to execute nerdgraph queries and mutations. + +## Prerequisites + +Before using New Relic actions in workflow automation, ensure you have: + + * A New Relic account with appropriate permissions. + * A New Relic license key (if sending data to a different account). + * The necessary permissions for the specific New Relic services you plan to use. + +See [License Key](/docs/apis/intro-apis/new-relic-api-keys/#license-key) for information on how to create and manage your New Relic Account License Key. + +## NerdGraph actions + + + + +Executes a Graphql command against newrelic NerdGraph API. The command can either be a query or a mutation. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputOptionalityTypeDescriptionExample
**graphql**RequiredStringA GraphQL syntax. Use [GraphiQL](https://one.newrelic.com/nerdgraph-graphiql?state=c8579e50-f154-fec6-22b8-f9fdcfc1990a) to build and test your command
**variables**RequiredMap[string]anyAny key/value pair variables to use with the GraphQL statement.
**selectors**OptionalListThe selectors to get the only specified parameters as output. + ```yaml + steps: + - name: findingVar + type: action + action: newrelic.nerdgraph.execute + version: 1 + inputs: + graphql: | + query GetEntity($entityGuid: EntityGuid!) { + actor { + entity(guid: $entityGuid) { + alertSeverity + } + } + } + variables: + entityGuid: ${{ .workflowInputs.entityGuid }} + - name: findingInline + type: action + action: newrelic.nerdgraph.execute + version: 1 + inputs: + graphql: | + { + actor { + entity(guid: "${{ .workflowInputs.entityGuid }}") { + alertSeverity + } + } + } + selectors: + - name: entities + expression: '.data' + ``` +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
OutputTypeDescription
**data**Map[string]anyContents of the `data` property of a NerdGraph response.
**success**BooleanStatus of the request.
**errorMessage**StringFailure reason as message.
+
+ + + + + + + + + + + + + +
Example
+ ```yaml + steps: + - name: currentUserId + type: action + action: newrelic.nerdgraph.execute + version: 1 + inputs: + graphql: | + query userId { + currentUser { + id + } + } + - name: sayHello + type: action + action: example.messaging.sayHello + version: 1 + inputs: + name: ${{ .steps.currentUserId.outputs.data.currentUser.id }} + ``` +
+
+
+
+
+
diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-notification.mdx similarity index 53% rename from src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx rename to src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-notification.mdx index 4c2acb0fd97..0c52579feac 100644 --- a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-notification.mdx @@ -1,11 +1,12 @@ --- -title: "New Relic actions" +title: "New Relic Notification actions" tags: - workflow automation - workflow - workflow automation actions - - New relic actions -metaDescription: "A list of available actions in the actions catalog for workflow definitions" + - New Relic actions + - New Relic Notification actions +metaDescription: "A list of available new relic notification actions in the actions catalog for workflow definitions" freshnessValidatedDate: never --- @@ -15,7 +16,7 @@ freshnessValidatedDate: never This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). -This page provides a comprehensive reference for New Relic actions available in the workflow automation actions catalog. These actions enable you to integrate New Relic platform capabilities into your workflow definitions, including sending custom events and logs, executing NerdGraph queries, running NRQL queries, and sending notifications. +This page provides a comprehensive reference for new relic notification actions available in the workflow automation actions catalog. These actions enable you to send notifications through new relic. ## Prerequisites @@ -27,604 +28,6 @@ Before using New Relic actions in workflow automation, ensure you have: See [License Key](/docs/apis/intro-apis/new-relic-api-keys/#license-key) for information on how to create and manage your New Relic Account License Key. -## Data ingest actions - - - - Sends a custom events to New Relic - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**attributes**OptionalMap`"{\"page\": \"1\", \"limit\": \"10\"}"`
**events**Requiredlist`"[{\"eventType\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"eventType\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]`
**licenseKey**Optionalstring`"{{ .secrets.secretName }}"`
**selectors**Optionallist`[{\"name\": \"success\", \"expression\": \".success\"}]`
- - - - **attributes**: Common attributes which are part of all the events when provided. Merging for each event item when needed event item overrides common definition. - - **events**: The list of event data. Note that events requires the use of an `eventType` field that represents the custom event type and the maximum events allowed per request is 100. - - **licenseKey**: The New Relic Account License Key that specifies the target account where events are sent. If this value is not provided, a default license key is assumed based on the account executing the workflow. - - **selectors**: The selectors to get only the specified parameters as output. - -
- - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**success**Boolean`true`
**errorMessage**string`"Error message if operation failed"`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: heartbeat_newrelicIngestSendEvents - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendEvents - version: 1 - inputs: - attributes: - colour: red - id: 1234 - events: - - eventType: HeartBeat - test: "OK" - attributes: - foo: bar - - eventType: HeartBeat1234 - test: "OK1234" - attributes: - foo: bar - - eventType: HeartBeat12345 - test: "OK12345" - attributes: - foo: bar - colour: yellow - - eventType: HeartBeat12345678 - test: "OK12345678" - selectors: - - name: success - expression: ".success" - ``` - - **Expected output:** - ```yaml - { - "success": true - } - ``` - - **Retrieve events:** - - After successfully executing a workflow, you can retrieve the associated event by running a query under the account that executed the workflow: - ```sql - SELECT * FROM HeartBeat - ``` -
-
-
-
-
-
- - - - -Send logs to New Relic - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input FieldOptionalityTypeExample
**attributes**Optionalmap`"{\"page\": \"1\", \"limit\": \"10\"}"`
**logs**Requiredlist`"[{\"message\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"message\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]"`
**licenseKey**Optionalstring`"{{ .secrets.secretName }}"`
**selectors**Optionallist`[{\"name\": \"success\", \"expression\": \".success\"}]`
- - - - **attributes**: Common attributes included in all logs when provided. If a log item specifies the same attribute, it overrides the common definition. - - **logs**: The list of log data. Note that the maximum logs allowed per request is 100. - - **licenseKey**: The New Relic Account License Key that specifies the target account where logs are sent. If not provided, a default license key is assumed based on the account executing the workflow. See [License Key](/docs/apis/intro-apis/new-relic-api-keys/#license-key) for more information. - - **selectors**: The selectors to get only the specified parameters as output. - -
- - - - - - - - - - - - - - - - - - - - - - -
Output FieldTypeExample
**success**Boolean`true`
**errorMessage**string`"Error message if operation failed"`
-
- - - - - - - - - - - - - -
Workflow example
- ```yaml - name: heartbeat_newrelicIngestSendLogs - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendLogs - version: 1 - inputs: - attributes: - colour: red - id: 1234 - logs: - - message: 'Heartbeat sendLogs Action Test Message' - attributes: - foo: bar - - message: 'HeartBeat1234' - attributes: - foo: bar - - message: 'HeartBeat12345' - attributes: - foo: bar - colour: yellow - - message: 'HeartBeat12345678' - selectors: - - name: success - expression: ".success" - ``` - - **Expected output:** - ```yaml - { - "success": true - } - ``` - - **Retrieve logs:** - - After successfully executing a workflow, you can retrieve the associated log by running a query under the account that executed the workflow: - ```sql - SELECT * FROM Log - ``` -
-
-
-
-
-
- -## NerdGraph actions - - - - -Executes a Graphql command against newrelic NerdGraph API. The command can either be a query or a mutation. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputOptionalityTypeDescriptionExample
**graphql**RequiredstringA GraphQL syntax. You should use GraphiQL to build and test your command
**variables**Requiredmap[string]anyAny key/value pair variables to use with the GraphQL statement.
**selectors**OptionalListThe selectors to get the only specified parameters as output. - ```yaml - steps: - - name: findingVar - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query GetEntity($entityGuid: EntityGuid!) { - actor { - entity(guid: $entityGuid) { - alertSeverity - } - } - } - variables: - entityGuid: ${{ .workflowInputs.entityGuid }} - - name: findingInline - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - { - actor { - entity(guid: "${{ .workflowInputs.entityGuid }}") { - alertSeverity - } - } - } - selectors: - - name: entities - expression: '.data' - ``` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
OutputTypeDescription
**data**map[string]anyContents of the `data` property of a NerdGraph response.
**success**BooleanStatus of the request.s
**errorMessage**StringFailure reason as message.
-
- - - - - - - - - - - - - -
Example
- ```yaml - steps: - - name: currentUserId - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query userId { - currentUser { - id - } - } - - name: sayHello - type: action - action: example.messaging.sayHello - version: 1 - inputs: - name: ${{ .steps.currentUserId.outputs.data.currentUser.id }} - ``` -
-
-
-
-
-
- -## Query actions - - - - -Executes a cross-accounts NRQL query through the NerdGraph API. - - - - - Inputs - - - - Outputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputOptionalityTypeDescriptionExample
**query**RequiredstringThe NRQL query statement.
**accountIds**Optionallist of intThe **New Relic Account ID** input is a list of target IDs that allows you to specify the target accounts where the query is executed against. If this value is not provided as an input, the query will automatically be executed against the account associated with the workflow's execution account.
**selectors**OptionallistThe selectors to get the only specified parameters as output. - ```json - steps: - - name: queryForLog - type: action - action: newrelic.nrdb.query - version: 1 - inputs: - accountIds: [12345] - query: FROM Log SELECT * WHERE message LIKE 'DEMO%' - selectors: - - name: resultsAsString - expression: '.results | tostring' - ``` -
-
- - - - - - - - - - - - - - - - - -
OutputTypeExample
**results**: An array of objects containing the results of the query. - ```yaml - { - results=[ - { message=[INFO] - Workflow: test has ended, messageId=39af98 }, - { message=[INFO] - Workflow: test - Step query has started, messageId=649c612 }, - ... - ] - } - ``` -
-
-
-
-
-
- ## Notifications actions @@ -633,7 +36,7 @@ Executes a cross-accounts NRQL query through the NerdGraph API. title="Send Notification to NewRelic Destination" > - Sends a message to a channel, integrated with destinations for example slack + Send messages or emails to New Relic destinations. The user must first create the appropriate destination within New Relic. Once created, the same destination should be used in this action to send the message from a workflow. @@ -644,6 +47,10 @@ Executes a cross-accounts NRQL query through the NerdGraph API. Outputs + + + Example + @@ -662,30 +69,144 @@ Executes a cross-accounts NRQL query through the NerdGraph API. **type** Required - string - Type of newrelic destination - `slack` + String + Type of newrelic destination + `slack, email, microsoft teams` **destinationId** Required String - DestinationId associated with the newrelic destination. + + DestinationId associated with the newrelic destination. + +

+ Refer to [NerdGraph tutorial: Alerts destinations](/docs/apis/nerdgraph/examples/nerdgraph-api-notifications-destinations/) on how to configure a new destination and listing destination Id. +

+ +

+ Refer to [Destinations](/docs/alerts/get-notified/destinations/) to know more about destinations. +

+ + + +```yaml + { + actor { + account(id: 12345678) { + aiNotifications { + destinations(filters: {type: SLACK, active: true}) { + entities { + createdAt + id + name + active + } + } + } + } + } + } +``` + + + `123e4567-e89b-12d3-a456-426614174000` **parameters** Required - map - Fields required to send notification to chosen destination type. - `{\"channel\": \"${{ YOUR_CHANNEL }}\", \"text\": \"Enter your text here\"}` + Map + + Fields required to send notification to chosen destination type. + +

+ + + * **Slack**: + * `channel`: The name of the channel, or a `channelID`, to send the message. + * `text`: The message to be posted to slack. + * **Email**: + * `subject`: Subject of the message. + * `message`: The message to be sent in email. + + +

+ + + +

+ `{\"channel\": \"${{ YOUR_CHANNEL }}\", \"text\": \"Enter your text here\"}` +

+ + or + +

+ `{\"subject\": \"${{ subject }}\", \"message\": \"Enter your message here\"}` +

+ + + + **attachments** + Optional + List + A list of optional attachment + + + + **attachment.type** + Required + Enum + One of: `QUERY`, `RAW` + + + + **attachment.query** + Optional + String + For `QUERY` type, this is NRQL query statement. + `SELECT * FROM LOG` + + + **attachment.accountIds** + Optional + List + For `QUERY`, the** New Relic Account IDs** to execute the query. If not provided, the account associated with the workflow's execution is used. + `[12345567]` + + + **attachment.format** + Optional + Enum + For `QUERY`, specify the type for the results, default JSON + `JSON CSV` + + + **attachment.content** + Optional + String + For `RAW`, the content of the attachment in UTF-8. + `A,B,C\n1,2,3` + + + **attachment.filename** + Optional + String + A filename for the attachment. + `log_count.csv` **selectors** Optional - list + List The selectors to get the only specified parameters as output. - `[{\"name\": \"success\", \"expression\": \".success\"}]` + `[{\"name\": \"success\", \"expression\": \".success\"},{\"name\": \"attachments\", \"expression\": \".response.attachments\"},{\"name\": \"sessionId\", \"expression\": \".response.sessionId\"}]` @@ -702,12 +223,87 @@ Executes a cross-accounts NRQL query through the NerdGraph API. - success - boolean - `true/false` + sessionId + String + `"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"` + + + errorMessage + String + `Channel is a required field in the notification send"` + + + attachments + List + + ```yaml + [{ + "blobId": "43werdtfgvhiu7y8t6r5e4398yutfgvh", + "rowCount": 100 +}] + ``` + + + + sessionId + String + `"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"` + + + Attachments are not currently supported when sending messages to a Slack destination through this workflow action. + + + + + * **Slack** + +```yaml +name: slack_notification_workflow +description: This is a test workflow to test slack notification send action +steps: + - name: SendMessageUsingSlackChannel + type: action + action: newrelic.notification.send + version: 1 + inputs: + type: slack + destinationId: ccd0d926-ed6f-4ddd-bc7d-b7ea9822908d + parameters: + text: Hi , Testing notifcation api using slack channel name + channel: test-channel-workflow +``` + + * **Email** +```yaml +name: emailer-workflow +description: send email using workflow +steps: + - name: emailReport1 + type: action + action: newrelic.notification.email + version: 1 + inputs: + type: email + destinationId: "e7a5a004-424d-44db-a3df-266980a90242" + parameters: + subject: "workflow notification" + message: "this is a message." + attachments: + - type: QUERY + query: "SELECT * FROM Log" + format: CSV + filename: "log_count.csv" + selectors: + - name: success + expression: '.success' + - name: sessionId + expression: '.response.sessionId' + - name: attachments + expression: '.response.attachments' +```
@@ -766,24 +362,26 @@ Executes a cross-accounts NRQL query through the NerdGraph API. id="nerdgraph-query-get-destinationId" title="NerdGraph Query to get destinationId" > - ```sh - { - actor { - account(id: 12345678) { - aiNotifications { - destinations(filters: {type: MICROSOFT_TEAMS, active: true}) { - entities { - createdAt - id - name - active - } - } + +```yaml +{ + actor { + account(id: 12345678) { + aiNotifications { + destinations(filters: {type: MICROSOFT_TEAMS, active: true}) { + entities { + createdAt + id + name + active } } } } - ``` + } +} +``` +
@@ -862,7 +460,7 @@ Executes a cross-accounts NRQL query through the NerdGraph API. ```yaml - name: msTeam_notification_workflow + name: msTeam_notification_workflow description: This is a test workflow to test MSTeam notification send action steps: - name: SendMessageUsingMSTeam @@ -911,7 +509,7 @@ Executes a cross-accounts NRQL query through the NerdGraph API. - + @@ -931,30 +529,32 @@ Executes a cross-accounts NRQL query through the NerdGraph API.

Refer [Destinations](/docs/alerts/get-notified/destinations/) to know more about destinations.

- + - ```yaml - { - actor { - account(id: 12345678) { - aiNotifications { - destinations(filters: {type: EMAIL, active: true}) { - entities { - createdAt - id - name - active - } + +```yaml +{ + actor { + account(id: 12345678) { + aiNotifications { + destinations(filters: {type: EMAIL, active: true}) { + entities { + createdAt + id + name + active } } } } } - ``` +} +``` + @@ -1086,7 +686,7 @@ Executes a cross-accounts NRQL query through the NerdGraph API. @@ -258,14 +265,14 @@ Before using PagerDuty actions in workflow automation, ensure you have: @@ -279,10 +286,10 @@ Before using PagerDuty actions in workflow automation, ensure you have: @@ -301,7 +308,7 @@ Before using PagerDuty actions in workflow automation, ensure you have: + @@ -69,57 +70,61 @@ Sends a message to a slack channel, with an optional file attachment. - + + - + + - + + - + + - + + - + + - + + + + + + + + +
Input FieldInput field Optionality Datatype Description
```yaml - name: email_testing_with_attachment + name: email_testing_with_attachment description: Workflow to test sending an email notification via NewRelic with log step workflowInputs: destinationId: @@ -1130,3 +730,327 @@ Executes a cross-accounts NRQL query through the NerdGraph API. + + + + + Sends a slack message to a channel, integrated with destinations . + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityDatatypeDescriptionExample
**destinationId**RequiredString + DestinationId associated with the newrelic destination. +

+ Refer [NerdGraph tutorial: Alerts destinations](/docs/apis/nerdgraph/examples/nerdgraph-api-notifications-destinations/) for steps on how to configure a new destination and listing destination Id. +

+

+ Refer [Destinations](/docs/alerts/get-notified/destinations/) to know more about destinations. +

+ + + + +```yaml +{ + actor { + account(id: 12345678) { + aiNotifications { + destinations(filters: {type: SLACK, active: true}) { + entities { + createdAt + id + name + active + } + } + } + } + } +} +``` + + + +
`123e4567-e89b-12d3-a456-426614174000`
**text**RequiredStringText message which need to be sent Hello ! this message from Workflow
**channel**RequiredStringChannel name where message will be senthelp-nomad
**selectors**OptionalListThe selectors to get the only specified parameters as output.`[{\"name\": \"success\", \"expression\": \".success\"}]`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**success**Boolean`true/false`
**sessionId**String`"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"`
**errorMessage**String`Channel is a required field in the notification send"`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + name: slack_notification_workflow + description: This is a test workflow to test slack notification send action + steps: + - name: SendMessageUsingSlackChannel + type: action + action: newrelic.notification.sendSlack + version: 1 + inputs: + destinationId: ccd0d926-ed6f-4ddd-bc7d-b7ea9822908d + text: Hi , Testing notifcation api using slack channel name + channel: test-channel-workflow + ``` +
+
+
+
+
+
+ + + + + Runs a workflow through the NerdGraph API. + + + + + Inputs + + + Outputs + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityDatatypeDescription
**definitionName**RequiredStringName of the workflow definition.
**definitionScopeType**OptionalStringScope type of the workflow definition. Scope type must be either `ACCOUNT` or `ORGANIZATION`.
**definitionVersion**OptionalIntVersion of the workflow definition
**idempotencyKey**OptionalStringUnique identifier to ensure idempotency of the request. It should be a UUID.
**workflowInputs**OptionalListVersion of the workflow definition
**runScopeType**RequiredStringScope type of the workflow. Scope type must be `ACCOUNT`. We'll support starting a workflow at the organization level in the future
**runScopeId**RequiredStringScope id of the workflow. Scope type must be accountId for now.
**selectors**OptionalListThe selectors to get the only specified parameters as output.
+ + ### Example + + ```yaml + steps: + - name: startHealthyHeartbeat + type: action + action: newrelic.workflowAutomation.startWorkflowRun + version: 1 + inputs: + definitionName: "heartbeat_newrelicIngestSendEvents_10062025" + definitionVersion: 1 + scopeType: "ACCOUNT" + definitionScopeType: "d34568b7-ee0b-4191-b663-7b2925b0de5b" + workflowInputs: + - key: "cellName" + value: "stg-joint-effort" + runScopeType: "ACCOUNT" + runScopeId: "11544325" + ``` +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldTypeExample
**runId**Unique identifier for the workflow run
**success**Boolean`Status of the request.`
**errorMessage**String`Failure reason as message.`
+
+ + + + + + + + + + + + + +
Workflow example
+ ```yaml + { + "success": true + "runId": "00dc031f-c1cc-4d26-a3fb-6153c553c66b" +} + ``` +
+
+
+
+
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nrdb.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nrdb.mdx new file mode 100644 index 00000000000..4f2cd413764 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nrdb.mdx @@ -0,0 +1,142 @@ +--- +title: "New Relic NRDB actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - New Relic actions + - New Relic NRDB actions +metaDescription: "A list of available new relic nrdb actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for new relic nrdb actions available in the workflow automation actions catalog. These actions enable you to query new relic database. + +## Prerequisites + +Before using New Relic actions in workflow automation, ensure you have: + + * A New Relic account with appropriate permissions. + * A New Relic license key (if sending data to a different account). + * The necessary permissions for the specific New Relic services you plan to use. + +See [License Key](/docs/apis/intro-apis/new-relic-api-keys/#license-key) for information on how to create and manage your New Relic Account License Key. + +## Query NRQL cross accounts [#newrelic-nrdb-query] + +Executes a cross-accounts NRQL query through the NerdGraph API. + + + + + Inputs + + + + Outputs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputOptionalityTypeDescriptionExample
**query**RequiredStringThe NRQL query statement.
**accountIds**OptionalList of int**New Relic Account IDs** specifies the target accounts for query execution. If not provided, the query runs against the workflow's execution account.
**selectors**OptionalListThe selectors to get the only specified parameters as output. + ```yaml + steps: + - name: queryForLog + type: action + action: newrelic.nrdb.query + version: 1 + inputs: + accountIds: [12345] + query: FROM Log SELECT * WHERE message LIKE 'DEMO%' + selectors: + - name: resultsAsString + expression: '.results | tostring' + ``` +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OutputTypeDescriptionExample
**results**An array of objects containing the results of the query. See [Expressions property](/docs/workflow-automation/workflow-automation-apis/definition-schema/#expression-properties) for more information.
**success**BooleanStatus of the request.
**errorMessage**StringFailure reason as message. + ```yaml + { + "success": true + results=[ + { message=[INFO] - Workflow: test has ended, messageId=39af98 }, + { message=[INFO] - Workflow: test - Step query has started, messageId=649c612 }, + ... + ] +} + ``` +
+
+
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx deleted file mode 100644 index c7f948557b7..00000000000 --- a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx +++ /dev/null @@ -1,419 +0,0 @@ ---- -title: "Utility actions" -tags: - - workflow automation - - workflow - - workflow automation actions - - utility actions -metaDescription: "A list of available utility actions in the actions catalog for workflow definitions" -freshnessValidatedDate: never ---- - -This page provides a reference for utility actions available in the workflow automation actions catalog. These actions enable you to perform common data transformation and utility operations in your workflow definitions. - -## Utility actions - - - - This action is used to transform from epoch timestamp to date/time. Possible references: - -* https://en.wikipedia.org/wiki/List_of_tz_database_time_zones -* https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT_IDS - -Refer [fromEpoch](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) for more information. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputOptionalityTypeDescription
**timestamp**RequiredintAn integer representing epoch timestamp. Note that, UNIX epochs are the number of seconds after 1st Jan 1970, midnight UTC (00:00)
**timestampUnit**OptionalstringA string representing unit of provided timestamp. Acceptable values: SECONDS, MILLISECONDS(DEFAULT)
**timezoneId**OptionalstringA string representing timezone for desired date/time, default: UTC
**pattern**OptionalstringA string representing pattern for desired datetime, default: ISO-8601
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldOptionalityDatatypeDescription
**date**RequiredstringA string representation of date.
**time**RequiredstringA string representation of time.
**datetime**RequiredstringA string representation of datetime.
**timezone**RequiredmapA map representation of timezoneId and abbreviation.
-
- - - - - - - - - - - - - - - - - -
ExampleWorkflow InputOutputs
- ```yaml - name: from_epoch - - workflowInputs: - timestamp: - type: Int - timestampUnit: - type: String - timezoneId: - type: String - pattern: - type: String - - steps: - - name: epochTime - type: action - action: utils.datetime.fromEpoch - version: 1 - inputs: - timestamp: ${{ .workflowInputs.timestamp }} - timezoneId: ${{ .workflowInputs.timezoneId }} - pattern: ${{ .workflowInputs.pattern }} - timestampUnit: ${{ .workflowInputs.timestampUnit }} - ``` - - ```json - mutation { - workflowAutomationStartWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { name: "from_epoch" } - workflowInputs: [ - {key: "timestamp", value: "1738236424003"} - {key: "timestampUnit", value: "MILLISECONDS"} - {key: "pattern", value: "yyyy-mm-dd HH:SS"} - {key: "timezoneId", value: "Asia/Kolkata"} - ] - ) { - runId - } - } - ``` - - ```json - { - "date": "2025-01-30", - "time": "16:57:04.003" - "datetime": "2025-01-30 16:00", - "timezone": { - "abbreviation": "IST", - "id": "Asia/Kolkata" - } - } - ``` -
-
-
-
-
-
- - - - This action is used to transform various type of input (JSON, map) to a CSV format. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - - -
InputOptionalityTypeDescription
**data**RequiredanyA string representing a data to transform into CSV, typically a JSON string or a map.
-
- - - - - - - - - - - - - - - - - - - -
FieldOptionalityDatatypeDescription
**csv**RequiredstringA CSV representation of the data received.
-
- - - - - - - - - - - - - - - - - -
ExampleWorkflow InputOutputs
- ```json - name: nrqltocsv - - steps: - - name: queryForLog - type: action - action: newrelic.nrql.query - version: 1 - inputs: - accountIds: ['${{ .workflowInputs.accountId }}'] - query: ${{ .workflowInputs.nrql }} - - - name: csv1 - type: action - action: utils.transform.toCSV - version: 1 - inputs: - data: ${{ .steps.queryForLog.outputs.results | tostring }} - ``` - - ```json - mutation { - startWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { - name: "nrqltocsv", - } - workflowInputs: [ - {key: "accountId" value: "12345678"} - {key: "nrql" value: "FROM TransactionError SELECT error.message, error.class, transactionName, request.uri, query WHERE appName like 'my-app-1%' AND error.expected IS FALSE SINCE 1 hour ago LIMIT 50"} - ] - ) - { runId } - } - ``` -
-
-
-
-
-
- - - - Generate an RFC-compliant V4 uuid. - - - - - Inputs - - - - Outputs - - - - Example - - - - - - - - - - - - - - - - - - - - - -
InputOptionalityDatatypeDescription
-
- - - - - - - - - - - - - - - - - -
FieldDatatypeDescription
**uuid**string
-
- - - - - - - - - - - - - - - - - -
ExampleWorkflow InputOutputs
- name: generateUUID

- steps: - - name: generateUUID - type: action - action: utils.uuid.generate - version: 1 -
- ```json - { - "uuid": "c76bd606-5eaa-42bb-a847-4221fb49f83c", - } - ``` -
-
-
-
-
-
diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident.mdx similarity index 95% rename from src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty.mdx rename to src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident.mdx index a7c9f773de2..ad0d8ee347b 100644 --- a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty.mdx +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident.mdx @@ -1,15 +1,22 @@ --- -title: "PagerDuty actions" +title: "PagerDuty Incident actions" tags: - workflow automation - workflow - workflow automation actions - - pagerduty actions -metaDescription: "A list of available actions in the actions catalog for workflow definitions" + - PagerDuty actions + - PagerDuty Incident actions +metaDescription: "A list of available pagerduty incident actions in the actions catalog for workflow definitions" freshnessValidatedDate: never --- -This page provides a comprehensive reference for PagerDuty actions available in the workflow automation actions catalog. These actions enable you to integrate PagerDuty incident management into your workflow definitions, including creating, updating, resolving, listing, and retrieving incidents. + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for pagerduty incident actions available in the workflow automation actions catalog. These actions enable you to pagerduty incident management. ## Prerequisites @@ -152,7 +159,7 @@ Before using PagerDuty actions in workflow automation, ensure you have:
```yaml - name: resolve-pagerduty-incident + name: resolve-pagerduty-incident description: '' steps: - name: pagerduty_incident_resolve_1 @@ -222,11 +229,11 @@ Before using PagerDuty actions in workflow automation, ensure you have: ```yaml { - offset: 0 , +offset: 0 , - incident_key: 1234-5678-0101123 +incident_key: 1234-5678-0101123 - } +} ```
```yaml { - “incidents”: [ - { - “incident_number”: 1234, - “title”: “Test Incident 1" - ... - } - ] - } +“incidents”: [ +{ +“incident_number”: 1234, +“title”: “Test Incident 1" +... +} +] +} ```
String ```yaml - "error": { - "message": "The request took too long to process.", - "code": 2016 - } + "error": { + "message": "The request took too long to process.", + "code": 2016 + } ```
```yaml - name: list-pagerduty-incidents + name: list-pagerduty-incidents description: '' steps: - name: pagerduty_incident_list_1 @@ -330,7 +337,7 @@ Before using PagerDuty actions in workflow automation, ensure you have: id="pagerDuty.incident.get" title="Get a PagerDuty incident" > - Retrieves detailed information about a specific PagerDuty incident by its ID. + Ge a pagerduty incident. @@ -451,7 +458,7 @@ Before using PagerDuty actions in workflow automation, ensure you have:
```yaml - name: get-pagerduty-incident + name: get-pagerduty-incident description: '' steps: - name: pagerduty_incident_get_1 @@ -713,7 +720,7 @@ Before using PagerDuty actions in workflow automation, ensure you have:
```yaml - name: create-pagerduty-incident + name: create-pagerduty-incident description: '' steps: - name: create @@ -983,7 +990,7 @@ Before using PagerDuty actions in workflow automation, ensure you have:
```yaml - name: update-pagerduty-incident + name: update-pagerduty-incident description: '' steps: - name: pagerduty_incident_update_1 diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/slack/slack-chat.mdx similarity index 60% rename from src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx rename to src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/slack/slack-chat.mdx index a8a5f871cfc..b59aee9feee 100644 --- a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/slack/slack-chat.mdx @@ -1,13 +1,13 @@ --- -title: "Communication actions" +title: "Slack Chat actions" tags: - workflow automation - workflow - workflow automation actions + - Slack actions - communication actions - - slack actions - - ms teams actions -metaDescription: "A list of available actions in the actions catalog for workflow definitions" + - Slack Chat actions +metaDescription: "A list of available slack chat actions in the actions catalog for workflow definitions" freshnessValidatedDate: never --- @@ -17,7 +17,7 @@ freshnessValidatedDate: never This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). -This page provides a comprehensive reference for communication actions available in the workflow automation actions catalog. These actions enable you to integrate communication platforms into your workflow definitions, including sending messages to Slack channels, retrieving reactions, and more. +This page provides a comprehensive reference for slack chat actions available in the workflow automation actions catalog. These actions enable you to slack messaging operations. ## Prerequisites @@ -62,6 +62,7 @@ Sends a message to a slack channel, with an optional file attachment. Input Field Optionality TypeDescription Example
**token** RequiredsecretSecretThe Slack bot token to use. This should be passed as a secret syntax. Refer to [Add Slack configuration](/docs/alerts/get-notified/notification-integrations/) for instructions on setting up a token. `${{ :secrets:slackToken }}`
**channel** RequiredstringStringThe name of the channel, or a channelID, to send the message. See [Slack API](https://docs.slack.dev/reference/methods/chat.postMessage/#arg_channel) for more information. `my-slack-channel`
**text** RequiredstringStringThe message to be posted to Slack in the specified `channel`. `Hello World!`
**threadTs** OptionalstringStringTimestamp belonging to parent message, used to create a message reply in a thread. `.`
**attachment** OptionalmapMapAllows attaching a file with a message onto the specified `channel`.
**attachment.filename** RequiredstringStringSpecify the filename for the uploaded file in Slack. `file.txt`
**attachment.content** RequiredstringStringThe content of the file to upload as UTF8. `Hello\nWorld!`
**selectors**OptionalListThe selectors to get the only specified parameters as output.`[{\"name\": \"threadTs\", \"expression\": \".threadTs\"}, {\"name\": \"channelID\", \"expression\": \".channelID\")\"}]`
- - - - **token**: The Slack bot token to use. This should be passed as a secret syntax. Refer to [Add Slack configuration](/docs/autoflow/overview#add-the-slack-integration) for instructions on setting up a token. - - **channel**: The name of the channel, or a channelID, to send the message. See [Slack API](https://api.slack.com/methods/chat.postMessage#arg_channel/) for more information. - - **text**: The message to be posted to Slack in the specified `channel`. - - **threadTs**: Timestamp belonging to parent message, used to create a message reply in a thread. - - **attachment**: Allow attaching a file with a message onto the specified `channel`. - - **attachment.filename**: Specify the filename for the uploaded file in Slack. - - **attachment.content**: The content of the file to upload as UTF8. - @@ -128,32 +133,42 @@ Sends a message to a slack channel, with an optional file attachment. Output Field Type + Description Example **threadTs** - string + String + Timestamp of the message thread. May be used in future `postMessage` calls to post a reply in a thread. `.` **channelID** - string + String + Id of the channel where message is posted. + `` + + + **success** + Boolean + Status of the request + `true / false` + + + **errorMessage** + String + Failure reason as message `` - - - - **threadTs**: Timestamp of message. May be used in future postMessage calls to post a reply in a thread. - - **channelID**: Id of the channel where message is posted. - -**Example 1: Post a message to a slack channel** +**Example 1: Send slack message** @@ -170,22 +185,27 @@ name: SendMessage steps: - name: send_slack_message type: action - action: slack.chat.postMessage + action: slack.chat.postMessage version: 1 inputs: - token: ${{ :secrets:slackToken }} + token: ${{ :secrets:dn_staging_slack_token }} channel: ${{ .workflowInputs.channel }} text: ${{ .workflowInputs.text }} + selectors: + - name: threadTs + expression: ".threadTs" + - name: channelID + expression: ".channelID" ``` -**Expected inputs:** +**Inputs:** ```json { "inputs": [ { "key" : "channel", - "value" : "my-channel" + "value" : "test-channel-workflow" }, { "key" : "text", @@ -202,6 +222,7 @@ steps: { "threadTs": "1718897637.400609", "channelID": "C063JK1RHN1" + "success": true } ] ``` @@ -225,13 +246,14 @@ steps: name: SendFileMessage steps: + - name: postCsv type: action action: slack.chat.postMessage version: 1 inputs: - token: ${{ :secrets:slackToken }} - channel: my-channel + token: ${{ :secrets:dn_staging_slack_token }} + channel: test-channel-workflow text: "Please find the attached file:" attachment: filename: 'file.txt' @@ -245,6 +267,7 @@ steps: { "threadTs": "1718897637.400609", "channelID": "C063JK1RHN1" + "success": true } ] ``` @@ -289,6 +312,7 @@ Get a reaction of a message from Slack channel. + @@ -296,43 +320,40 @@ Get a reaction of a message from Slack channel. - + + - + + - + + - + + - + +
Input Field Optionality TypeDescription Example
**token** RequiredsecretSecretThe Slack bot token to use. This should be passed as a secret syntax. Refer to [Add Slack configuration](/docs/alerts/get-notified/notification-integrations/) for instructions on setting up a token. `${{ :secrets:slackToken }}`
**channelID** RequiredstringStringThe channelID, to get the message reactions. See [`reactions.get` method](https://docs.slack.dev/reference/methods/reactions.get/#arg_channel) `C063JK1RHN1`
**timeout** OptionalintIntThe time in seconds for how long to wait for any reaction. Default is 60s, maximum allowed is 600s (10min). 60
**threadTs** RequiredstringStringTimestamp belonging to message, used to get reaction of that message. `.`
**selectors** OptionallistListThe selectors to get the only specified parameters as output. `[{\"name\": \"reactions\", \"expression\": \".reactions \"}]`
- - - - **token**: The Slack bot token to use. This should be passed as a secret syntax. Refer to [Add Slack configuration](/docs/autoflow/overview#add-the-slack-integration) for instructions on setting up a token. - - **channelID**: The channelID to get the message reactions. - - **timeout**: The time in seconds for how long to wait for any reaction. Default is 60s, maximum allowed is 600s (10min). - - **threadTs**: Timestamp belonging to message, used to get reaction of that message. - - **selectors**: The selectors to get the only specified parameters as output. -
@@ -341,21 +362,31 @@ Get a reaction of a message from Slack channel. Output Field Type + Description Example - **reactions** - list - `` - + **reactions** + List + List of elements with all the reactions captured or an empty list if timeout occurred. + `` + + + **success** + Boolean + Status of the request + `true / false` + + + **errorMessage** + String + Failure reason as message + `Invalid slack token` + - - - - **reactions**: List of elements with all the reactions captured or an empty list if timeout occurred. - @@ -375,19 +406,19 @@ Get a reaction of a message from Slack channel. name: GetReactions steps: - - name: getReactions + - name: getReactions type: action action: slack.chat.getReactions version: 1 inputs: - token: ${{ :secrets:slackToken }} + token: ${{ :secrets:dn_staging_slack_token }} channelID: ${{ .steps.promptUser.outputs.channelID }} threadTs: ${{ .steps.promptUser.outputs.threadTs }} timeout: ${{ .workflowInputs.timeout }} selectors: ${{ .workflowInputs.selectors }} ``` -**Expected inputs:** +**Inputs:** ```json { @@ -408,30 +439,27 @@ steps: } ``` -**Expected output:** +**Outputs:** ```json [ - { - "name": "grinning", - "users": [ - "W222222" - ], - "count": 1 - }, - { - "name": "question", - "users": [ - "W333333" - ], - "count": 1 - } -] -``` - -Or if it is timed out: - -```json + { + "name": "grinning", + "users": [ + "W222222" + ], + "count": 1 + }, + { + "name": "question", + "users": [ + "W333333" + ], + "count": 1 + } + ] + +or if it is timed out, [] ``` diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/script-run.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/script-run.mdx new file mode 100644 index 00000000000..1cdaff9f882 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/script-run.mdx @@ -0,0 +1,215 @@ +--- +title: "Auth JWT actions" +tags: + - workflow automation + - workflow + - workflow automation actions + - Auth actions + - Auth JWT actions +metaDescription: "A list of available auth jwt actions in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for authentication actions available in the workflow automation actions catalog. These actions enable you to create and manage JSON Web Tokens (JWT) for secure authentication in your workflows. + +## Run a script [#script-run] + + Execute a python script and returns the response to a workflow. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input FieldOptionalityTypeDescriptionExample
**script**RequiredStringAny data transformation script + ```yaml + script: | + print("Hello, World!") + ``` +
**runtime**RequiredEnumRun time version of script`PYTHON_3_13`
**parameters**OptionalListlist of parameters to be used in script`parameters: ["--a", "10", "--b", "5"]`
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Output FieldDatatypeExamples
**success**Boolean`true/false`
**payload**Object`"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"`
**errorMessage**String`parsing error at line 9"`
+
+ + + + + + + + + + + + + +
Example
+ ```yaml + name: script-workflow + +steps: + - name: runScript + type: action + action: script.run + version: 1 + inputs: + script: | + import json + import argparse + + p = argparse.ArgumentParser() + p.add_argument("--a", type=int, required=True) + p.add_argument("--b", type=int, required=True) + args = p.parse_args() + # Data transformation: output original, squared, and sum + result = { + "original": {"a": args.a, "b": args.b}, + "transformed": {"a_squared": args.a ** 2, "b_squared": args.b ** 2}, + "sum": args.a + args.b + } + print(json.dumps(result)) + parameters: ["--a", "10", "--b", "5"] + runtime: PYTHON_3_13 + - name: logOutput + type: action + action: newrelic.ingest.sendLogs + version: 1 + inputs: + logs: + - message: "Hello from script testing : ${{ .steps.runScript.outputs.payload }}" + ``` +
+
+
+
+ +## What script.run can do + +### Supported python version + +- PYTHON_3_13 runtime with full language features + +### Allowed imports + +```yaml + "python-dateutil", + "simplejson", + "re", + "math", + "decimal", + "json", + "datetime", + "collections", + "itertools", + "functools", + "operator", + "string", + "argparse" +``` + +### Data handling + +- Parse and transform JSON data structures +- Process complex strings and perform text manipulation +- Format output as tables, markdown, or structured data + +### Parameter Ppssing + +- Pass simple values via command-line arguments with argparse + +## What script.run cannot do + +### Restricted imports + +- `base64` - Not allowed for security reasons +- `sys` - Not allowed for security reasons +- `os` - System operations restricted +- Most third-party libraries not included in Python 3.13 stdlib + +### Parameter limitations + +- Cannot pass complex JSON as command-line parameters (causes "Unsafe script argument" error) +- Cannot pass strings with special characters via parameters + +### Network/External access + +- No network calls or external API access +- No file system access outside script execution \ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-datetime.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-datetime.mdx new file mode 100644 index 00000000000..765ee39c44c --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-datetime.mdx @@ -0,0 +1,239 @@ +--- +title: "Utilities - DateTime" +tags: + - workflow automation + - workflow + - workflow automation actions + - utility actions + - Utilities - DateTime +metaDescription: "A list of available utilities - datetime in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for utilities - datetime available in the workflow automation actions catalog. These actions enable you to date and time utilities. + +## Updates datetime from epoch [#utils-datetime-fromEpoch] + + This action is used to transform from epoch timestamp to date/time. Possible references: + + * https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + * https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT_IDS + +Refer [fromEpoch](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) for more information. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputOptionalityTypeDescription
**timestamp**RequiredIntAn integer representing epoch timestamp. **Note**: *UNIX epochs are the number of seconds after 1st Jan 1970, midnight UTC (00:00)*
**timestampUnit**OptionalstringA string representing unit of provided timestamp. Acceptable values: `SECONDS`, `MILLISECONDS(DEFAULT)`
**timezoneId**OptionalString + A string representing timezone for desired date/time, default: UTC + +

+ For more information on supported zoneIds refer: [ZoneId (Java Platform SE 8 )](https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html) +

+
**pattern**OptionalString + A string representing pattern for desired datetime, + +

default: `ISO-8601`

+ +

+ For more information on supported patterns refer: [DateTimeFormatter (Java Platform SE 8 )](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) +

+
**selectors**OptionalListThe selectors to get the only specified parameters as output.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldOptionalityDatatypeDescription
**date**RequiredStringA string representation of date.
**time**RequiredStringA string representation of time.
**datetime**RequiredStringA string representation of datetime.
**timezone**RequiredMapA map representation of timezoneId and abbreviation.
**success**BooleanStatus of the request
**errorMessage**StringFailure reason as message
+
+ + + + + + + + + + + + + + + + + +
ExampleWorkflow InputOutputs
+ ```yaml + name: from_epoch + +workflowInputs: + timestamp: + type: Int + timestampUnit: + type: String + timezoneId: + type: String + pattern: + type: String + +steps: + - name: epochTime + type: action + action: utils.datetime.fromEpoch + version: 1 + inputs: + timestamp: ${{ .workflowInputs.timestamp }} + timezoneId: ${{ .workflowInputs.timezoneId }} + pattern: ${{ .workflowInputs.pattern }} + timestampUnit: ${{ .workflowInputs.timestampUnit }} + selectors: + - name: date + expression: ".date" + - name: time + expression: ".time" + - name: datetime + expression: ".datetime" + - name: timezone + expression: ".timezone" + ``` + + ```yaml + mutation { + autoflowsStartWorkflowRun( + accountId: 11933347 + definition: { name: "from_epoch" } + workflowInputs: [ + {key: "timestamp", value: "1738236424003"} + {key: "timestampUnit", value: "MILLISECONDS"} + {key: "pattern", value: "yyyy-mm-dd HH:SS"} + {key: "timezoneId", value: "Asia/Kolkata"} + ] + ) { + runId + } +} + ``` + + ```yaml + { + "success": true + "date": "2025-01-30", + "time": "16:57:04.003" + "datetime": "2025-57-30 16:00", + "timezone": { + "abbreviation": "IST", + "id": "Asia/Kolkata" + } +} + ``` +
+
+
+
diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-transform.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-transform.mdx new file mode 100644 index 00000000000..cd46f37aadc --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-transform.mdx @@ -0,0 +1,214 @@ +--- +title: "Utilities - Transform" +tags: + - workflow automation + - workflow + - workflow automation actions + - utility actions + - Utilities - Transform +metaDescription: "A list of available utilities - transform in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for utilities - transform available in the workflow automation actions catalog. These actions enable you to data transformation utilities. + +## Transform an input data value to a CSV format [#utils-transform-toCSV] + + +This is used to transform various type of input (JSON, map) to a CSV format. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputOptionalityTypeDescription
**data**RequiredanyA string representing a data to transform into CSV, typically a JSON string or a map.
**selectors**OptionalListThe selectors to get the only specified parameters as output.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldOptionalityDatatypeDescription
**csv**RequiredstringA CSV representation of the data received.
**success**BooleanStatus of the request
**errorMessage**StringFailure reason as message
+
+ + + + + + + + + + + + + + + + + +
ExampleWorkflow InputOutputs
+ ```yaml + name: nrqltocsv + +steps: + - name: queryForLog + type: action + action: newrelic.nrql.query + version: 1 + inputs: + accountIds: ['${{ .workflowInputs.accountId }}'] + query: ${{ .workflowInputs.nrql }} + + - name: csv1 + type: action + action: utils.transform.toCSV + version: 1 + inputs: + data: ${{ .steps.queryForLog.outputs.results | tostring }} + selectors: + - name: csv + expression: ".csv" + ``` + + ```yaml + mutation { + startWorkflowRun( + accountId: 11933347 + definition: { + name: "nrqltocsv", + } + workflowInputs: [ + {key: "accountId" value: "11933347"} + {key: "nrql" value: "FROM TransactionError SELECT error.message, error.class, transactionName, request.uri, query WHERE appName like 'temporal-workflow-worker%' AND error.expected IS FALSE SINCE 1 hour ago LIMIT 50"} + ] + ) + { runId } +} + ``` + + ```yaml + error.class,error.message,query,request.uri,timestamp,transactionName +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561445470,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561445470,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561445470,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561445470,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561445470,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561445470,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561445470,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561445470,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561439931,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561439931,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561439931,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561439931,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561439930,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561439930,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561439930,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561439930,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561439770,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561439770,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561439770,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561439770,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561439769,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561439560,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561439560,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561439559,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561439559,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561439559,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561439473,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561421659,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561421659,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561421659,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561421659,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561421659,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561421659,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561421659,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561421659,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561421648,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561421648,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561421648,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561421648,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561421648,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561421648,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561421648,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561421648,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561412587,Unknown +"java.lang.RuntimeException","java.net.UnknownHostException: temporal-frontend.temporal.svc.cluster.local: Name or service not known",,,1720561412587,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561412587,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561412587,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561412587,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561412587,Unknown +"io.grpc.StatusRuntimeException","UNAVAILABLE: Unable to resolve host temporal-frontend.temporal.svc.cluster.local",,,1720561412587,Unknown + ``` +
+
+
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-uuid.mdx b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-uuid.mdx new file mode 100644 index 00000000000..fd3ce384185 --- /dev/null +++ b/src/content/docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-uuid.mdx @@ -0,0 +1,132 @@ +--- +title: "Utilities - UUID" +tags: + - workflow automation + - workflow + - workflow automation actions + - utility actions + - Utilities - UUID +metaDescription: "A list of available utilities - uuid in the actions catalog for workflow definitions" +freshnessValidatedDate: never +--- + + + We're still working on this feature, but we'd love for you to try it out! + + This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). + + +This page provides a comprehensive reference for utilities - uuid available in the workflow automation actions catalog. These actions enable you to uuid generation utilities. + +## Generate a UUID [#utils-uuid-generate] + + Generate an RFC-compliant V4 uuid. Uses Temporal workflow's deterministic PRNG making it safe for use within a workflow. Refer to [Namespace: workflow | Temporal TypeScript SDK API Reference](https://typescript.temporal.io/api/namespaces/workflow?&_ga=2.223881945.39829224.1686648936-167080156.1680123165#uuid4) for more information. + + + + + Inputs + + + + Outputs + + + + Example + + + + + + + + + + + + + + + + + + + + + +
InputOptionalityDatatypeDescription
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDatatypeDescription
**uuid**string
**selectors**ListThe selectors to get the only specified parameters as output.
**success**BooleanStatus of the request.
**errorMessage**StringFailure reason as message.
+
+ + + + + + + + + + + + + + + +
Workflow DefinitionOutputs
+ ```yaml + name: generateUUID +steps: + - name: generateUUID + type: action + action: utils.uuid.generate + version: 1 + inputs: + selectors: + - name: uuid + expression: ".uuid" + ``` + + ```yaml + { + "uuid": "-------------------------------", + "success": true + } + ``` +
+
+
+
\ No newline at end of file diff --git a/src/content/docs/workflow-automation/setup-and-configuration/create-destinations.mdx b/src/content/docs/workflow-automation/setup-and-configuration/create-destinations.mdx index 4b3a760e1e1..16ed1ea28c3 100644 --- a/src/content/docs/workflow-automation/setup-and-configuration/create-destinations.mdx +++ b/src/content/docs/workflow-automation/setup-and-configuration/create-destinations.mdx @@ -16,11 +16,20 @@ freshnessValidatedDate: never This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). -Workflows can send notifications to your team via Slack, PagerDuty, email, or custom webhooks. Use notifications to alert teams when workflows complete, fail, or require approval. +This page covers two ways Workflow Automation integrates with notifications: -## Choose your notification channel +1. **Send notifications FROM workflows**: Use Slack, PagerDuty, email, or webhook actions within your workflows to notify teams when workflows complete, fail, or require approval. +2. **Trigger workflows FROM alerts**: Configure Workflow Automation as a destination in New Relic alerts to automatically start workflows when alert conditions are breached. -Select the right channel for your use case: + + **Two different concepts:** + - **Outbound notifications**: Your workflow sends messages to Slack/PagerDuty using actions like `slack.chat.postMessage` + - **Inbound triggers**: New Relic alerts trigger your workflow to run, passing `issueId` automatically + + +## Send notifications from workflows [#send-from-workflows] + +Use these notification channels to alert your team from within your workflows. Select the right channel for your use case: @@ -105,12 +114,18 @@ Before configuring notifications, ensure you have: - A workflow created in your account (from [template](/docs/workflow-automation/create-a-workflow-automation/use-a-template) or [custom-built](/docs/workflow-automation/create-a-workflow-automation/create-your-own)). - Credentials for your notification channel (Slack bot token, PagerDuty API key, etc.). - - Credentials stored in [secrets manager](/docs/infrastructure/host-integrations/installation/secrets-management/). + - Credentials stored in [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials). + + + **For sending notifications from workflows**: Use the actions catalog to add notification actions (like `slack.chat.postMessage`) directly in your workflow steps. See [Slack actions](/docs/workflow-automation/setup-and-configuration/actions-catalog/slack/slack-chat) and [PagerDuty actions](/docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident). + + +## Trigger workflows from alerts [#trigger-from-alerts] -## Setup a destination [#set-the-destination] +Configure Workflow Automation as a destination in New Relic alerts to automatically start workflows when alert conditions are breached. When triggered by an alert, workflows automatically receive `issueId` and `accountId` as inputs. 1. Navigate to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > Alerts > Destinations**, and select **Workflow Automation**. - 2. To configure the Workflow Automation, enter the required information, such as the **Workflow Automation destination name** (a unique name for the Workflow Automation) and the **API Key**. + 2. To configure the **Workflow Automation**, enter the required information, such as the **Workflow Automation destination name** (a unique name for the** Workflow Automation**) and the **API Key**. 3. Click **Save destination**. -## Create a notification workflow [#create-the-notification-workflow] +## Create an alert notification workflow [#create-the-notification-workflow] + +After setting up **Workflow Automation** as a destination, create an alert notification workflow to define which alerts trigger your workflows. + + + The steps below are for configuring **alert notification workflows** (part of New Relic Alerts), not **Workflow Automation**. Alert notification workflows route issues to destinations, including the **Workflow Automation** destination you configured above. For complete documentation on alert workflows, see [Incident workflows](/docs/alerts/get-notified/incident-workflows). + 1. Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > Alerts > Notification Workflows**, and select **+ Add a workflow**. 2. To configure your notification workflow, on the Configure your notification workflow page, provide the required information: - Enter a unique name that you will recognize. - Select the **Tag**, **Policy**, and **Priority** attributes from their respective dropdowns in the **Basic** filter option to receive notifications about an incident, or opt for the **Advanced** filter option to choose **Attributes**, **Operators**, and **Values** for more detailed incident notifications. - Click **Additional settings** to enrich your data by building [NRQL queries](/docs/alerts/get-notified/incident-workflows/#enrichments) to gather related data from across your New Relic platform. For enrichment examples, see [Workflow data enrichment](/docs/alerts/get-notified/custom-variables-incident-workflows/#enrichment-examples). - 3. To specify notification destinations, in the **Notify** section, choose one or more [**Destination**](/docs/alerts/get-notified/destinations). - 4. Here's an example: to send notifications to a [Slack](/docs/alerts/get-notified/notification-integrations/#slack) group, select **Slack** as the destination type. + 3. To specify notification destinations, in the **Notify** section, choose the **Workflow Automation** destination you created in the previous step. + 4. (Optional) You can also add other destinations like [Slack](/docs/alerts/get-notified/notification-integrations/#slack) to receive notifications alongside triggering the workflow: 1. Select the **Slack destination** from the drop-down list. 2. Choose the **Channel** from the drop-down list and check the **Receive notification updates on the channel** checkbox. 3. Optionally, add a custom message in the **Custom Details** section. @@ -135,8 +156,7 @@ Before configuring notifications, ensure you have: We recommend sending a test notification using **Send test notification**. 4. Select **Save message**. - 5. To test the workflow automation, select **Test workflow**. This uses existing data from your account to verify the configuration and sends a sample notification to ensure it reaches the Slack group. - 6. Select **Activate workflow**. + 5. Select **Activate workflow**. +## What data is passed to Workflow Automation [#data-passed] + +When an alert triggers your Workflow Automation: + +- **`issueId`**: Automatically passed to your workflow. Your workflow must accept this as an input parameter. As documented in [Create your own workflow](/docs/workflow-automation/create-a-workflow-automation/create-your-own), the `issueId` is "provided automatically when the workflow runs from an alert." +- **`accountId`**: Your New Relic account ID. Your workflow must accept this as a required input parameter. + +Your Workflow Automation definition must declare these inputs. For example: + +```yaml +workflowInputs: + accountId: + type: Int + issueId: + type: String +``` + +Note: Inputs without a `defaultValue` are required and must be provided when the workflow is triggered. You can then use `issueId` to query alert details using the NerdGraph API within your workflow. + ## What's next - **[Actions catalog](/docs/workflow-automation/setup-and-configuration/actions-catalog/actions-catalog)**: View all available AWS, New Relic, and integration actions. diff --git a/src/content/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials.mdx b/src/content/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials.mdx index 4f82f75ad8a..47fe438cc8a 100644 --- a/src/content/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials.mdx +++ b/src/content/docs/workflow-automation/setup-and-configuration/set-up-aws-credentials.mdx @@ -180,7 +180,7 @@ Choose the method that matches your use case from the table above: 4. Save this ARN securely—you'll paste it directly into workflow configurations - **Important:** Role ARNs go directly in workflow inputs—don't store them in secrets manager. They're not sensitive credentials; they're resource identifiers. + **Important:** Role ARNs go directly in workflow inputs—don't store them in [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials). They're not sensitive credentials; they're resource identifiers. The role is now configured. Use the ARN in workflow configurations that require AWS access. @@ -228,12 +228,12 @@ Choose the method that matches your use case from the table above: ### Store credentials securely - Never hardcode AWS credentials in workflows. Store them in New Relic's [secrets manager](/docs/infrastructure/host-integrations/installation/secrets-management/) instead. + Never hardcode AWS credentials in workflows. Store them in New Relic's [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) instead. 1. Open the [NerdGraph GraphiQL explorer](https://one.newrelic.com/nerdgraph-graphiql) 2. Run this mutation to store your Access Key ID (replace the placeholder values): - ```graphql + ```yaml mutation { secretsManagementCreateSecret( scope: {type: ACCOUNT id: "YOUR_NR_ACCOUNT_ID"} @@ -249,7 +249,7 @@ Choose the method that matches your use case from the table above: 3. Run another mutation for your Secret Access Key: - ```graphql + ```yaml mutation { secretsManagementCreateSecret( scope: {type: ACCOUNT id: "YOUR_NR_ACCOUNT_ID"} @@ -313,7 +313,7 @@ Choose the method that matches your use case from the table above: } ``` - 3. Store all three credentials in secrets manager: + 3. Store all three credentials in [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials): - `AccessKeyId` store as `awsAccessKeyId` - `SecretAccessKey` store as `awsSecretAccessKey` - `SessionToken` store as `awsSessionToken` @@ -331,19 +331,19 @@ Choose the method that matches your use case from the table above: ### IAM role (recommended) - Paste the role ARN directly into workflow inputs—no secrets manager needed: + Paste the role ARN directly into workflow inputs—no [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) needed: ```yaml awsRoleArn: arn:aws:iam::123456789012:role/NewRelicWorkflowAutomationRole ``` - + Role ARNs are resource identifiers, not sensitive credentials. Don't store them in secrets manager—paste them directly into workflow configurations. ### IAM user or session tokens - Reference secrets manager for access keys: + Reference [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) for access keys: ```yaml awsAccessKeyId: ${{ :secrets:awsAccessKeyId }} diff --git a/src/content/docs/workflow-automation/troubleshooting.mdx b/src/content/docs/workflow-automation/troubleshooting.mdx index f89a4b510f6..e78137ffcd3 100644 --- a/src/content/docs/workflow-automation/troubleshooting.mdx +++ b/src/content/docs/workflow-automation/troubleshooting.mdx @@ -50,7 +50,7 @@ This page provides solutions to common issues you might encounter when using Wor --role-arn "arn:aws:iam::YOUR_ACCOUNT:role/YOUR_ROLE" \ --role-session-name "WorkflowAutomationSession" ``` -2. **For access keys:** Verify both the Access Key ID and Secret Access Key are correctly stored in secrets manager. Re-check the values in [NerdGraph GraphiQL explorer](https://one.newrelic.com/nerdgraph-graphiql). +2. **For access keys:** Verify both the Access Key ID and Secret Access Key are correctly stored in [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials). Re-check the values in [NerdGraph GraphiQL explorer](https://one.newrelic.com/nerdgraph-graphiql). 3. **Check secrets syntax:** Ensure you're using `${{ :secrets:keyName }}` format, not `${{ secrets.keyName }}`. The colon prefix (`:secrets:`) is required. ### Can't find my role ARN @@ -196,7 +196,7 @@ For detailed instructions on viewing logs and execution history, see [Monitor wo 3. **Verify bot is in channel**: Add the bot to the target channel: - Type `/invite @YourBotName` in the channel - Confirm the bot appears in the member list -4. **Check token in secrets**: Verify the Slack token stored in secrets manager is correct and hasn't expired. +4. **Check token in secrets**: Verify the Slack token stored in [secrets manager](/docs/workflow-automation/limitations-and-faq/workflow-best-practices/#secure-credentials) is correct and hasn't expired. ### AWS Systems Manager operations fail diff --git a/src/content/docs/workflow-automation/workflow-automation-apis/create-schedule.mdx b/src/content/docs/workflow-automation/workflow-automation-apis/create-schedule.mdx index 8eedc80b6a0..d22fe02e69e 100644 --- a/src/content/docs/workflow-automation/workflow-automation-apis/create-schedule.mdx +++ b/src/content/docs/workflow-automation/workflow-automation-apis/create-schedule.mdx @@ -29,4 +29,13 @@ mutation { scheduleId } } -``` \ No newline at end of file +``` + +## logLevel option + +The `logLevel` option controls the amount of logging information generated during workflow execution. + +**Available values:** +- `NONE` (default): No log outputs will be generated. +- `INFO`: Outputs step level information. +- `DEBUG`: Adds attribute to the step started logs with all the action step inputs. \ No newline at end of file diff --git a/src/content/docs/workflow-automation/workflow-automation-apis/create-workflow-definition.mdx b/src/content/docs/workflow-automation/workflow-automation-apis/create-workflow-definition.mdx index 061dd4779d8..8476a99e307 100644 --- a/src/content/docs/workflow-automation/workflow-automation-apis/create-workflow-definition.mdx +++ b/src/content/docs/workflow-automation/workflow-automation-apis/create-workflow-definition.mdx @@ -15,7 +15,7 @@ This API is used to create a workflow definition. It returns an error if the wor Use the [Query Builder](https://one.newrelic.com/nerdgraph-graphiql?state=c8579e50-f154-fec6-22b8-f9fdcfc1990a) to create and edit a workflow. See [NerdGraph API explorer](/docs/apis/nerdgraph/get-started/nerdgraph-explorer). -```graphiql +```yaml mutation { workflowAutomationCreateWorkflowDefinition( scope: { diff --git a/src/content/docs/workflow-automation/workflow-automation-apis/definition-schema.mdx b/src/content/docs/workflow-automation/workflow-automation-apis/definition-schema.mdx index 1e9dabe889f..cb2ec3fec06 100644 --- a/src/content/docs/workflow-automation/workflow-automation-apis/definition-schema.mdx +++ b/src/content/docs/workflow-automation/workflow-automation-apis/definition-schema.mdx @@ -2,7 +2,7 @@ title: Workflow definition schema tags: - workflow automation - - workflow schems + - workflow schemas - workflow automation API metaDescription: "Workflow definitions are written in YAML. Keys use a camelCase naming convention." freshnessValidatedDate: never @@ -109,19 +109,19 @@ Workflow definitions are written in YAML. Keys use a `camelCase` naming conventi - **Type**: Map of values (includes [expressions]()) - **Description**: - The inputs to pass to the action function. The specific inputs accepted are defined by each action. - - Inputs can use expressions. See the [Expressions Strings]() section for details. + - Inputs can use expressions. See the [Expression Strings]() section for details. No sensitive data (no API keys or secrets, no PII, PHI or any personally identifiable data) should be passed-in as arguments. - **`steps[*].inputs.selectors`** (Optional) - - **Type**: list of map in the form of `name` with `expression`. + - **Type**: list of maps in the form of `name` with `expression`. - **Description**: - - The `selectors` input allows to redefine the output to only return the specified elements. - - Expression can be used. See the [Expressions Strings]() section for details. + - The `selectors` input allows you to redefine the output to only return the specified elements. + - Expressions can be used. See the [Expression Strings]() section for details. - **Example** - - In the given example we are getting the `pageUrl` and `statusDescription` as response of http.get action. + - In the given example we are getting the `pageUrl` and `statusDescription` as the response from the http.get action. ```yaml name: status @@ -196,9 +196,9 @@ For more details see below: - `element` and `index` are automatically assigned as part of the loop. - - `Index` is a zero-based. + - `Index` is zero-based. - The `element` can be a complex type if you have a collection of complex elements. - - All loop variables and outputs from steps within the loop have loop-level scope. These variables are cleared after exiting the loop and accessing them outside of the loop will result in null value. Loop can access variables that are outside of the loop if it’s previously defined. + - All loop variables and outputs from steps within the loop have loop-level scope. These variables are cleared after exiting the loop and accessing them outside of the loop will result in a null value. A loop can access variables that are outside of the loop if they are previously defined. **Simple for loop on integers** @@ -341,7 +341,7 @@ For more details see below: - name: loopStep type: loop for: - in: "${{ [range(1; 5)] }}"" + in: "${{ [range(1; 5)] }}" steps: - name: step1 type: action @@ -382,7 +382,7 @@ For more details see below: ### wait - A step that causes the workflow run to wait a certain number of seconds before continuing. It can also listen for one or more signals. If no signal is received during the wait, it will proceed as normal. The signals are defined in a list. Each signal must have a corresponding next step defined. The first signal to be received is the one that will be processed. The value received for the signal will be stored in the step output for the wait step and can be used for logic our processing in later steps. + A step that causes the workflow run to wait a certain number of seconds before continuing. It can also listen for one or more signals. If no signal is received during the wait, it will proceed as normal. The signals are defined in a list. Each signal must have a corresponding next step defined. The first signal to be received is the one that will be processed. The value received for the signal will be stored in the step output for the wait step and can be used for logic or processing in later steps. - Example: @@ -436,9 +436,9 @@ Several properties accept string values with embedded expressions that are evalu jq provides the ability to access and operate on values in many ways. For example, the length of a workflow input string could be achieved with the following: `${{ .workflowInputs.myString | length }}` -To build and [test JQ](https://play.jqlang.org/) expression this tool can be used. +To validate and test your JQ expressions, use the [JQ Playground](https://play.jqlang.org/). -### Expression properties +### Expression properties [#expression-properties] A number of properties can be accessed with expressions. These properties live in a “scope” object, so expressions must start with a period (.) to access those properties of the scope object. @@ -500,12 +500,12 @@ For the following examples, assume myArray has a value of [1, 2, 3].
-### Expression-Safe Pattern [#expression-safe-pattern] +### Expression-safe pattern [#expression-safe-pattern] Properties that can be used in expressions must conform to the following regex: `^[A-Za-z_][A-Za-z0-9_]*$` -### Secret References +### Secret references Secret values can be used in actions via reference strings that specify the name of a secret to look up in the Secrets Service. To reference a secret in a workflow definition, use the syntax: - `${{ :secrets: }}` for a secret not in a `namespace` @@ -513,7 +513,7 @@ Secret values can be used in actions via reference strings that specify the name An expression string can contain a mix of secret references and JQ expressions and/or multiple secret references. -Examples: +### Examples: ```yaml steps: @@ -525,8 +525,6 @@ Examples: Authorization: Bearer ${{ :secrets: }} ``` -## Examples - - Hello World ```yaml diff --git a/src/content/docs/workflow-automation/workflow-automation-apis/start-workflow-run.mdx b/src/content/docs/workflow-automation/workflow-automation-apis/start-workflow-run.mdx index 0767b1fcb7c..dd17ac18ede 100644 --- a/src/content/docs/workflow-automation/workflow-automation-apis/start-workflow-run.mdx +++ b/src/content/docs/workflow-automation/workflow-automation-apis/start-workflow-run.mdx @@ -24,7 +24,7 @@ mutation { scope: {id: "12345678", type: ACCOUNT} definition: {name: "my-workflow"} workflowInputs: [ - {key: "foo", value: "bar"}, + {key: "foo", value: "bar"}, {key: "fruit", value: "apple"} ] options: {logLevel: DEBUG} @@ -32,4 +32,13 @@ mutation { runId } } -``` \ No newline at end of file +``` + +## logLevel option + +The `logLevel` option controls the amount of logging information generated during workflow execution. + +**Available values:** +- `NONE` (default): No log outputs will be generated. +- `INFO`: Outputs step level information. +- `DEBUG`: Adds attribute to the step started logs with all the action step inputs. \ No newline at end of file diff --git a/src/content/docs/workflow-automation/workflow-examples.mdx b/src/content/docs/workflow-automation/workflow-examples.mdx index bffd5bcea34..9fff6462df7 100644 --- a/src/content/docs/workflow-automation/workflow-examples.mdx +++ b/src/content/docs/workflow-automation/workflow-examples.mdx @@ -11,9 +11,7 @@ freshnessValidatedDate: never This page shows common automation scenarios you can build with Workflow Automation. Use these examples as starting points for your own workflows, or explore the [template library](/docs/workflow-automation/create-a-workflow-automation/use-a-template) for ready-to-deploy solutions. -## Incident response and remediation - -### API gateway rollback +## API gateway rollback Revert API gateway configs to a previous state so you can fix errors and misconfigurations. @@ -33,7 +31,7 @@ Revert API gateway configs to a previous state so you can fix errors and misconf **Key actions**: `newrelic.nerdgraph.execute`, `slack.chat.postMessage`, `slack.chat.getReactions`, `aws.systemsManager.writeDocument`, `aws.systemsManager.startAutomation`, `aws.systemsManager.waitForAutomationStatus`, `aws.systemsManager.deleteDocument` -### EC2 instance management +## EC2 instance management Automate provisioning, scaling, and termination of EC2 instances for optimal performance and cost. @@ -54,7 +52,7 @@ Automate provisioning, scaling, and termination of EC2 instances for optimal per **Key actions**: `newrelic.nerdgraph.execute`, `newrelic.nrdb.query`, `slack.chat.postMessage`, `slack.chat.getReactions`, `aws.systemsManager.writeDocument`, `aws.systemsManager.startAutomation`, `aws.systemsManager.waitForAutomationStatus`, `aws.systemsManager.deleteDocument`, `utils.datetime.fromEpoch`, `utils.uuid.generate` -### Deployment rollback +## Deployment rollback Rollback deployment if entity becomes unhealthy and notify with either AWS SQS or HTTP. @@ -74,9 +72,7 @@ Rollback deployment if entity becomes unhealthy and notify with either AWS SQS o **Key actions**: `newrelic.nerdgraph.execute`, `newrelic.ingest.sendLogs`, `aws.execute.api` (sqs.send_message), `http.post` -## Data processing and reporting - -### Send a report to Slack +## Send a report to Slack Send a NRQL query output as a CSV file on Slack. @@ -91,7 +87,7 @@ Send a NRQL query output as a CSV file on Slack. **Key actions**: `newrelic.nrdb.query`, `utils.transform.toCSV`, `slack.chat.postMessage` -### JSON Parsing +## JSON Parsing Parses the New Relic public status API JSON (HTTP) and optionally logs operational and non-operational components. @@ -108,6 +104,157 @@ Parses the New Relic public status API JSON (HTTP) and optionally logs operation **Key actions**: `http.get`, `newrelic.ingest.sendLogs` +## REST API polling and logging + +Poll a REST API endpoint, loop through results, and log data to New Relic. + + +**Key Point:** You don't need to use selectors if you want the full payload. Most workflow tools let you reference the complete response object directly. + + +### Simple GET and Log + +For a basic use case of polling an API and logging the full response: + +**What this workflow does:** +- Trigger: Schedule (e.g., every 5 minutes) or you can use Run for manual +- HTTP Request Step: + - Method: GET + - URL: https://pokeapi.co/api/v2/pokemon + - Save full response body to a variable (e.g., `{{.http_response}}`) +- Log/Create Event Step: + - Send the entire `{{.http_response.body}}` as the payload + - No selectors needed - just pass through the raw JSON + +### REST API with loops and selectors + +This example collects all results from an API, loops through them, makes individual HTTP calls, and logs extracted data. + + +For detailed information about loop structure, parameters, and advanced usage, see [Loop structure](#loop-structure). + + +**What this workflow does:** +- Fetches all results from a REST API endpoint +- Loops through each result in the response +- Makes individual API calls for each item using data from the loop +- Extracts specific fields from each response using selectors +- Logs the extracted data to New Relic with custom attributes + +**Requirements:** +- Access to a REST API endpoint +- Permissions to send logs via newrelic.ingest.sendLogs + +**Key actions**: `http.get`, `newrelic.ingest.sendLogs` + +```yaml +name: pokemon_workflow +description: '' +steps: + - name: get_all_pokemons + type: action + action: http.get + version: '1' + inputs: + url: https://pokeapi.co/api/v2/pokemon + selectors: + - name: pokemons + expression: .responseBody | fromjson.results + - name: pokemon_loop + type: loop + for: + in: ${{ .steps.get_all_pokemons.outputs.pokemons }} + steps: + - name: get_individual_pokemon + type: action + action: http.get + version: '1' + inputs: + url: ${{ .steps.pokemon_loop.loop.element.url }} + selectors: + - name: pokemon_name + expression: .responseBody | fromjson.name + - name: pokemon_id + expression: .responseBody | fromjson.id + - name: pokemon_stats + expression: .responseBody | fromjson.stats + - name: log_pokemon_info + type: action + action: newrelic.ingest.sendLogs + version: '1' + inputs: + logs: + - message: >- + Pokemon name is: ${{ + .steps.get_individual_pokemon.outputs.pokemon_name}}, Id: ${{ + .steps.get_individual_pokemon.outputs.pokemon_id}} + attributes: + pokemon_stats: ${{ .steps.get_individual_pokemon.outputs.pokemon_stats}} + next: continue + next: end +``` + +### REST API to CSV conversion + +This example illustrates using the full response without selectors, converting API data to CSV, and sharing it via Slack. + +**What this workflow does:** +- Fetches current time data from World Time API based on timezone input +- Converts the full JSON response to CSV format +- Logs the CSV data to New Relic +- Posts the CSV file to a Slack channel + +**Requirements:** +- Access to a REST API endpoint +- Permissions to send logs via newrelic.ingest.sendLogs +- A configured Slack app with a token and target channel + +**Key actions**: `http.get`, `utils.transform.toCSV`, `newrelic.ingest.sendLogs`, `slack.chat.postMessage` + +```yaml +name: jsontocsv + +workflowInputs: + timezone: + type: String + defaultValue: 'America/Los_Angeles' + +steps: + - name: getCurrentTime + type: action + action: http.get + version: 1 + inputs: + url: 'https://worldtimeapi.org/api/timezone/${{ .workflowInputs.timezone }}' + + - name: csv1 + type: action + action: utils.transform.toCSV + version: 1 + inputs: + json: ${{ .steps.getCurrentTime.outputs.responseBody }} + + - name: logOutput + type: action + action: newrelic.ingest.sendLogs + version: 1 + inputs: + logs: + - message: 'CSV: ${{ .steps.csv1.outputs.csv }}' + + - name: postCsv + type: action + action: slack.chat.postMessage + version: 1 + inputs: + channel: test-channel-workflow + text: "Current Date details" + attachment: + filename: 'file.csv' + content: ${{ .steps.csv1.outputs.csv }} + token: ${{ :secrets:dn_staging_slack_token }} +``` + ## Available template workflows The templates listed above are available directly in the New Relic Workflow Automation UI. To access them: @@ -129,6 +276,27 @@ You can use templates as-is or customize them to fit your specific requirements. All workflows can reference outputs from previous steps using template syntax. This allows you to chain together actions and build complex automation logic. +### Using workflow inputs + +You can use the syntax `${{ .workflowInputs.variableName }}` to pass dynamic values at runtime. This syntax works in endpoint URLs and other input fields. + +**Example:** + +```json +{ + "inputs": [ + { + "key": "urlParams", + "value": "{\"filter\": \"active\"}" + }, + { + "key": "headers", + "value": "{\"Api-Key\": \"your-api-key\"}" + } + ] +} +``` + ### Basic data passing This example queries alert issues from New Relic and sends notifications to Slack for each active issue. @@ -186,30 +354,160 @@ steps: title: ${{ .steps.loopStep.loop.element.title | tostring }} ``` -### Using data in loops +### Loop structure [#loop-structure] + +You can use the loop to iterate through a list, map, or collection. + +A loop will iterate over a given collection defined by `in`. It will automatically create loop variables `index` and `element` for each of its iterations. These loop variables are accessible within the loop with JQ expression `${{ .steps..loop.element }}` or `${{ .steps..loop.index }}`. + +**Parameters:** + +- **`for`** (REQUIRED): Signal starting of a loop +- **`in`** (REQUIRED, string expression): An expression that needs to be evaluated to a collection of elements +- **`steps`** (REQUIRED): Steps to be executed each iteration of the loop. A step can be any type of step, including another loop + +**Loop with workflow inputs:** + +```yaml +name: myWorkflow +steps: + - name: loopStep + type: loop + for: + in: '${{ .workflowInputs.count }}' + steps: + - name: step1 + type: action + action: internal.example.sayHello + version: '1' + inputs: + name: 'Element: ${{ .steps.loopStep.loop.element }}, Index: ${{ .steps.loopStep.loop.index }}' +``` + +**Important notes:** +- `for`: required. This is the top-level element indicating the beginning of a for loop +- `in`: required. For the input collection to be iterated on, it must be castable to Java Array +- `steps`: required. Each iteration the steps will be executed +- `element` and `index` are automatically assigned as part of the loop +- `index` is zero-based +- The `element` can be a complex type if you have a collection of complex elements +- All loop variables and outputs from steps within the loop have loop-level scope. These variables are cleared after exiting the loop and accessing them outside of the loop will result in null value. Loop can access variables that are outside of the loop if it's previously defined. + +**Simple loop on integers:** + +```yaml +name: myWorkflow +steps: + - name: loopStep + type: loop + for: + in: ${{ [range(1; 6)] }} + steps: + - name: step1 + type: action + action: internal.example.sayHello + version: '1' + inputs: + name: 'Element: ${{ .steps.loopStep.loop.element }}, Index: ${{ .steps.loopStep.loop.index }}' +``` + +**Simple loop for map:** + +```yaml +name: myWorkflow +steps: + - name: loopStep + type: loop + for: + in: '${{ [ { "key1": "val1" }, { "key2": "val2"} ] }}' + steps: + - name: step1 + type: action + action: internal.example.sayHello + version: '1' + inputs: + name: 'Element: ${{ .steps.loopStep.loop.element }}, Index: ${{ .steps.loopStep.loop.index }}' +``` + +**Jump within a loop:** + +Only jumping between named steps belonging to the same for loop is allowed. Jumping in or out of a for loop, to an inner/outer loop, or between two different for loops, is not allowed. ```yaml +name: myWorkflow steps: - - name: listInstances + - name: firstStep type: action - action: aws.ec2.describeInstances - version: 1 - inputs: - filters: - - name: "tag:Environment" - values: ["production"] + action: internal.example.sayHello + version: '1' + - name: loopStep + type: loop + for: + in: '${{ .workflowInputs.count }}' + steps: + - name: step1 + type: action + action: internal.example.sayHello + version: '1' + inputs: + name: '${{ .steps.loopStep.loop.element }}' + next: step3 # Okay within the loop + - name: step2 + type: action + action: internal.example.sayHello + version: '1' + inputs: + name: '${{ .steps.step1.outputs.greeting }}' + - name: step3 + type: action + action: internal.example.sayHello + version: '1' + next: firstStep # Not okay, first step is not in the loop context +``` + +**Use break/continue in a loop:** + +To change the flow of a for loop, you can use `next: break` or `next: continue`. Note that `break` and `continue` are reserved jump targets defined implicitly within a loop. Using `next: break` or `next: continue` outside of a loop will jump to the end of the workflow steps. - - name: checkEachInstance +The `end` serves as the same as `break` if it's used inside a loop. Next can be used in both switch steps or any type of step. + +```yaml +name: myWorkflow +steps: + - name: loopStep type: loop for: - in: "${{ .steps.listInstances.outputs.reservations }}" + in: '${{ [range(1; 6)] }}' steps: - - name: getInstanceMetrics + - name: insideLoopStep1 type: action - action: newrelic.nerdgraph.execute - version: 1 + action: internal.example.sayHello + version: '1' + inputs: + name: '${{ .steps.loopStep.loop.element }}' + next: continue + - name: insideLoopStep2 + type: action + action: internal.example.sayHello + version: '1' + inputs: + name: '${{ .steps.loopStep.loop.element }}' + - name: loopStepAgain + type: loop + for: + in: '${{ .workflowInputs.count }}' + steps: + - name: switchStep + type: switch + switch: + - condition: '${{ .steps.loopStepAgain.loop.index >= 0 }}' + next: break + - name: insideLoopStepAgain + type: action + action: internal.example.sayHello + version: '1' inputs: - query: "SELECT average(cpuPercent) FROM SystemSample WHERE instanceId = '${{ .steps.checkEachInstance.loop.element.instanceId }}'" + name: '${{ .steps.loopStepAgain.loop.element }}' ``` ### Conditional logic with data diff --git a/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx b/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx deleted file mode 100644 index 89628a3908b..00000000000 --- a/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx +++ /dev/null @@ -1,652 +0,0 @@ ---- -title: acciones de comunicación -tags: - - workflow automation - - workflow - - workflow automation actions - - communication actions - - slack actions - - ms teams actions -metaDescription: A list of available actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras! - - Esta característica se proporciona actualmente como parte de un programa de vista previa de conformidad con nuestras [políticas de prelanzamiento](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -Esta página proporciona una referencia completa de las acciones de comunicación disponibles en el catálogo de acciones de automatización del flujo de trabajo. Estas acciones te permiten integrar la plataforma de comunicación en tus definiciones de flujo de trabajo, incluyendo el envío de mensajes a canales de Slack, la recuperación de reacciones y más. - -## Requisitos previos - -Antes de emplear acciones de comunicación en la automatización del flujo de trabajo, cerciorar de tener: - -* Un espacio de trabajo de Slack con las licencias adecuadas. -* Un token de bot de Slack configurado como secreto en la automatización del flujo de trabajo. -* Acceso a los canales de Slack donde deseas enviar mensajes. - -Consulta [la sección "Agregar configuración de Slack"](/docs/autoflow/overview#add-the-slack-integration) para obtener información sobre cómo configurar la integración de Slack. - -## Acciones de Slack - - - - Envía un mensaje a un canal de Slack, con un archivo adjunto opcional. - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidad - - Tipo - - Ejemplo -
- **token** - - Requerido - - secreto - - `${{ :secrets:slackToken }}` -
- **canal** - - Requerido - - cadena - - `my-slack-channel` -
- **texto** - - Requerido - - cadena - - `Hello World!` -
- **hilosTs** - - Opcional - - cadena - - `.` -
- **adjunto** - - Opcional - - mapa - -
- **archivo adjunto** - - Requerido - - cadena - - `file.txt` -
- **contenido del archivo adjunto** - - Requerido - - cadena - - `Hello\nWorld!` -
- - - * **token**: El token del bot de Slack que se va a emplear. Esto debe pasar como una sintaxis secreta. Consulte [la sección "Agregar configuración de Slack"](/docs/autoflow/overview#add-the-slack-integration) para obtener instrucciones sobre cómo configurar un token. - * **channel**: El nombre del canal, o un ID de canal, al que se enviará el mensaje. Consulta [la API de Slack](https://api.slack.com/methods/chat.postMessage#arg_channel/) para obtener más información. - * **text**: El mensaje que se publicará en Slack en el `channel` especificado. - * **threadTs**: marca de tiempo perteneciente al mensaje principal, empleada para crear una respuesta de mensaje en un hilo. - * **attachment**: Permite anexar un archivo con un mensaje al `channel` especificado. - * **attachment.filename**: Especifique el nombre del archivo cargado en Slack. - * **attachment.content**: El contenido del archivo a subir en formato UTF-8. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de salida - - Tipo - - Ejemplo -
- **hilosTs** - - cadena - - `.` -
- **ID de canal** - - cadena - - `` -
- - - * **threadTs**: marca de tiempo del mensaje. Puede emplear en futuras llamadas a postMessage para publicar una respuesta en un hilo. - * **channelID**: Identificador del canal donde se publica el mensaje. - -
- - - **Ejemplo 1: Publicar un mensaje en un canal de Slack** - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: SendMessage - - steps: - - name: send_slack_message - type: action - action: slack.chat.postMessage - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channel: ${{ .workflowInputs.channel }} - text: ${{ .workflowInputs.text }} - ``` - - **Entradas esperadas:** - - ```json - { - "inputs": [ - { - "key" : "channel", - "value" : "my-channel" - }, - { - "key" : "text", - "value" : "This is my message *with bold text* and `code backticks`" - } - ] - } - ``` - - **Resultado esperado:** - - ```json - [ - { - "threadTs": "1718897637.400609", - "channelID": "C063JK1RHN1" - } - ] - ``` -
- - **Ejemplo 2: Anexar un archivo** - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: SendFileMessage - - steps: - - name: postCsv - type: action - action: slack.chat.postMessage - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channel: my-channel - text: "Please find the attached file:" - attachment: - filename: 'file.txt' - content: "Hello\nWorld!" - ``` - - **Resultado esperado:** - - ```json - [ - { - "threadTs": "1718897637.400609", - "channelID": "C063JK1RHN1" - } - ] - ``` -
-
-
-
-
-
- - - - Obtén una reacción a un mensaje del canal de Slack. - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidad - - Tipo - - Ejemplo -
- **token** - - Requerido - - secreto - - `${{ :secrets:slackToken }}` -
- **ID de canal** - - Requerido - - cadena - - `C063JK1RHN1` -
- **se acabó el tiempo** - - Opcional - - En t - - 60 -
- **hilosTs** - - Requerido - - cadena - - `.` -
- **selectores** - - Opcional - - lista - - `[{\"name\": \"reactions\", \"expression\": \".reactions \"}]` -
- - - * **token**: El token del bot de Slack que se va a emplear. Esto debe pasar como una sintaxis secreta. Consulte [la sección "Agregar configuración de Slack"](/docs/autoflow/overview#add-the-slack-integration) para obtener instrucciones sobre cómo configurar un token. - * **channelID**: El ID del canal para obtener las reacciones a los mensajes. - * **timeout**: El tiempo en segundos que se debe esperar para obtener alguna respuesta. El valor predeterminado es 60 segundos, el máximo permitido es 600 segundos (10 minutos). - * **threadTs**: marca de tiempo perteneciente al mensaje, empleada para obtener la reacción a ese mensaje. - * **selectors**: Los selectores para obtener como salida el único parámetro especificado. - -
- - - - - - - - - - - - - - - - - - - - - - -
- Campo de salida - - Tipo - - Ejemplo -
- **reacciones** - - lista - - `` -
- - - * **reactions**: Lista de elementos con todas las reacciones capturadas o una lista vacía si se produjo un tiempo de espera agotado. - -
- - - **Ejemplo 1: Slack obtiene reacciones** - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: GetReactions - - steps: - - name: getReactions - type: action - action: slack.chat.getReactions - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channelID: ${{ .steps.promptUser.outputs.channelID }} - threadTs: ${{ .steps.promptUser.outputs.threadTs }} - timeout: ${{ .workflowInputs.timeout }} - selectors: ${{ .workflowInputs.selectors }} - ``` - - **Entradas esperadas:** - - ```json - { - "inputs": [ - { - "key" : "channelID", - "value" : "C063JK1RHN1" - }, - { - "key" : "threadTs", - "value" : "1718897637.400609" - }, - { - "key" : "selectors", - "value" : "[{\"name\": \"reactions\", \"expression\": \".reactions \"}]" - } - ] - } - ``` - - **Resultado esperado:** - - ```json - [ - { - "name": "grinning", - "users": [ - "W222222" - ], - "count": 1 - }, - { - "name": "question", - "users": [ - "W333333" - ], - "count": 1 - } - ] - ``` - - O si se agota el tiempo de espera: - - ```json - [] - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx b/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx deleted file mode 100644 index 0590bd77d78..00000000000 --- a/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx +++ /dev/null @@ -1,1043 +0,0 @@ ---- -title: Acciones HTTP -tags: - - workflow automation - - workflow - - workflow automation actions - - HTTP actions -metaDescription: A list of available HTTP actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras! - - Esta característica se proporciona actualmente como parte de un programa de vista previa de conformidad con nuestras [políticas de prelanzamiento](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -Esta página proporciona una referencia completa de las acciones HTTP disponibles en el catálogo de acciones de automatización de flujo de trabajo. Estas acciones te permiten realizar requests HTTP (GET, POST, PUT, DELETE) a API y servicios externos como parte de tus definiciones de flujo de trabajo. - -## Requisitos previos - -Antes de emplear acciones HTTP en la automatización de flujos de trabajo, cerciorar de tener: - -* Objetivo extremos de URL de API. -* Cualquier credencial de autenticación requerida (clave de API, token, etc.). -* Comprensión de los formatos de solicitud/respuesta de la API. - - - Las acciones HTTP admiten sintaxis secreta para cualquier valor de encabezado, lo que le permite pasar de forma segura datos confidenciales como la clave de API. Consulte [la sección de gestión de secretos](/docs/infrastructure/host-integrations/installation/secrets-management/) para obtener más información. - - -## Acciones HTTP - - - - Realizar una llamada HTTP GET para recuperar datos de un extremo de API. - - - Esto admite sintaxis secreta para cualquier valor de encabezado. - - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidad - - Tipo - - Descripción -
- **url** - - Requerido - - Cadena - - La URL de destino para la solicitud. El esquema debe estar incluido: - - `https://example.com` -
- **parámetros de URL** - - Opcional - - Mapa - - El parámetro consulta que se agregará a la URL. Toma un objeto JSON en formato de cadena. -
- **encabezados** - - Opcional - - Mapa - - Las cabeceras que se deben agregar a la solicitud. Toma un objeto JSON en formato de cadena. -
- **selectores** - - Opcional - - Lista - - Los selectores para obtener únicamente el parámetro especificado como resultado. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de salida - - Tipo - - Descripción -
- **cuerpo de respuesta** - - Cadena - - El cuerpo de la respuesta. -
- **código de estado** - - Entero - - El código de estado HTTP de la respuesta. -
-
- - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: httpGetTest - description: 'Performs an HTTP GET request to retrieve data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - steps: - - name: query - type: action - action: http.get - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - next: end - ``` - - **Ejemplos de entradas:** - - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}" - } - ``` - - **Ejemplos de resultados:** - - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - Realiza una llamada HTTP POST para enviar datos a un extremo de API. - - - Esto admite sintaxis secreta para cualquier valor de encabezado. - - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidad - - Tipo - - Descripción -
- **url** - - Requerido - - Cadena - - La URL de destino para la solicitud. El esquema debe estar incluido: - - `https://example.com` -
- **parámetros de URL** - - Opcional - - Mapa - - El parámetro consulta que se agregará a la URL. Toma un objeto JSON en formato de cadena. -
- **encabezados** - - Opcional - - Mapa - - Las cabeceras que se deben agregar a la solicitud. Toma un objeto JSON en formato de cadena. -
- **cuerpo** - - Opcional - - Cadena - - El cuerpo de la solicitud. -
- **selectores** - - Opcional - - Lista - - Los selectores para obtener únicamente el parámetro especificado como resultado. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de salida - - Tipo - - Descripción -
- **cuerpo de respuesta** - - Cadena - - El cuerpo de la respuesta. -
- **código de estado** - - Entero - - El código de estado HTTP de la respuesta. -
-
- - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: httpPostTest - description: 'Performs an HTTP POST request to send data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - steps: - - name: query - type: action - action: http.post - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - next: end - ``` - - **Ejemplos de entradas:** - - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}" - } - ``` - - **Ejemplos de resultados:** - - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - Realiza una solicitud HTTP PUT para actualizar datos en un extremo de API. - - - Si necesita pasar datos confidenciales a una entrada, por ejemplo un encabezado `Api-Key`, puede usar valores almacenados a través de la mutación [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) de NerdGraph. - - Ejemplo: - - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidad - - Tipo - - Descripción -
- **url** - - Requerido - - Cadena - - La URL de destino para la solicitud. La URL debe incluir el esquema (por ejemplo, https:// o http://). Ejemplo: - - `https://example.com` -
- **parámetros de URL** - - Opcional - - Mapa - - El parámetro consulta que se agregará a la URL. Toma un objeto JSON en formato de cadena. -
- **encabezados** - - Opcional - - Mapa - - Las cabeceras que se deben agregar a la solicitud. Toma un objeto JSON en formato de cadena. -
- **cuerpo** - - Opcional - - Cadena - - El cuerpo de la solicitud. -
- **selectores** - - Opcional - - Lista - - Los selectores para obtener únicamente el parámetro especificado como resultado. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de salida - - Tipo - - Descripción -
- **cuerpo de respuesta** - - Cadena - - El cuerpo de la respuesta. -
- **código de estado** - - Entero - - El código de estado HTTP de la respuesta. -
-
- - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: httpPutTest - description: 'Performs an HTTP PUT request to update data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.put - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **Ejemplos de entradas:** - - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **Ejemplos de resultados:** - - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - Realiza una solicitud HTTP DELETE para eliminar datos en un extremo de API. - - - Si necesita pasar datos confidenciales a una entrada, por ejemplo un encabezado `Api-Key`, puede usar valores almacenados a través de la mutación [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) de NerdGraph. - - Ejemplo: - - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidad - - Tipo - - Descripción -
- **url** - - Requerido - - Cadena - - La URL de destino para la solicitud. La URL debe incluir el esquema (por ejemplo, https:// o http://). Ejemplo: - - `https://example.com` -
- **parámetros de URL** - - Opcional - - Mapa - - El parámetro consulta que se agregará a la URL. Toma un objeto JSON en formato de cadena. -
- **encabezados** - - Opcional - - Mapa - - Las cabeceras que se deben agregar a la solicitud. Toma un objeto JSON en formato de cadena. -
- **selectores** - - Opcional - - Lista - - Los selectores para obtener únicamente el parámetro especificado como resultado. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de salida - - Tipo - - Descripción -
- **cuerpo de respuesta** - - Cadena - - El cuerpo de la respuesta. -
- **código de estado** - - Entero - - El código de estado HTTP de la respuesta. -
-
- - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: httpDeleteTest - description: 'Performs an HTTP DELETE request to remove data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.delete - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **Ejemplos de entradas:** - - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **Ejemplos de resultados:** - - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx b/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx deleted file mode 100644 index b04ff808757..00000000000 --- a/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx +++ /dev/null @@ -1,1910 +0,0 @@ ---- -title: Acciones de New Relic -tags: - - workflow automation - - workflow - - workflow automation actions - - New relic actions -metaDescription: A list of available actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras! - - Esta característica se proporciona actualmente como parte de un programa de vista previa de conformidad con nuestras [políticas de prelanzamiento](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -Esta página proporciona una referencia completa de las acciones de New Relic disponibles en el catálogo de acciones de automatización de flujo de trabajo. Estas acciones te permiten integrar las capacidades de la plataforma New Relic en tus definiciones de flujo de trabajo, incluyendo el envío de eventos personalizados y logs, la ejecución de consultas NerdGraph, la ejecución de consultas NRQL y el envío de notificaciones. - -## Requisitos previos - -Antes de emplear las acciones New Relic en la automatización del flujo de trabajo, cerciorar de tener lo siguiente: - -* Una cuenta de New Relic con las licencias adecuadas. -* Una clave de licencia de New Relic (si se envían datos a una cuenta diferente). -* Las licencias necesarias para los servicios específicos de New Relic que planea emplear. - -Consulte [la clave de licencia](/docs/apis/intro-apis/new-relic-api-keys/#license-key) para obtener información sobre cómo crear y gestionar su clave de licencia de cuenta de New Relic. - -## acciones de ingesta de datos - - - - Envía un evento personalizado a New Relic - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidad - - Tipo - - Ejemplo -
- **Atributo** - - Opcional - - Mapa - - `"{\"page\": \"1\", \"limit\": \"10\"}"` -
- **evento** - - Requerido - - lista - - `"[{\"eventType\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"eventType\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]` -
- **clave de licencia** - - Opcional - - cadena - - `"{{ .secrets.secretName }}"` -
- **selectores** - - Opcional - - lista - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
- - - * **attributes**: Atributo común que forma parte de todos los eventos cuando se proporciona. Se realiza la fusión para cada elemento del evento cuando sea necesario; el elemento del evento anula la definición común. - * **events**: La lista de datos del evento. Tenga en cuenta que el evento requiere el uso de un campo `eventType` que representa el tipo de evento personalizado y el máximo de eventos permitidos por solicitud es 100. - * **licenseKey**: La clave de licencia de New Relic Account que especifica la cuenta objetivo donde se envían los eventos. Si no se proporciona este valor, se asume una clave de licencia predeterminada basada en la cuenta que ejecuta el flujo de trabajo. - * **selectors**: Los selectores para obtener únicamente el parámetro especificado como salida. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de salida - - Tipo - - Ejemplo -
- **éxito** - - Booleano - - `true` -
- **mensaje de error** - - cadena - - `"Error message if operation failed"` -
-
- - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: heartbeat_newrelicIngestSendEvents - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendEvents - version: 1 - inputs: - attributes: - colour: red - id: 1234 - events: - - eventType: HeartBeat - test: "OK" - attributes: - foo: bar - - eventType: HeartBeat1234 - test: "OK1234" - attributes: - foo: bar - - eventType: HeartBeat12345 - test: "OK12345" - attributes: - foo: bar - colour: yellow - - eventType: HeartBeat12345678 - test: "OK12345678" - selectors: - - name: success - expression: ".success" - ``` - - **Resultado esperado:** - - ```yaml - { - "success": true - } - ``` - - **Recuperar evento:** - - Tras ejecutar correctamente un flujo de trabajo, puede recuperar el evento asociado ejecutando una consulta en la cuenta que ejecutó el flujo de trabajo: - - ```sql - SELECT * FROM HeartBeat - ``` -
-
-
-
-
-
- - - - Enviar log a New Relic - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidad - - Tipo - - Ejemplo -
- **Atributo** - - Opcional - - mapa - - `"{\"page\": \"1\", \"limit\": \"10\"}"` -
- **logs** - - Requerido - - lista - - `"[{\"message\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"message\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]"` -
- **clave de licencia** - - Opcional - - cadena - - `"{{ .secrets.secretName }}"` -
- **selectores** - - Opcional - - lista - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
- - - * **attributes**: Atributo común incluido en todos los logs cuando se proporciona. Si un elemento de log especifica el mismo atributo, anula la definición común. - * **logs**: La lista de datos de log. Tenga en cuenta que el número máximo de logs permitidos por solicitud es 100. - * **licenseKey**: La clave de licencia de New Relic Account que especifica la cuenta objetivo a la que se envían los logs. Si no se proporciona, se asume una clave de licencia predeterminada basada en la cuenta que ejecuta el flujo de trabajo. Consulte [la clave de licencia](/docs/apis/intro-apis/new-relic-api-keys/#license-key) para obtener más información. - * **selectors**: Los selectores para obtener únicamente el parámetro especificado como salida. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de salida - - Tipo - - Ejemplo -
- **éxito** - - Booleano - - `true` -
- **mensaje de error** - - cadena - - `"Error message if operation failed"` -
-
- - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: heartbeat_newrelicIngestSendLogs - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendLogs - version: 1 - inputs: - attributes: - colour: red - id: 1234 - logs: - - message: 'Heartbeat sendLogs Action Test Message' - attributes: - foo: bar - - message: 'HeartBeat1234' - attributes: - foo: bar - - message: 'HeartBeat12345' - attributes: - foo: bar - colour: yellow - - message: 'HeartBeat12345678' - selectors: - - name: success - expression: ".success" - ``` - - **Resultado esperado:** - - ```yaml - { - "success": true - } - ``` - - **Recuperar logs:** - - Tras ejecutar correctamente un flujo de trabajo, puede recuperar el log asociado ejecutando una consulta en la cuenta que ejecutó el flujo de trabajo: - - ```sql - SELECT * FROM Log - ``` -
-
-
-
-
-
- -## Acciones de NerdGraph - - - - Ejecuta un comando Graphql contra la API NerdGraph de New Relic. El comando puede ser una consulta o una mutación. - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Aporte - - Opcionalidad - - Tipo - - Descripción - - Ejemplo -
- **Graphql** - - Requerido - - cadena - - Sintaxis GraphQL. Deberías usar GraphiQL para construir y probar tu comando. - -
- **variables** - - Requerido - - map[string]any - - Variables de pares principales de valor para usar con la declaración GraphQL. - -
- **selectores** - - Opcional - - Lista - - Los selectores para obtener como resultado el único parámetro especificado. - - ```yaml - steps: - - name: findingVar - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query GetEntity($entityGuid: EntityGuid!) { - actor { - entity(guid: $entityGuid) { - alertSeverity - } - } - } - variables: - entityGuid: ${{ .workflowInputs.entityGuid }} - - name: findingInline - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - { - actor { - entity(guid: "${{ .workflowInputs.entityGuid }}") { - alertSeverity - } - } - } - selectors: - - name: entities - expression: '.data' - ``` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Producción - - Tipo - - Descripción -
- **datos** - - map[string]any - - Contenido de la propiedad - - `data` - - de una respuesta de NerdGraph. -
- **éxito** - - Booleano - - Status of the request.s -
- **mensaje de error** - - Cadena - - Mensaje de motivo del fallo. -
-
- - - - - - - - - - - - - - -
- Ejemplo -
- ```yaml - steps: - - name: currentUserId - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query userId { - currentUser { - id - } - } - - name: sayHello - type: action - action: example.messaging.sayHello - version: 1 - inputs: - name: ${{ .steps.currentUserId.outputs.data.currentUser.id }} - ``` -
-
-
-
-
-
- -## Acciones de consulta - - - - Ejecuta una consulta NRQL entre cuentas a través de la API de NerdGraph. - - - - - Entradas - - - - Salidas - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Aporte - - Opcionalidad - - Tipo - - Descripción - - Ejemplo -
- **consulta** - - Requerido - - cadena - - La instrucción de consulta NRQL. - -
- **ID de cuenta** - - Opcional - - lista de int - - El campo - - **New Relic Account ID** - - es una lista de ID de objetivo que le permite especificar las cuentas objetivo contra las que se ejecuta la consulta. Si no se proporciona este valor como entrada, la consulta se ejecutará automáticamente en la cuenta asociada con la cuenta de ejecución del flujo de trabajo. - -
- **selectores** - - Opcional - - lista - - Los selectores para obtener como resultado el único parámetro especificado. - - ```json - steps: - - name: queryForLog - type: action - action: newrelic.nrdb.query - version: 1 - inputs: - accountIds: [12345] - query: FROM Log SELECT * WHERE message LIKE 'DEMO%' - selectors: - - name: resultsAsString - expression: '.results | tostring' - ``` -
-
- - - - - - - - - - - - - - - - - - - - -
- Producción - - Tipo - - Ejemplo -
- **results** - - : Una matriz de objetos que contiene los resultados de la consulta. - - - - ```yaml - { - results=[ - { message=[INFO] - Workflow: test has ended, messageId=39af98 }, - { message=[INFO] - Workflow: test - Step query has started, messageId=649c612 }, - ... - ] - } - ``` -
-
-
-
-
-
- -## acciones de notificación - - - - Envía un mensaje a un canal, integrado con destinos como por ejemplo Slack. - - - - - Entradas - - - - Salidas - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Aporte - - Opcionalidad - - Tipo - - Descripción - - Ejemplo -
- **tipo** - - Requerido - - cadena - - Tipo de destino de New Relic - - `slack` -
- **ID de destino** - - Requerido - - Cadena - - DestinationId asociado con el destino de New Relic. - - `123e4567-e89b-12d3-a456-426614174000` -
- **parámetro** - - Requerido - - mapa - - Campos obligatorios para enviar notificaciones al tipo de destino seleccionado. - - `{\"channel\": \"${{ YOUR_CHANNEL }}\", \"text\": \"Enter your text here\"}` -
- **selectores** - - Opcional - - lista - - Los selectores para obtener como resultado el único parámetro especificado. - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - -
- Producción - - Tipo - - Ejemplo -
- éxito - - booleano - - `true/false` -
-
-
-
-
-
- - - - Envía un mensaje a un canal de equipo de MS, integrado con destinos. - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidad - - Tipo de datos - - Descripción - - Ejemplo -
- **ID de destino** - - Requerido - - Cadena - - DestinationId asociado con el destino de New Relic. - - Consulte [la integración de New Relic para Microsoft Teams](/docs/alerts/get-notified/microsoft-teams-integrations/) para obtener los pasos sobre cómo configurar un nuevo destino y listar el ID del destino. - - Consulta [la sección Destinos](/docs/alerts/get-notified/destinations/) para obtener más información sobre los destinos. - - - - ```sh - { - actor { - account(id: 12345678) { - aiNotifications { - destinations(filters: {type: MICROSOFT_TEAMS, active: true}) { - entities { - createdAt - id - name - active - } - } - } - } - } - } - ``` - - - - `123e4567-e89b-12d3-a456-426614174000` -
- **teamName** - - Requerido - - Cadena - - Nombre del equipo asociado al ID de destino dado - - `TEST_TEAM` -
- **channelName** - - Requerido - - Cadena - - Nombre del canal donde se debe enviar el mensaje - - `StagingTesting` -
- **mensaje** - - Requerido - - Cadena - - Mensaje de texto que debe enviar - - `Hello! this message from Workflow` -
- **selectores** - - Opcional - - Lista - - Los selectores para obtener como resultado el único parámetro especificado. - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de salida - - Tipo - - Ejemplo -
- **éxito** - - Booleano - - `true/false` -
- **sessionId** - - Cadena - - `"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"` -
- **mensaje de error** - - Cadena - - `Message is a required field in the notification send"` -
-
- - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: msTeam_notification_workflow - description: This is a test workflow to test MSTeam notification send action - steps: - - name: SendMessageUsingMSTeam - type: action - action: newrelic.notification.sendMicrosoftTeams - version: 1 - inputs: - destinationId: acc24dc2-d4fc-4eba-a7b4-b3ad0170f8aa - channel: DEV_TESTING - teamName: TEST_TEAM_DEV - message: Hello from Workflow - ``` -
-
-
-
-
-
- - - - Envía un email a las direcciones de email de NewRelic con o sin archivos adjuntos. - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidad - - Tipo de datos - - Descripción - - Ejemplo -
- **ID de destino** - - Requerido - - Cadena - - DestinationId asociado con el destino de New Relic. - - Consulte [la integración de New Relic para Microsoft Teams](/docs/alerts/get-notified/microsoft-teams-integrations/) para obtener los pasos sobre cómo configurar un nuevo destino y listar el ID del destino. - - Consulta [la sección Destinos](/docs/alerts/get-notified/destinations/) para obtener más información sobre los destinos. - - - - ```yaml - { - actor { - account(id: 12345678) { - aiNotifications { - destinations(filters: {type: EMAIL, active: true}) { - entities { - createdAt - id - name - active - } - } - } - } - } - } - ``` - - - - `123e4567-e89b-12d3-a456-426614174000` -
- **sujeto** - - Requerido - - Cadena - - Asunto del email - - `workflow-notification` -
- **mensaje** - - Requerido - - Cadena - - Mensaje que debe enviar por email - - `Hello! from Workflow Automation` -
- **archivos adjuntos** - - Opcional - - Lista - - Lista de archivos adjuntos opcionales - -
- **attachment.type** - - Requerido - - Enumeración - - Uno de los siguientes: - - `QUERY` - - , - - `RAW` - -
- **attachment.query** - - Opcional - - Cadena - - Para el tipo - - `QUERY` - - , esta es una declaración de consulta NRQL. - - `SELECT * FROM LOG` -
- *attachment.accountIds* - - \* - - Opcional - - Lista - - Para - - `QUERY` - - , los - - **New Relic Account IDs** - - para ejecutar la consulta. Si no se proporciona ninguna, se emplea la cuenta asociada a la ejecución del flujo de trabajo. - - `[12345567]` -
- **attachment.format** - - Opcional - - Enumeración - - Para - - `QUERY` - - , especifique el tipo de resultados; por defecto, se especifica el tipo predeterminado. - - `JSON` - - `JSON CSV` -
- **contenido del archivo adjunto** - - Opcional - - Cadena - - Para - - `RAW` - - , este es el contenido del archivo adjunto en UTF-8. - - `A,B,C\n1,2,3` -
- **archivo adjunto** - - Opcional - - Cadena - - Nombre del archivo adjunto - - `log_count.csv` -
- **selectores** - - Opcional - - Lista - - Los selectores para obtener como resultado el único parámetro especificado. - - `[{\"name\": \"success\", \"expression\": \".success\"},{\"name\": \"attachments\", \"expression\": \".response.attachments\"},{\"name\": \"sessionId\", \"expression\": \".response.sessionId\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de salida - - Tipo - - Ejemplo -
- **éxito** - - Booleano - - `true/false` -
- **sessionId** - - Cadena - - `"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"` -
- **mensaje de error** - - Cadena - - `Channel is a required field in the notification send"` -
- **archivos adjuntos** - - Lista - - ```yaml - [{ - "blobId": "43werdtfgvhiu7y8t6r5e4398yutfgvh", - "rowCount": 100 - }] - ``` -
-
- - - - - - - - - - - - - - -
- Ejemplo de flujo de trabajo -
- ```yaml - name: email_testing_with_attachment - description: Workflow to test sending an email notification via NewRelic with log step - workflowInputs: - destinationId: - type: String - steps: - - name: sendEmailNotification - type: action - action: newrelic.notification.sendEmail - version: '1' - inputs: - destinationId: ${{ .workflowInputs.destinationId }} - subject: "workflow notification" - message: "Workflow Email Notification Testing from local" - attachments: - - type: QUERY - query: "SELECT * FROM Log" - format: JSON - filename: "log_count.json" - selectors: - - name: success - expression: '.success' - - name: sessionId - expression: '.response.sessionId' - - name: attachments - expression: '.response.attachments' - - name: logOutput - type: action - action: newrelic.ingest.sendLogs - version: '1' - inputs: - logs: - - message: "Hello from cap check Testing staging server user2 : ${{ .steps.sendEmailNotification.outputs.result.attachments }}" - licenseKey: ${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }} - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx b/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx deleted file mode 100644 index b8378fa33d5..00000000000 --- a/src/i18n/content/es/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx +++ /dev/null @@ -1,634 +0,0 @@ ---- -title: acciones de utilidad -tags: - - workflow automation - - workflow - - workflow automation actions - - utility actions -metaDescription: A list of available utility actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - -Esta página proporciona una referencia para las acciones de utilidad disponibles en el catálogo de acciones de automatización de flujo de trabajo. Estas acciones le permiten realizar operaciones comunes de transformación de datos y utilidades en las definiciones de su flujo de trabajo. - -## acciones de utilidad - - - - Esta acción se emplea para transformar timestamp Unix a fecha/hora. Posibles referencias: - - * [https://en.wikipedia.org/wiki/list\_of\_tz\_database\_time\_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) - * [https://docs.oracle.com/javase/8/docs/api/java/time/zoneid.html#SHORT\_IDS](https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT_IDS) - - Consulte [FromEpoch](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) para obtener más información. - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Aporte - - Opcionalidad - - Tipo - - Descripción -
- **timestamp** - - Requerido - - En t - - Un número entero que representa timestamp de la época. Tenga en cuenta que las épocas UNIX son el número de segundos transcurridos desde el 1 de enero de 1970, medianoche UTC (00:00). -
- **marca de tiempoUnidad** - - Opcional - - cadena - - Una cadena que representa la unidad de timestamp proporcionada. Valores aceptables: SEGUNDOS, MILISEGUNDOS (PREDETERMINADO) -
- **ID de zona horaria** - - Opcional - - cadena - - Cadena de texto que representa la zona horaria para la fecha y hora deseadas; por defecto: UTC -
- **patrón** - - Opcional - - cadena - - Cadena que representa el patrón para la fecha y hora deseadas; por defecto: ISO-8601 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo - - Opcionalidad - - Tipo de datos - - Descripción -
- **fecha** - - Requerido - - cadena - - Una representación en cadena de texto de una fecha. -
- **tiempo** - - Requerido - - cadena - - Una representación en cadena del tiempo. -
- **fecha y hora** - - Requerido - - cadena - - Una representación en cadena de texto de una fecha y hora. -
- **zona horaria** - - Requerido - - mapa - - Representación cartográfica del ID de zona horaria y su abreviatura. -
-
- - - - - - - - - - - - - - - - - - - - - - -
- Ejemplo - - Entrada del flujo de trabajo - - Salidas -
- ```yaml - name: from_epoch - - workflowInputs: - timestamp: - type: Int - timestampUnit: - type: String - timezoneId: - type: String - pattern: - type: String - - steps: - - name: epochTime - type: action - action: utils.datetime.fromEpoch - version: 1 - inputs: - timestamp: ${{ .workflowInputs.timestamp }} - timezoneId: ${{ .workflowInputs.timezoneId }} - pattern: ${{ .workflowInputs.pattern }} - timestampUnit: ${{ .workflowInputs.timestampUnit }} - ``` - - ```json - mutation { - workflowAutomationStartWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { name: "from_epoch" } - workflowInputs: [ - {key: "timestamp", value: "1738236424003"} - {key: "timestampUnit", value: "MILLISECONDS"} - {key: "pattern", value: "yyyy-mm-dd HH:SS"} - {key: "timezoneId", value: "Asia/Kolkata"} - ] - ) { - runId - } - } - ``` - - ```json - { - "date": "2025-01-30", - "time": "16:57:04.003" - "datetime": "2025-01-30 16:00", - "timezone": { - "abbreviation": "IST", - "id": "Asia/Kolkata" - } - } - ``` -
-
-
-
-
-
- - - - Esta acción se emplea para transformar varios tipos de entrada (JSON, mapa) a formato CSV. - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Aporte - - Opcionalidad - - Tipo - - Descripción -
- **datos** - - Requerido - - cualquier - - Una cadena que representa datos para transformar a CSV, normalmente una cadena JSON o un mapa. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo - - Opcionalidad - - Tipo de datos - - Descripción -
- **csv** - - Requerido - - cadena - - Una representación CSV de los datos recibidos. -
-
- - - - - - - - - - - - - - - - - - - - - -
- Ejemplo - - Entrada del flujo de trabajo - - Salidas -
- ```json - name: nrqltocsv - - steps: - - name: queryForLog - type: action - action: newrelic.nrql.query - version: 1 - inputs: - accountIds: ['${{ .workflowInputs.accountId }}'] - query: ${{ .workflowInputs.nrql }} - - - name: csv1 - type: action - action: utils.transform.toCSV - version: 1 - inputs: - data: ${{ .steps.queryForLog.outputs.results | tostring }} - ``` - - ```json - mutation { - startWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { - name: "nrqltocsv", - } - workflowInputs: [ - {key: "accountId" value: "12345678"} - {key: "nrql" value: "FROM TransactionError SELECT error.message, error.class, transactionName, request.uri, query WHERE appName like 'my-app-1%' AND error.expected IS FALSE SINCE 1 hour ago LIMIT 50"} - ] - ) - { runId } - } - ``` - -
-
-
-
-
-
- - - - Generar un UUID V4 compatible con RFC. - - - - - Entradas - - - - Salidas - - - - Ejemplo - - - - - - - - - - - - - - - - - - - - - - -
- Aporte - - Opcionalidad - - Tipo de datos - - Descripción -
- - - - -
-
- - - - - - - - - - - - - - - - - - - - - -
- Campo - - Tipo de datos - - Descripción -
- **uuid** - - cadena - -
-
- - - - - - - - - - - - - - - - - - - - -
- Ejemplo - - Entrada del flujo de trabajo - - Salidas -
- - - nombre: generarUUID
pasos: - - * nombre: generarUUID tipo: acción acción: utils.uuid.generate versión: 1 -
- ```json - { - "uuid": "c76bd606-5eaa-42bb-a847-4221fb49f83c", - } - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx b/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx deleted file mode 100644 index a8c1ca7e136..00000000000 --- a/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx +++ /dev/null @@ -1,652 +0,0 @@ ---- -title: Actions de communication -tags: - - workflow automation - - workflow - - workflow automation actions - - communication actions - - slack actions - - ms teams actions -metaDescription: A list of available actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez ! - - Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos [politiques de pré-sortie](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -Cette page fournit une référence complète des actions de communication disponibles dans le catalogue des actions d'automatisation workflow. Ces actions vous permettent d'intégrer une plateforme de communication à vos définitions workflow, notamment en envoyant des messages aux canaux Slack, en récupérant les réactions, et bien plus encore. - -## Prérequis - -Avant d'utiliser des actions de communication dans l'automatisation workflow, assurez-vous de disposer de : - -* Un espace de travail Slack avec les autorisations appropriées. -* Un bot Slack configuré comme secret dans l'automatisation workflow. -* Accès aux canaux Slack dans lesquels vous souhaitez envoyer des messages. - -Consultez la section [« Ajouter une configuration Slack »](/docs/autoflow/overview#add-the-slack-integration) pour plus d'informations sur la configuration de l'intégration Slack. - -## Actions Slack - - - - Envoie un message vers un canal Slack, avec une pièce jointe facultative. - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de saisie - - optionnalité - - Type - - Exemple -
- **jeton** - - Requis - - secrète - - `${{ :secrets:slackToken }}` -
- **canal** - - Requis - - chaîne - - `my-slack-channel` -
- **texte** - - Requis - - chaîne - - `Hello World!` -
- **filTs** - - Facultatif - - chaîne - - `.` -
- **pièce jointe** - - Facultatif - - carte - -
- **pièce jointe.nom_de_fichier** - - Requis - - chaîne - - `file.txt` -
- **pièce jointe.contenu** - - Requis - - chaîne - - `Hello\nWorld!` -
- - - * **token**: Le bot Slack jeton à utiliser. Cela devrait être transmis comme une syntaxe secrète. Consultez la section [« Ajouter une configuration Slack »](/docs/autoflow/overview#add-the-slack-integration) pour obtenir des instructions sur la configuration d'un jeton. - * **channel**: Le nom du canal, ou un identifiant de canal, sur lequel envoyer le message. Consultez [l'API Slack](https://api.slack.com/methods/chat.postMessage#arg_channel/) pour plus d'informations. - * **text**: Le message à publier sur Slack dans le `channel` spécifié. - * **threadTs**: horodatage appartenant au message parent, utilisé pour créer une réponse à un message dans un fil de discussion. - * **attachment**: Autoriser la pièce jointe d'un fichier avec un message sur le `channel` spécifié. - * **attachment.filename**: Spécifiez le nom du fichier téléchargé dans Slack. - * **attachment.content**: Le contenu du fichier à télécharger au format UTF-8. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de sortie - - Type - - Exemple -
- **filTs** - - chaîne - - `.` -
- **ID du canal** - - chaîne - - `` -
- - - * **threadTs**: horodatage du message. Peut être utilisé dans de futurs appels postMessage pour publier une réponse dans un fil de discussion. - * **channelID**: Identifiant du canal où le message est publié. - -
- - - **Exemple 1 : Publier un message sur un canal Slack** - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: SendMessage - - steps: - - name: send_slack_message - type: action - action: slack.chat.postMessage - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channel: ${{ .workflowInputs.channel }} - text: ${{ .workflowInputs.text }} - ``` - - **Entrées attendues :** - - ```json - { - "inputs": [ - { - "key" : "channel", - "value" : "my-channel" - }, - { - "key" : "text", - "value" : "This is my message *with bold text* and `code backticks`" - } - ] - } - ``` - - **Résultat attendu :** - - ```json - [ - { - "threadTs": "1718897637.400609", - "channelID": "C063JK1RHN1" - } - ] - ``` -
- - **Exemple 2 : Joindre un fichier** - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: SendFileMessage - - steps: - - name: postCsv - type: action - action: slack.chat.postMessage - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channel: my-channel - text: "Please find the attached file:" - attachment: - filename: 'file.txt' - content: "Hello\nWorld!" - ``` - - **Résultat attendu :** - - ```json - [ - { - "threadTs": "1718897637.400609", - "channelID": "C063JK1RHN1" - } - ] - ``` -
-
-
-
-
-
- - - - Obtenir une réaction à un message provenant d'un canal Slack. - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de saisie - - optionnalité - - Type - - Exemple -
- **jeton** - - Requis - - secrète - - `${{ :secrets:slackToken }}` -
- **ID du canal** - - Requis - - chaîne - - `C063JK1RHN1` -
- **temps mort** - - Facultatif - - int - - 60 -
- **filTs** - - Requis - - chaîne - - `.` -
- **sélecteurs** - - Facultatif - - liste - - `[{\"name\": \"reactions\", \"expression\": \".reactions \"}]` -
- - - * **token**: Le bot Slack jeton à utiliser. Cela devrait être transmis comme une syntaxe secrète. Consultez la section [« Ajouter une configuration Slack »](/docs/autoflow/overview#add-the-slack-integration) pour obtenir des instructions sur la configuration d'un jeton. - * **channelID**: L'identifiant du canal permettant d'obtenir les réactions aux messages. - * **timeout**: Durée en secondes pendant laquelle il faut attendre une réaction. La valeur par défaut est de 60 secondes, la valeur maximale autorisée est de 600 secondes (10 minutes). - * **threadTs**: horodatage associé au message, utilisé pour obtenir la réaction à ce message. - * **selectors**: Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. - -
- - - - - - - - - - - - - - - - - - - - - - -
- Champ de sortie - - Type - - Exemple -
- **réactions** - - liste - - `` -
- - - * **reactions**: Liste des éléments contenant toutes les réactions capturées ou une liste vide en cas de dépassement de délai. - -
- - - **Exemple 1 : Slack obtient des réactions** - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: GetReactions - - steps: - - name: getReactions - type: action - action: slack.chat.getReactions - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channelID: ${{ .steps.promptUser.outputs.channelID }} - threadTs: ${{ .steps.promptUser.outputs.threadTs }} - timeout: ${{ .workflowInputs.timeout }} - selectors: ${{ .workflowInputs.selectors }} - ``` - - **Entrées attendues :** - - ```json - { - "inputs": [ - { - "key" : "channelID", - "value" : "C063JK1RHN1" - }, - { - "key" : "threadTs", - "value" : "1718897637.400609" - }, - { - "key" : "selectors", - "value" : "[{\"name\": \"reactions\", \"expression\": \".reactions \"}]" - } - ] - } - ``` - - **Résultat attendu :** - - ```json - [ - { - "name": "grinning", - "users": [ - "W222222" - ], - "count": 1 - }, - { - "name": "question", - "users": [ - "W333333" - ], - "count": 1 - } - ] - ``` - - Ou si le délai est dépassé : - - ```json - [] - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx b/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx deleted file mode 100644 index 5539127c7c3..00000000000 --- a/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx +++ /dev/null @@ -1,1043 +0,0 @@ ---- -title: actions HTTP -tags: - - workflow automation - - workflow - - workflow automation actions - - HTTP actions -metaDescription: A list of available HTTP actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez ! - - Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos [politiques de pré-sortie](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -Cette page fournit une référence complète des actions HTTP disponibles dans le catalogue des actions d'automatisation workflow. Ces actions vous permettent d'effectuer requests HTTP (GET, POST, PUT, DELETE) vers des API et des services externes dans le cadre de vos définitions workflow. - -## Prérequis - -Avant d'utiliser les actions HTTP dans l'automatisation workflow, assurez-vous de disposer de : - -* cible points de terminaison d'API URLs. -* Toutes les informations d'identification d'authentification requises (clé API, jeton, etc.). -* Compréhension des formats de requête/réponse de l'API. - - - Les actions HTTP prennent en charge la syntaxe secrète pour toute valeur d'en-tête, vous permettant de transmettre en toute sécurité des données sensibles telles que l'API clé. Consultez [la section Gestion des secrets](/docs/infrastructure/host-integrations/installation/secrets-management/) pour plus d'informations. - - -## actions HTTP - - - - Effectuez un appel HTTP GET pour récupérer des données à partir d'un point de terminaison d'API. - - - Cela prend en charge la syntaxe secrète pour toute valeur d'en-tête. - - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de saisie - - optionnalité - - Type - - Description -
- **url** - - Requis - - Chaîne - - L'URL cible de la requête. Le dispositif doit être inclus : - - `https://example.com` -
- **urlParams** - - Facultatif - - Carte - - Les paramètres de requête à ajouter à l'URL. Prend un objet JSON converti en chaîne de caractères. -
- **en-têtes** - - Facultatif - - Carte - - Les en-têtes à ajouter à la requête. Prend un objet JSON converti en chaîne de caractères. -
- **sélecteurs** - - Facultatif - - List - - Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de sortie - - Type - - Description -
- **corps de réponse** - - Chaîne - - Le corps de la réponse. -
- **code d'état** - - Entier - - Le code d'état HTTP de la réponse. -
-
- - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: httpGetTest - description: 'Performs an HTTP GET request to retrieve data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - steps: - - name: query - type: action - action: http.get - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - next: end - ``` - - **Exemples d'entrées :** - - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}" - } - ``` - - **Exemples de résultats :** - - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - Effectue un appel HTTP POST pour envoyer des données à un point de terminaison d'API. - - - Cela prend en charge la syntaxe secrète pour toute valeur d'en-tête. - - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de saisie - - optionnalité - - Type - - Description -
- **url** - - Requis - - Chaîne - - L'URL cible de la requête. Le dispositif doit être inclus : - - `https://example.com` -
- **urlParams** - - Facultatif - - Carte - - Les paramètres de requête à ajouter à l'URL. Prend un objet JSON converti en chaîne de caractères. -
- **en-têtes** - - Facultatif - - Carte - - Les en-têtes à ajouter à la requête. Prend un objet JSON converti en chaîne de caractères. -
- **corps** - - Facultatif - - Chaîne - - Le corps de la requête. -
- **sélecteurs** - - Facultatif - - List - - Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de sortie - - Type - - Description -
- **corps de réponse** - - Chaîne - - Le corps de la réponse. -
- **code d'état** - - Entier - - Le code d'état HTTP de la réponse. -
-
- - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: httpPostTest - description: 'Performs an HTTP POST request to send data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - steps: - - name: query - type: action - action: http.post - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - next: end - ``` - - **Exemples d'entrées :** - - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}" - } - ``` - - **Exemples de résultats :** - - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - Effectue une requête HTTP PUT pour mettre à jour les données à un point de terminaison d'API. - - - Si vous devez transmettre des données sensibles à une entrée, par exemple un en-tête `Api-Key`, vous pouvez utiliser les valeurs stockées via la mutation NerdGraph [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql). - - Exemple: - - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de saisie - - optionnalité - - Type - - Description -
- **url** - - Requis - - Chaîne - - L'URL cible de la requête. L'URL doit inclure le schéma (par exemple, https:// ou http://). Exemple: - - `https://example.com` -
- **urlParams** - - Facultatif - - Carte - - Les paramètres de requête à ajouter à l'URL. Prend un objet JSON converti en chaîne de caractères. -
- **en-têtes** - - Facultatif - - Carte - - Les en-têtes à ajouter à la requête. Prend un objet JSON converti en chaîne de caractères. -
- **corps** - - Facultatif - - Chaîne - - Le corps de la requête. -
- **sélecteurs** - - Facultatif - - List - - Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de sortie - - Type - - Description -
- **corps de réponse** - - Chaîne - - Le corps de la réponse. -
- **code d'état** - - Entier - - Le code d'état HTTP de la réponse. -
-
- - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: httpPutTest - description: 'Performs an HTTP PUT request to update data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.put - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **Exemples d'entrées :** - - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **Exemples de résultats :** - - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - Effectue une requête HTTP DELETE pour supprimer des données à un point de terminaison d'API. - - - Si vous devez transmettre des données sensibles à une entrée, par exemple un en-tête `Api-Key`, vous pouvez utiliser les valeurs stockées via la mutation NerdGraph [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql). - - Exemple: - - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de saisie - - optionnalité - - Type - - Description -
- **url** - - Requis - - Chaîne - - L'URL cible de la requête. L'URL doit inclure le schéma (par exemple, https:// ou http://). Exemple: - - `https://example.com` -
- **urlParams** - - Facultatif - - Carte - - Les paramètres de requête à ajouter à l'URL. Prend un objet JSON converti en chaîne de caractères. -
- **en-têtes** - - Facultatif - - Carte - - Les en-têtes à ajouter à la requête. Prend un objet JSON converti en chaîne de caractères. -
- **sélecteurs** - - Facultatif - - List - - Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de sortie - - Type - - Description -
- **corps de réponse** - - Chaîne - - Le corps de la réponse. -
- **code d'état** - - Entier - - Le code d'état HTTP de la réponse. -
-
- - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: httpDeleteTest - description: 'Performs an HTTP DELETE request to remove data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.delete - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **Exemples d'entrées :** - - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **Exemples de résultats :** - - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx b/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx deleted file mode 100644 index 3587d22dd0e..00000000000 --- a/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx +++ /dev/null @@ -1,1910 +0,0 @@ ---- -title: Actions de New Relic -tags: - - workflow automation - - workflow - - workflow automation actions - - New relic actions -metaDescription: A list of available actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez ! - - Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos [politiques de pré-sortie](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -Cette page fournit une référence complète des actions New Relic disponibles dans le catalogue des actions d'automatisation workflow. Ces actions vous permettent d'intégrer les fonctionnalités de la plateforme New Relic dans vos définitions workflow, notamment l'envoi d'événements personnalisés et de logs, l'exécution de requêtes NerdGraph, l'exécution de requêtes NRQL et l'envoi de notifications. - -## Prérequis - -Avant d'utiliser les actions New Relic dans l'automatisation workflow, assurez-vous de disposer de : - -* Un compte New Relic disposant des autorisations appropriées. -* Une clé de licence New Relic (si vous envoyez des données vers un compte différent). -* Les autorisations nécessaires pour les services New Relic spécifiques que vous prévoyez d'utiliser. - -Consultez [la clé de licence](/docs/apis/intro-apis/new-relic-api-keys/#license-key) pour obtenir des informations sur la façon de créer et de gérer votre compte New Relic. - -## actions d'ingestion de données - - - - Envoie un événement personnalisé à New Relic - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de saisie - - optionnalité - - Type - - Exemple -
- **attributes** - - Facultatif - - Carte - - `"{\"page\": \"1\", \"limit\": \"10\"}"` -
- **événement** - - Requis - - liste - - `"[{\"eventType\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"eventType\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]` -
- **clé de licence** - - Facultatif - - chaîne - - `"{{ .secrets.secretName }}"` -
- **sélecteurs** - - Facultatif - - liste - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
- - - * **attributes**: Attribut commun qui fait partie de tous les événements lorsqu'il est fourni. Fusion pour chaque élément d'événement lorsque cela est nécessaire, l'élément d'événement remplace la définition commune. - * **events**: La liste des données d'événement. Notez que l'événement nécessite l'utilisation d'un champ `eventType` qui représente le type d'événement personnalisé et que le nombre maximal d'événements autorisés par requête est de 100. - * **licenseKey**: La clé de licence du compte New Relic qui spécifie le compte cible où les événements sont envoyés. Si cette valeur n’est pas fournie, une clé de licence par défaut est supposée en fonction du compte exécutant le workflow. - * **selectors**: Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de sortie - - Type - - Exemple -
- **succès** - - Booléen - - `true` -
- **message d'erreur** - - chaîne - - `"Error message if operation failed"` -
-
- - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: heartbeat_newrelicIngestSendEvents - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendEvents - version: 1 - inputs: - attributes: - colour: red - id: 1234 - events: - - eventType: HeartBeat - test: "OK" - attributes: - foo: bar - - eventType: HeartBeat1234 - test: "OK1234" - attributes: - foo: bar - - eventType: HeartBeat12345 - test: "OK12345" - attributes: - foo: bar - colour: yellow - - eventType: HeartBeat12345678 - test: "OK12345678" - selectors: - - name: success - expression: ".success" - ``` - - **Résultat attendu :** - - ```yaml - { - "success": true - } - ``` - - **Récupérer l'événement :** - - Une fois un workflow exécuté avec succès, vous pouvez récupérer l'événement associé en exécutant une requête sous le compte qui a exécuté le workflow: - - ```sql - SELECT * FROM HeartBeat - ``` -
-
-
-
-
-
- - - - Envoyer les logs à New Relic - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de saisie - - optionnalité - - Type - - Exemple -
- **attributes** - - Facultatif - - carte - - `"{\"page\": \"1\", \"limit\": \"10\"}"` -
- **logs** - - Requis - - liste - - `"[{\"message\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"message\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]"` -
- **clé de licence** - - Facultatif - - chaîne - - `"{{ .secrets.secretName }}"` -
- **sélecteurs** - - Facultatif - - liste - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
- - - * **attributes**: Attribut commun inclus dans tous les logs lorsqu'il est fourni. Si un élément log spécifie le même attribut, il remplace la définition commune. - * **logs**: La liste des données log. Notez que le nombre maximal des logs d'entrées autorisé par requête est de 100. - * **licenseKey**: La clé de licence du compte New Relic qui spécifie le compte cible où les logs sont envoyés. Si aucune clé de licence n’est fournie, une clé de licence par défaut est supposée en fonction du compte exécutant le workflow. Consultez [la clé de licence](/docs/apis/intro-apis/new-relic-api-keys/#license-key) pour plus d'informations. - * **selectors**: Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de sortie - - Type - - Exemple -
- **succès** - - Booléen - - `true` -
- **message d'erreur** - - chaîne - - `"Error message if operation failed"` -
-
- - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: heartbeat_newrelicIngestSendLogs - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendLogs - version: 1 - inputs: - attributes: - colour: red - id: 1234 - logs: - - message: 'Heartbeat sendLogs Action Test Message' - attributes: - foo: bar - - message: 'HeartBeat1234' - attributes: - foo: bar - - message: 'HeartBeat12345' - attributes: - foo: bar - colour: yellow - - message: 'HeartBeat12345678' - selectors: - - name: success - expression: ".success" - ``` - - **Résultat attendu :** - - ```yaml - { - "success": true - } - ``` - - **Récupérer les logs :** - - Une fois un workflow exécuté avec succès, vous pouvez récupérer le log associé en exécutant une requête sous le compte qui a exécuté le workflow: - - ```sql - SELECT * FROM Log - ``` -
-
-
-
-
-
- -## Actions NerdGraph - - - - Exécute une commande Graphql sur l'API New Relic NerdGraph. La commande peut être soit une requête, soit une mutation. - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Saisir - - optionnalité - - Type - - Description - - Exemple -
- **graphql** - - Requis - - chaîne - - Une syntaxe GraphQL. Vous devriez utiliser GraphiQL pour construire et tester votre commande - -
- **variables** - - Requis - - map[string]any - - Toutes les variables de type paire valeur-clé à utiliser avec l'instruction GraphQL. - -
- **sélecteurs** - - Facultatif - - List - - Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. - - ```yaml - steps: - - name: findingVar - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query GetEntity($entityGuid: EntityGuid!) { - actor { - entity(guid: $entityGuid) { - alertSeverity - } - } - } - variables: - entityGuid: ${{ .workflowInputs.entityGuid }} - - name: findingInline - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - { - actor { - entity(guid: "${{ .workflowInputs.entityGuid }}") { - alertSeverity - } - } - } - selectors: - - name: entities - expression: '.data' - ``` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Sortir - - Type - - Description -
- **données** - - map[string]any - - Contenu de la propriété - - `data` - - d'une réponse NerdGraph. -
- **succès** - - Booléen - - État de la demande. -
- **message d'erreur** - - Chaîne - - Motif de l'échec : message. -
-
- - - - - - - - - - - - - - -
- Exemple -
- ```yaml - steps: - - name: currentUserId - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query userId { - currentUser { - id - } - } - - name: sayHello - type: action - action: example.messaging.sayHello - version: 1 - inputs: - name: ${{ .steps.currentUserId.outputs.data.currentUser.id }} - ``` -
-
-
-
-
-
- -## Actions de requête - - - - Exécute une requête NRQL inter-comptes via l'API NerdGraph. - - - - - Entrées - - - - Sorties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Saisir - - optionnalité - - Type - - Description - - Exemple -
- **requête** - - Requis - - chaîne - - L'instruction de requête NRQL. - -
- **identifiants de compte** - - Facultatif - - liste d'entiers - - Le champ - - **New Relic Account ID** - - est une liste d’identifiants cibles qui vous permet de spécifier les comptes cibles sur lesquels la requête est exécutée. Si cette valeur n'est pas fournie en entrée, la requête sera automatiquement exécutée sur le compte associé au compte d'exécution du workflow. - -
- **sélecteurs** - - Facultatif - - liste - - Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. - - ```json - steps: - - name: queryForLog - type: action - action: newrelic.nrdb.query - version: 1 - inputs: - accountIds: [12345] - query: FROM Log SELECT * WHERE message LIKE 'DEMO%' - selectors: - - name: resultsAsString - expression: '.results | tostring' - ``` -
-
- - - - - - - - - - - - - - - - - - - - -
- Sortir - - Type - - Exemple -
- **results** - - : Un éventail d'objets contenant les résultats de la requête. - - - - ```yaml - { - results=[ - { message=[INFO] - Workflow: test has ended, messageId=39af98 }, - { message=[INFO] - Workflow: test - Step query has started, messageId=649c612 }, - ... - ] - } - ``` -
-
-
-
-
-
- -## Actions de notification - - - - Envoie un message à un canal, intégré à des destinations comme Slack par exemple. - - - - - Entrées - - - - Sorties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Saisir - - optionnalité - - Type - - Description - - Exemple -
- **type** - - Requis - - chaîne - - Type de destination New Relic - - `slack` -
- **destinationId** - - Requis - - Chaîne - - DestinationId associé à la destination New Relic. - - `123e4567-e89b-12d3-a456-426614174000` -
- **paramètres** - - Requis - - carte - - Champs requis pour envoyer une notification au type de destination choisi. - - `{\"channel\": \"${{ YOUR_CHANNEL }}\", \"text\": \"Enter your text here\"}` -
- **sélecteurs** - - Facultatif - - liste - - Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - -
- Sortir - - Type - - Exemple -
- succès - - booléen - - `true/false` -
-
-
-
-
-
- - - - Envoie un message à un canal d'équipe Microsoft, intégré aux destinations. - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de saisie - - optionnalité - - Type de données - - Description - - Exemple -
- **destinationId** - - Requis - - Chaîne - - DestinationId associé à la destination New Relic. - - Consultez la section relative [à l'intégration de New Relic pour Microsoft Teams](/docs/alerts/get-notified/microsoft-teams-integrations/) pour connaître les étapes à suivre pour configurer une nouvelle destination et afficher l'ID de destination. - - Consultez [la section Destinations](/docs/alerts/get-notified/destinations/) pour en savoir plus sur les destinations. - - - - ```sh - { - actor { - account(id: 12345678) { - aiNotifications { - destinations(filters: {type: MICROSOFT_TEAMS, active: true}) { - entities { - createdAt - id - name - active - } - } - } - } - } - } - ``` - - - - `123e4567-e89b-12d3-a456-426614174000` -
- **teamName** - - Requis - - Chaîne - - Nom de l'équipe associée à l'identifiant de destination donné - - `TEST_TEAM` -
- **channelName** - - Requis - - Chaîne - - Nom du canal où le message doit être envoyé - - `StagingTesting` -
- **message** - - Requis - - Chaîne - - Message texte à envoyer - - `Hello! this message from Workflow` -
- **sélecteurs** - - Facultatif - - List - - Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de sortie - - Type - - Exemple -
- **succès** - - Booléen - - `true/false` -
- **sessionId** - - Chaîne - - `"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"` -
- **message d'erreur** - - Chaîne - - `Message is a required field in the notification send"` -
-
- - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: msTeam_notification_workflow - description: This is a test workflow to test MSTeam notification send action - steps: - - name: SendMessageUsingMSTeam - type: action - action: newrelic.notification.sendMicrosoftTeams - version: 1 - inputs: - destinationId: acc24dc2-d4fc-4eba-a7b4-b3ad0170f8aa - channel: DEV_TESTING - teamName: TEST_TEAM_DEV - message: Hello from Workflow - ``` -
-
-
-
-
-
- - - - Envoie un courriel aux destinations de messagerie NewRelic avec ou sans pièces jointes - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de saisie - - optionnalité - - Type de données - - Description - - Exemple -
- **destinationId** - - Requis - - Chaîne - - DestinationId associé à la destination New Relic. - - Consultez la section relative [à l'intégration de New Relic pour Microsoft Teams](/docs/alerts/get-notified/microsoft-teams-integrations/) pour connaître les étapes à suivre pour configurer une nouvelle destination et afficher l'ID de destination. - - Consultez [la section Destinations](/docs/alerts/get-notified/destinations/) pour en savoir plus sur les destinations. - - - - ```yaml - { - actor { - account(id: 12345678) { - aiNotifications { - destinations(filters: {type: EMAIL, active: true}) { - entities { - createdAt - id - name - active - } - } - } - } - } - } - ``` - - - - `123e4567-e89b-12d3-a456-426614174000` -
- **sujet** - - Requis - - Chaîne - - Objet du courriel - - `workflow-notification` -
- **message** - - Requis - - Chaîne - - Messages à envoyer par courriel - - `Hello! from Workflow Automation` -
- **pièces jointes** - - Facultatif - - List - - Liste des accessoires optionnels - -
- **attachment.type** - - Requis - - Énumération - - L'un des suivants : - - `QUERY` - - , - - `RAW` - -
- **attachment.query** - - Facultatif - - Chaîne - - Pour le type - - `QUERY` - - , il s'agit d'une instruction de requête NRQL. - - `SELECT * FROM LOG` -
- *attachment.accountIds* - - \* - - Facultatif - - List - - Pour - - `QUERY` - - , les - - **New Relic Account IDs** - - pour exécuter la requête. Si aucun compte n'est fourni, c'est celui associé à l'exécution du workflow qui est utilisé. - - `[12345567]` -
- **attachment.format** - - Facultatif - - Énumération - - Pour - - `QUERY` - - , spécifiez le type des résultats, par défaut - - `JSON` - - `JSON CSV` -
- **pièce jointe.contenu** - - Facultatif - - Chaîne - - Pour - - `RAW` - - , voici le contenu de la pièce jointe en UTF-8. - - `A,B,C\n1,2,3` -
- **pièce jointe.nom_de_fichier** - - Facultatif - - Chaîne - - Nom du fichier joint - - `log_count.csv` -
- **sélecteurs** - - Facultatif - - List - - Les sélecteurs permettant d'obtenir uniquement les paramètres spécifiés en sortie. - - `[{\"name\": \"success\", \"expression\": \".success\"},{\"name\": \"attachments\", \"expression\": \".response.attachments\"},{\"name\": \"sessionId\", \"expression\": \".response.sessionId\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ de sortie - - Type - - Exemple -
- **succès** - - Booléen - - `true/false` -
- **sessionId** - - Chaîne - - `"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"` -
- **message d'erreur** - - Chaîne - - `Channel is a required field in the notification send"` -
- **pièces jointes** - - List - - ```yaml - [{ - "blobId": "43werdtfgvhiu7y8t6r5e4398yutfgvh", - "rowCount": 100 - }] - ``` -
-
- - - - - - - - - - - - - - -
- Exemple de workflow -
- ```yaml - name: email_testing_with_attachment - description: Workflow to test sending an email notification via NewRelic with log step - workflowInputs: - destinationId: - type: String - steps: - - name: sendEmailNotification - type: action - action: newrelic.notification.sendEmail - version: '1' - inputs: - destinationId: ${{ .workflowInputs.destinationId }} - subject: "workflow notification" - message: "Workflow Email Notification Testing from local" - attachments: - - type: QUERY - query: "SELECT * FROM Log" - format: JSON - filename: "log_count.json" - selectors: - - name: success - expression: '.success' - - name: sessionId - expression: '.response.sessionId' - - name: attachments - expression: '.response.attachments' - - name: logOutput - type: action - action: newrelic.ingest.sendLogs - version: '1' - inputs: - logs: - - message: "Hello from cap check Testing staging server user2 : ${{ .steps.sendEmailNotification.outputs.result.attachments }}" - licenseKey: ${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }} - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx b/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx deleted file mode 100644 index 0bc41561c11..00000000000 --- a/src/i18n/content/fr/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx +++ /dev/null @@ -1,634 +0,0 @@ ---- -title: Actions utilitaires -tags: - - workflow automation - - workflow - - workflow automation actions - - utility actions -metaDescription: A list of available utility actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - -Cette page fournit une référence pour les actions utilitaires disponibles dans le catalogue des actions d'automatisation workflow. Ces actions vous permettent d'effectuer des opérations courantes de transformation et d'utilisation des données dans vos définitions workflow. - -## Actions utilitaires - - - - Cette action permet de convertir un horodatage Unix en date/heure. Références possibles : - - * [https://en.wikipedia.org/wiki/List\_of\_tz\_database\_time\_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) - * [https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT\_IDS](https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT_IDS) - - Consultez [fromEpoch](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) pour plus d'informations. - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Saisir - - optionnalité - - Type - - Description -
- **horodatage** - - Requis - - int - - Un entier représentant l'horodatage de l'époque. Notez que les époques UNIX correspondent au nombre de secondes écoulées depuis le 1er janvier 1970 à minuit UTC (00:00). -
- **horodatageUnité** - - Facultatif - - chaîne - - Une chaîne de caractères représentant l'unité de l'horodatage fourni. Valeurs acceptables : SECONDES, MILLISECONDES (PAR DÉFAUT) -
- **fuseau horaireId** - - Facultatif - - chaîne - - Chaîne de caractères représentant le fuseau horaire de la date et de l'heure souhaitées (par défaut : UTC). -
- **modèle** - - Facultatif - - chaîne - - Chaîne de caractères représentant le format de date et d'heure souhaité, par défaut : ISO-8601 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ - - optionnalité - - Type de données - - Description -
- **date** - - Requis - - chaîne - - Représentation sous forme de chaîne de caractères de la date. -
- **temps** - - Requis - - chaîne - - Une représentation sous forme de chaîne de caractères du temps. -
- **date et heure** - - Requis - - chaîne - - Représentation sous forme de chaîne de caractères d'une date et heure. -
- **fuseau horaire** - - Requis - - carte - - Représentation cartographique de l'identifiant et de l'abréviation du fuseau horaire. -
-
- - - - - - - - - - - - - - - - - - - - - - -
- Exemple - - Workflow Entrée - - Sorties -
- ```yaml - name: from_epoch - - workflowInputs: - timestamp: - type: Int - timestampUnit: - type: String - timezoneId: - type: String - pattern: - type: String - - steps: - - name: epochTime - type: action - action: utils.datetime.fromEpoch - version: 1 - inputs: - timestamp: ${{ .workflowInputs.timestamp }} - timezoneId: ${{ .workflowInputs.timezoneId }} - pattern: ${{ .workflowInputs.pattern }} - timestampUnit: ${{ .workflowInputs.timestampUnit }} - ``` - - ```json - mutation { - workflowAutomationStartWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { name: "from_epoch" } - workflowInputs: [ - {key: "timestamp", value: "1738236424003"} - {key: "timestampUnit", value: "MILLISECONDS"} - {key: "pattern", value: "yyyy-mm-dd HH:SS"} - {key: "timezoneId", value: "Asia/Kolkata"} - ] - ) { - runId - } - } - ``` - - ```json - { - "date": "2025-01-30", - "time": "16:57:04.003" - "datetime": "2025-01-30 16:00", - "timezone": { - "abbreviation": "IST", - "id": "Asia/Kolkata" - } - } - ``` -
-
-
-
-
-
- - - - Cette action permet de transformer différents types d'entrées (JSON, map) au format CSV. - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Saisir - - optionnalité - - Type - - Description -
- **données** - - Requis - - n'importe lequel - - Une chaîne de caractères représentant des données à transformer en CSV, généralement une chaîne JSON ou une carte. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- Champ - - optionnalité - - Type de données - - Description -
- **csv** - - Requis - - chaîne - - Une représentation CSV des données reçues. -
-
- - - - - - - - - - - - - - - - - - - - - -
- Exemple - - Workflow Entrée - - Sorties -
- ```json - name: nrqltocsv - - steps: - - name: queryForLog - type: action - action: newrelic.nrql.query - version: 1 - inputs: - accountIds: ['${{ .workflowInputs.accountId }}'] - query: ${{ .workflowInputs.nrql }} - - - name: csv1 - type: action - action: utils.transform.toCSV - version: 1 - inputs: - data: ${{ .steps.queryForLog.outputs.results | tostring }} - ``` - - ```json - mutation { - startWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { - name: "nrqltocsv", - } - workflowInputs: [ - {key: "accountId" value: "12345678"} - {key: "nrql" value: "FROM TransactionError SELECT error.message, error.class, transactionName, request.uri, query WHERE appName like 'my-app-1%' AND error.expected IS FALSE SINCE 1 hour ago LIMIT 50"} - ] - ) - { runId } - } - ``` - -
-
-
-
-
-
- - - - Générer un UUID V4 conforme à la RFC. - - - - - Entrées - - - - Sorties - - - - Exemple - - - - - - - - - - - - - - - - - - - - - - -
- Saisir - - optionnalité - - Type de données - - Description -
- - - - -
-
- - - - - - - - - - - - - - - - - - - - - -
- Champ - - Type de données - - Description -
- **uuid** - - chaîne - -
-
- - - - - - - - - - - - - - - - - - - - -
- Exemple - - Workflow Entrée - - Sorties -
- - - nom : générerUUID
mesures: - - * nom : generateUUID type : action action : utils.uuid.generate version : 1 -
- ```json - { - "uuid": "c76bd606-5eaa-42bb-a847-4221fb49f83c", - } - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx b/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx deleted file mode 100644 index e8ceca1c51c..00000000000 --- a/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx +++ /dev/null @@ -1,652 +0,0 @@ ---- -title: コミュニケーションアクション -tags: - - workflow automation - - workflow - - workflow automation actions - - communication actions - - slack actions - - ms teams actions -metaDescription: A list of available actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - この機能はまだ開発中ですが、ぜひお試しください。 - - この機能は現在、弊社の[プレリリース ポリシー](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy)に従ってプレビュー プログラムの一部として提供されています。 - - -このページでは、ワークフロー自動化アクション カタログで使用できる通信アクションの包括的なリファレンスを提供します。これらのアクションを使用すると、Slack チャネルへのメッセージの送信、反応の取得など、コミュニケーション プラットフォームをワークフロー定義に統合できます。 - -## 前提条件 - -ワークフロー自動化でコミュニケーションアクションを使用する前に、次の点を確認してください。 - -* 適切な権限を持つ Slack ワークスペース。 -* ワークフロー自動化でシークレットとして設定された Slack ボット トークン。 -* メッセージを送信する Slack チャネルへのアクセス。 - -Slack 統合の設定方法については、 [「Slack 設定の追加」を](/docs/autoflow/overview#add-the-slack-integration)参照してください。 - -## Slackアクション - - - - オプションのファイル添付を使用して、メッセージを Slack チャネルに送信します。 - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力フィールド - - オプション性 - - タイプ - - 例 -
- **トークン** - - 必須 - - シークレット - - `${{ :secrets:slackToken }}` -
- **チャネル** - - 必須 - - ストリング - - `my-slack-channel` -
- **テキスト** - - 必須 - - ストリング - - `Hello World!` -
- **スレッドT** - - オプション - - ストリング - - `.` -
- **添付ファイル** - - オプション - - マップ - -
- **添付ファイル.ファイル名** - - 必須 - - ストリング - - `file.txt` -
- **添付ファイルの内容** - - 必須 - - ストリング - - `Hello\nWorld!` -
- - - * **token**: Slack ボットを使用します。 これは秘密の構文として渡す必要があります。トークンの設定手順については、 [「Slack 構成の追加」](/docs/autoflow/overview#add-the-slack-integration)を参照してください。 - * **channel** : メッセージを送信するチャネルの名前、またはチャネル ID。詳細については、 [Slack API を](https://api.slack.com/methods/chat.postMessage#arg_channel/)参照してください。 - * **text** : 指定された`channel`で Slack に投稿されるメッセージ。 - * **threadTs** : 親メッセージに属するタイムスタンプ。スレッド内でメッセージの返信を作成するために使用されます。 - * **attachment** : 指定された`channel`にメッセージ付きのファイルを添付できるようにします。 - * **attachment.filename** : Slack にアップロードするファイルのファイル名を指定します。 - * **attachment.content**:UTF8 としてアップロードするファイルの内容。 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 出力フィールド - - タイプ - - 例 -
- **スレッドT** - - ストリング - - `.` -
- **チャンネルID** - - ストリング - - `` -
- - - * **threadTs** : メッセージのタイムスタンプ。今後の postMessage 呼び出しでスレッドに返信を投稿するために使用される場合があります。 - * **channelID** : メッセージが投稿されるチャネルの ID。 - -
- - - **例1: Slackチャンネルにメッセージを投稿する** - - - - - - - - - - - - - -
- ワークフローの例 -
- ```yaml - name: SendMessage - - steps: - - name: send_slack_message - type: action - action: slack.chat.postMessage - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channel: ${{ .workflowInputs.channel }} - text: ${{ .workflowInputs.text }} - ``` - - **予想される入力:** - - ```json - { - "inputs": [ - { - "key" : "channel", - "value" : "my-channel" - }, - { - "key" : "text", - "value" : "This is my message *with bold text* and `code backticks`" - } - ] - } - ``` - - **期待される出力:** - - ```json - [ - { - "threadTs": "1718897637.400609", - "channelID": "C063JK1RHN1" - } - ] - ``` -
- - **例2: ファイルを添付する** - - - - - - - - - - - - - -
- ワークフローの例 -
- ```yaml - name: SendFileMessage - - steps: - - name: postCsv - type: action - action: slack.chat.postMessage - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channel: my-channel - text: "Please find the attached file:" - attachment: - filename: 'file.txt' - content: "Hello\nWorld!" - ``` - - **期待される出力:** - - ```json - [ - { - "threadTs": "1718897637.400609", - "channelID": "C063JK1RHN1" - } - ] - ``` -
-
-
-
-
-
- - - - Slack チャネルからメッセージに対する反応を取得します。 - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力フィールド - - オプション性 - - タイプ - - 例 -
- **トークン** - - 必須 - - シークレット - - `${{ :secrets:slackToken }}` -
- **チャンネルID** - - 必須 - - ストリング - - `C063JK1RHN1` -
- **タイムアウト** - - オプション - - int - - 60 -
- **スレッドT** - - 必須 - - ストリング - - `.` -
- **セレクター** - - オプション - - リスト - - `[{\"name\": \"reactions\", \"expression\": \".reactions \"}]` -
- - - * **token**: Slack ボットを使用します。 これは秘密の構文として渡す必要があります。トークンの設定手順については、 [「Slack 構成の追加」](/docs/autoflow/overview#add-the-slack-integration)を参照してください。 - * **channelID** : メッセージの反応を取得するためのチャネルID。 - * **timeout** : 反応を待つ時間(秒数)。デフォルトは 60 秒、最大許容時間は 600 秒 (10 分) です。 - * **threadTs** : メッセージに属するタイムスタンプ。そのメッセージの反応を取得するために使用されます。 - * **selectors** : 指定された唯一のものを出力として取得するセレクター。 - -
- - - - - - - - - - - - - - - - - - - - - - -
- 出力フィールド - - タイプ - - 例 -
- **反応** - - リスト - - `` -
- - - * **reactions**: キャプチャされたすべての反応を含む要素のリスト、またはタイムアウトが発生した場合は空のリスト。 - -
- - - **例1: Slackで反応を得る** - - - - - - - - - - - - - -
- ワークフローの例 -
- ```yaml - name: GetReactions - - steps: - - name: getReactions - type: action - action: slack.chat.getReactions - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channelID: ${{ .steps.promptUser.outputs.channelID }} - threadTs: ${{ .steps.promptUser.outputs.threadTs }} - timeout: ${{ .workflowInputs.timeout }} - selectors: ${{ .workflowInputs.selectors }} - ``` - - **予想される入力:** - - ```json - { - "inputs": [ - { - "key" : "channelID", - "value" : "C063JK1RHN1" - }, - { - "key" : "threadTs", - "value" : "1718897637.400609" - }, - { - "key" : "selectors", - "value" : "[{\"name\": \"reactions\", \"expression\": \".reactions \"}]" - } - ] - } - ``` - - **期待される出力:** - - ```json - [ - { - "name": "grinning", - "users": [ - "W222222" - ], - "count": 1 - }, - { - "name": "question", - "users": [ - "W333333" - ], - "count": 1 - } - ] - ``` - - またはタイムアウトになった場合: - - ```json - [] - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx b/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx deleted file mode 100644 index 3552b490201..00000000000 --- a/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx +++ /dev/null @@ -1,1043 +0,0 @@ ---- -title: HTTPアクション -tags: - - workflow automation - - workflow - - workflow automation actions - - HTTP actions -metaDescription: A list of available HTTP actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - この機能はまだ開発中ですが、ぜひお試しください。 - - この機能は現在、弊社の[プレリリース ポリシー](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy)に従ってプレビュー プログラムの一部として提供されています。 - - -このページでは、ワークフロー自動化アクション カタログで使用できる HTTP アクションの包括的なリファレンスを提供します。これらのアクションを使用すると、ワークフロー定義の一部として外部 API およびサービスに HTTP requests ( GET 、POST、PUT、DELETE) を送信できるようになります。 - -## 前提条件 - -ワークフロー自動化で HTTP アクションを使用する前に、次の点を確認してください。 - -* 目標APIエンドポイントのURL。 -* 必要な認証資格情報 ( APIキー、VPN など)。 -* API リクエスト/レスポンス形式の理解。 - - - HTTP アクションは、任意のヘッダー値の秘密の構文をサポートしているため、 APIキーなどの機密データを安全に渡すことができます。 詳細については、[シークレット管理を](/docs/infrastructure/host-integrations/installation/secrets-management/)参照してください。 - - -## HTTPアクション - - - - HTTP GET呼び出しを実行して、 APIエンドポイントからデータを取得します。 - - - これは、任意のヘッダー値の秘密の構文をサポートします。 - - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力フィールド - - オプション性 - - タイプ - - 説明 -
- **url** - - 必須 - - 弦 - - リクエストのターゲット URL。スキームには次の内容が含まれている必要があります。 - - `https://example.com` -
- **urlパラメータ** - - オプション - - 地図 - - URL に追加するのは間違いありません。 文字列化された JSON オブジェクトを受け取ります。 -
- **ヘッダ** - - オプション - - 地図 - - リクエストに追加するヘッダー。文字列化された JSON オブジェクトを受け取ります。 -
- **セレクター** - - オプション - - リスト - - 指定されたもののみを出力として取得するセレクター。 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 出力フィールド - - タイプ - - 説明 -
- **レスポンスボディ** - - 弦 - - 応答の本文。 -
- **ステータスコード** - - 整数 - - 応答の HTTP ステータス コード。 -
-
- - - - - - - - - - - - - - -
- ワークフローの例 -
- ```yaml - name: httpGetTest - description: 'Performs an HTTP GET request to retrieve data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - steps: - - name: query - type: action - action: http.get - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - next: end - ``` - - **入力例:** - - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}" - } - ``` - - **出力例:** - - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - HTTP POST 呼び出しを実行して、 APIエンドポイントにデータを送信します。 - - - これは、任意のヘッダー値の秘密の構文をサポートします。 - - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力フィールド - - オプション性 - - タイプ - - 説明 -
- **url** - - 必須 - - 弦 - - リクエストのターゲット URL。スキームには次の内容が含まれている必要があります。 - - `https://example.com` -
- **urlパラメータ** - - オプション - - 地図 - - URL に追加するのは間違いありません。 文字列化された JSON オブジェクトを受け取ります。 -
- **ヘッダ** - - オプション - - 地図 - - リクエストに追加するヘッダー。文字列化された JSON オブジェクトを受け取ります。 -
- **体** - - オプション - - 弦 - - リクエスト本体。 -
- **セレクター** - - オプション - - リスト - - 指定されたもののみを出力として取得するセレクター。 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 出力フィールド - - タイプ - - 説明 -
- **レスポンスボディ** - - 弦 - - 応答の本文。 -
- **ステータスコード** - - 整数 - - 応答の HTTP ステータス コード。 -
-
- - - - - - - - - - - - - - -
- ワークフローの例 -
- ```yaml - name: httpPostTest - description: 'Performs an HTTP POST request to send data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - steps: - - name: query - type: action - action: http.post - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - next: end - ``` - - **入力例:** - - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}" - } - ``` - - **出力例:** - - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - HTTP PUT リクエストを実行して、 APIエンドポイントのデータを更新します。 - - - 入力に機密データ( `Api-Key`ヘッダーなど)を渡す必要がある場合は、 [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) NerdGraph ミューテーションを介して保存された値を使用できます。 - - 例: - - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力フィールド - - オプション性 - - タイプ - - 説明 -
- **url** - - 必須 - - 弦 - - リクエストのターゲット URL。URL にはスキーム (例: https:// または http://) を含める必要があります。例: - - `https://example.com` -
- **urlパラメータ** - - オプション - - 地図 - - URL に追加するのは間違いありません。 文字列化された JSON オブジェクトを受け取ります。 -
- **ヘッダ** - - オプション - - 地図 - - リクエストに追加するヘッダー。文字列化された JSON オブジェクトを受け取ります。 -
- **体** - - オプション - - 弦 - - リクエスト本体。 -
- **セレクター** - - オプション - - リスト - - 指定されたもののみを出力として取得するセレクター。 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 出力フィールド - - タイプ - - 説明 -
- **レスポンスボディ** - - 弦 - - 応答の本文。 -
- **ステータスコード** - - 整数 - - 応答の HTTP ステータス コード。 -
-
- - - - - - - - - - - - - - -
- ワークフローの例 -
- ```yaml - name: httpPutTest - description: 'Performs an HTTP PUT request to update data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.put - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **入力例:** - - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **出力例:** - - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - HTTP DELETE リクエストを実行して、 APIエンドポイントのデータを削除します。 - - - 入力に機密データ( `Api-Key`ヘッダーなど)を渡す必要がある場合は、 [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) NerdGraph ミューテーションを介して保存された値を使用できます。 - - 例: - - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力フィールド - - オプション性 - - タイプ - - 説明 -
- **url** - - 必須 - - 弦 - - リクエストのターゲット URL。URL にはスキーム (例: https:// または http://) を含める必要があります。例: - - `https://example.com` -
- **urlパラメータ** - - オプション - - 地図 - - URL に追加するのは間違いありません。 文字列化された JSON オブジェクトを受け取ります。 -
- **ヘッダ** - - オプション - - 地図 - - リクエストに追加するヘッダー。文字列化された JSON オブジェクトを受け取ります。 -
- **セレクター** - - オプション - - リスト - - 指定されたもののみを出力として取得するセレクター。 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 出力フィールド - - タイプ - - 説明 -
- **レスポンスボディ** - - 弦 - - 応答の本文。 -
- **ステータスコード** - - 整数 - - 応答の HTTP ステータス コード。 -
-
- - - - - - - - - - - - - - -
- ワークフローの例 -
- ```yaml - name: httpDeleteTest - description: 'Performs an HTTP DELETE request to remove data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.delete - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **入力例:** - - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **出力例:** - - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx b/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx deleted file mode 100644 index 006177259f6..00000000000 --- a/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx +++ /dev/null @@ -1,1210 +0,0 @@ ---- -title: New Relicアクション -tags: - - workflow automation - - workflow - - workflow automation actions - - New relic actions -metaDescription: A list of available actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - この機能はまだ開発中ですが、ぜひお試しください。 - - この機能は現在、弊社の[プレリリース ポリシー](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy)に従ってプレビュー プログラムの一部として提供されています。 - - -このページでは、ワークフロー自動化アクション カタログで使用できる New Relic アクションの包括的なリファレンスを提供します。これらのアクションにより、カスタムイベントやログの送信、NerdGraph 書き込みの実行、 NRQL書き込みの実行、通知の送信など、 New Relicプラットフォームの機能をワークフロー定義に統合できます。 - -## 前提条件 - -ワークフロー自動化で New Relic アクションを使用する前に、次の点を確認してください。 - -* 適切な権限を持つ New Relic アカウント。 -* New Relicライセンスキー (データを別のアカウントに送信する場合)。 -* 使用を計画している特定の New Relic サービスに必要な権限。 - -New Relicアカウントのライセンスキーの作成および管理方法については、「[ライセンスキー」](/docs/apis/intro-apis/new-relic-api-keys/#license-key)を参照してください。 - -## 利用可能なNew Relicアクション - -カテゴリ別のすべての New Relic アクションのクイックリファレンス: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- カテゴリー - - アクション - - 目的 -
- **データの取り込み** - - [カスタムイベントを送信する](#newrelicingestsendevents) - - カスタムイベントをNew Relicに送信します。 -
- **データの取り込み** - - [ログを送信](#newrelicingestsendlogs) - - ログデータを New Relic に送信します。 -
- **NerdGraph** - - [GraphQL書き込みまたはミューテーションを実行する](#newrelicnerdgraphexecute) - - NerdGraph API に対して GraphQL コマンドを実行します。 -
- **クエリ** - - [NRDB書き込みを実行する](#newrelicnrdbquery) - - クロスアカウント NRQL クエリを実行します。 -
- **通知** - - [通知を送信](#newrelicnotificationsend) - - New Relic の宛先に通知を送信します。 -
- -## データ取り込みアクション - - - - New Relicにカスタムイベントを送信します - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力フィールド - - オプション性 - - タイプ - - 例 -
- **属性** - - オプション - - マップ - - `"{\"page\": \"1\", \"limit\": \"10\"}"` -
- **イベント** - - 必須 - - リスト - - `"[{\"eventType\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"eventType\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]` -
- **ライセンスキー** - - オプション - - ストリング - - `"{{ .secrets.secretName }}"` -
- **セレクター** - - オプション - - リスト - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
- - - * **attributes**: 提供される場合にすべてのイベントの一部となる共通属性。必要なイベント項目が共通定義をオーバーライドする場合、各イベント項目をマージします。 - * **events**: イベントデータのリスト。 イベントではカスタムイベント タイプを表す`eventType`フィールドを使用する必要があり、リクエストごとに許可されるイベントの最大数は 100 であることに注意してください。 - * **LicenseKey** : イベントが送信されるターゲット アカウントを指定するNew Relicアカウント ライセンスキー。 この値が指定されていない場合、ワークフローを実行しているアカウントに基づいてデフォルトのライセンスキーが想定されます。 - * **selectors** : 指定されたもののみを出力として取得するセレクター。 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 出力フィールド - - タイプ - - 例 -
- **成功** - - ブール値 - - `true` -
- **エラーメッセージ** - - ストリング - - `"Error message if operation failed"` -
-
- - - - - - - - - - - - - - -
- ワークフローの例 -
- ```yaml - name: heartbeat_newrelicIngestSendEvents - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendEvents - version: 1 - inputs: - attributes: - colour: red - id: 1234 - events: - - eventType: HeartBeat - test: "OK" - attributes: - foo: bar - - eventType: HeartBeat1234 - test: "OK1234" - attributes: - foo: bar - - eventType: HeartBeat12345 - test: "OK12345" - attributes: - foo: bar - colour: yellow - - eventType: HeartBeat12345678 - test: "OK12345678" - selectors: - - name: success - expression: ".success" - ``` - - **期待される出力:** - - ```yaml - { - "success": true - } - ``` - - **イベントを取得:** - - ワークフローを正常に実行した後、ワークフローを実行したアカウントでクエリを実行して、関連付けられたイベントを取得できます。 - - ```sql - SELECT * FROM HeartBeat - ``` -
-
-
-
-
-
- - - - New Relicへのログ送信 - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力フィールド - - オプション性 - - タイプ - - 例 -
- **属性** - - オプション - - マップ - - `"{\"page\": \"1\", \"limit\": \"10\"}"` -
- **ログ** - - 必須 - - リスト - - `"[{\"message\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"message\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]"` -
- **ライセンスキー** - - オプション - - ストリング - - `"{{ .secrets.secretName }}"` -
- **セレクター** - - オプション - - リスト - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
- - - * **attributes**: 提供された場合、すべてのログに含まれる共通属性。ログ項目で同じ属性が指定されている場合は、共通の定義が上書きされます。 - * **logs**: ログデータのリスト。 リクエストごとに許可されるログの最大数は 100 であることに注意してください。 - * **LicenseKey** : ログが送信される対象アカウントを指定するNew Relicアカウント ライセンスキー。 指定しない場合、ワークフローを実行するアカウントに基づいてデフォルトのライセンスキーが想定されます。 詳細については、 [「ライセンスキー」を](/docs/apis/intro-apis/new-relic-api-keys/#license-key)参照してください。 - * **selectors** : 指定されたもののみを出力として取得するセレクター。 - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 出力フィールド - - タイプ - - 例 -
- **成功** - - ブール値 - - `true` -
- **エラーメッセージ** - - ストリング - - `"Error message if operation failed"` -
-
- - - - - - - - - - - - - - -
- ワークフローの例 -
- ```yaml - name: heartbeat_newrelicIngestSendLogs - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendLogs - version: 1 - inputs: - attributes: - colour: red - id: 1234 - logs: - - message: 'Heartbeat sendLogs Action Test Message' - attributes: - foo: bar - - message: 'HeartBeat1234' - attributes: - foo: bar - - message: 'HeartBeat12345' - attributes: - foo: bar - colour: yellow - - message: 'HeartBeat12345678' - selectors: - - name: success - expression: ".success" - ``` - - **期待される出力:** - - ```yaml - { - "success": true - } - ``` - - **ログを取得:** - - ワークフローを正常に実行した後、ワークフローを実行したアカウントでクエリを実行して、関連するログを取得できます。 - - ```sql - SELECT * FROM Log - ``` -
-
-
-
-
-
- -## NerdGraphアクション - - - - newrelic NerdGraph API に対して Graphql コマンドを実行します。コマンドはクエリまたはミューテーションのいずれかになります。 - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力 - - オプション性 - - タイプ - - 説明 - - 例 -
- **グラフQL** - - 必須 - - ストリング - - GraphQL 構文。コマンドの構築とテストにはGraphiQLを使用する必要があります - -
- **変数** - - 必須 - - map[string]any - - GraphQLステートメントで使用する任意のキーの値ペア変数。 - -
- **セレクター** - - オプション - - リスト - - 指定された唯一のものを出力として取得するセレクター。 - - ```yaml - { - "data": { - "actor": { - "user": { - "name": "" - } - } - } - ``` -
-
- - - - - - - - - - - - - - - - - - - - - - -
- 出力 - - タイプ - - 例 -
- **データ** - - map[string]any: NerdGraphレスポンスの - - `data` - - プロパティの内容。 - - ```yaml - steps: - - name: currentUserId - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query userId { - currentUser { - id - } - } - - name: sayHello - type: action - action: example.messaging.sayHello - version: 1 - inputs: - name: ${{ .steps.currentUserId.outputs.data.currentUser.id }} - ``` -
-
- - - - - - - - - - - - - - - - - - - - - - -
- 例 - - 出力 - - イベントを取得する -
- ```json - name: testLog - - steps: - - name: logStep - type: action - action: newrelic.ingest.sendLogs - version: 1 - inputs: - logs: - - message: 'Hello World' - ``` - - ```yaml - { - "success": true - } - ``` - - ワークフローを実行したアカウントでクエリを実行すると、関連付けられたイベントを取得できます。 - - ```yaml - SELECT message FROM Log WHERE allColumnSearch('Hello World', insensitive: true) SINCE 30 minutes ago - ``` -
-
-
-
-
-
- -## クエリアクション - - - - NerdGraph API を介してクロスアカウント NRQL クエリを実行します。 - - - - - 入力 - - - - 出力 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力 - - オプション性 - - タイプ - - 説明 - - 例 -
- **クエリ** - - 必須 - - ストリング - - NRQL クエリ ステートメント。 - -
- **アカウント ID** - - オプション - - intのリスト - - **New Relic Account ID** - - \[New Relic アカウント ID]入力は、クエリが実行されるターゲット アカウントを指定できるターゲット ID のリストです。この値が入力として提供されない場合、クエリはワークフローの実行アカウントに関連付けられたアカウントに対して自動的に実行されます。 - -
- **セレクター** - - オプション - - リスト - - 指定された唯一のものを出力として取得するセレクター。 - - ```json - steps: - - name: queryForLog - type: action - action: newrelic.nrdb.query - version: 1 - inputs: - accountIds: [12345] - query: FROM Log SELECT * WHERE message LIKE 'DEMO%' - selectors: - - name: resultsAsString - expression: '.results | tostring' - ``` -
-
- - - - - - - - - - - - - - - - - - - - -
- 出力 - - タイプ - - 例 -
- **results** - - : クエリの結果を含むオブジェクトの配列。 - - - - ```yaml - { - results=[ - { message=[INFO] - Workflow: test has ended, messageId=39af98 }, - { message=[INFO] - Workflow: test - Step query has started, messageId=649c612 }, - ... - ] - } - ``` -
-
-
-
-
-
- -## 通知アクション - - - - Slackなどの宛先と統合されたチャネルにメッセージを送信します - - - - - 入力 - - - - 出力 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力 - - オプション性 - - タイプ - - 説明 - - 例 -
- **タイプ** - - 必須 - - ストリング - - NewRelicの宛先の種類 - - `slack` -
- **宛先ID** - - 必須 - - 弦 - - NewRelic の宛先に関連付けられた DestinationId。 - - `123e4567-e89b-12d3-a456-426614174000` -
- **パラメーター** - - 必須 - - マップ - - 選択した宛先タイプに通知を送信するために必要なフィールド。 - - `{\"channel\": \"${{ YOUR_CHANNEL }}\", \"text\": \"Enter your text here\"}` -
- **セレクター** - - オプション - - リスト - - 指定された唯一のものを出力として取得するセレクター。 - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - -
- 出力 - - タイプ - - 例 -
- 成功 - - ブール値 - - `true/false` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx b/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx deleted file mode 100644 index 46c4af9f971..00000000000 --- a/src/i18n/content/jp/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx +++ /dev/null @@ -1,634 +0,0 @@ ---- -title: ユーティリティアクション -tags: - - workflow automation - - workflow - - workflow automation actions - - utility actions -metaDescription: A list of available utility actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - -このページでは、ワークフロー自動化アクション カタログで使用できるユーティリティ アクションのリファレンスを提供します。これらのアクションを使用すると、ワークフロー定義で一般的なデータ変換およびユーティリティ操作を実行できます。 - -## ユーティリティアクション - - - - このアクションは、エポックタイムスタンプを日付/時刻に変換するために使用されます。参照可能なもの: - - * [https://en.wikipedia.org/wiki/List\_of\_tz\_database\_time\_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) - * [https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT\_IDS](https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT_IDS) - - 詳細については[fromEpochを](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)参照してください。 - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力 - - オプション性 - - タイプ - - 説明 -
- **タイムスタンプ** - - 必須 - - int - - エポックタイムスタンプを表す整数。UNIXエポックは1970年1月1日午前0時(UTC)からの秒数であることに注意してください。 -
- **タイムスタンプ単位** - - オプション - - ストリング - - 提供されたタイムスタンプの単位を表す文字列。許容値: SECONDS、MILLISECONDS(デフォルト) -
- **タイムゾーンID** - - オプション - - ストリング - - 希望する日付/時刻のタイムゾーンを表す文字列。デフォルト: UTC -
- **パターン** - - オプション - - ストリング - - 希望する日時のパターンを表す文字列。デフォルト: ISO-8601 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- フィールド - - オプション性 - - データ型 - - 説明 -
- **日付** - - 必須 - - ストリング - - 日付の文字列表現。 -
- **時間** - - 必須 - - ストリング - - 時間の文字列表現。 -
- **データタイム** - - 必須 - - ストリング - - 日時を文字列で表現します。 -
- **タイムゾーン** - - 必須 - - マップ - - timezoneId と略語のマップ表現。 -
-
- - - - - - - - - - - - - - - - - - - - - - -
- 例 - - ワークフロー入力 - - 出力 -
- ```yaml - name: from_epoch - - workflowInputs: - timestamp: - type: Int - timestampUnit: - type: String - timezoneId: - type: String - pattern: - type: String - - steps: - - name: epochTime - type: action - action: utils.datetime.fromEpoch - version: 1 - inputs: - timestamp: ${{ .workflowInputs.timestamp }} - timezoneId: ${{ .workflowInputs.timezoneId }} - pattern: ${{ .workflowInputs.pattern }} - timestampUnit: ${{ .workflowInputs.timestampUnit }} - ``` - - ```json - mutation { - workflowAutomationStartWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { name: "from_epoch" } - workflowInputs: [ - {key: "timestamp", value: "1738236424003"} - {key: "timestampUnit", value: "MILLISECONDS"} - {key: "pattern", value: "yyyy-mm-dd HH:SS"} - {key: "timezoneId", value: "Asia/Kolkata"} - ] - ) { - runId - } - } - ``` - - ```json - { - "date": "2025-01-30", - "time": "16:57:04.003" - "datetime": "2025-01-30 16:00", - "timezone": { - "abbreviation": "IST", - "id": "Asia/Kolkata" - } - } - ``` -
-
-
-
-
-
- - - - このアクションは、さまざまなタイプの入力 (JSON、マップ) を CSV 形式に変換するために使用されます。 - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 入力 - - オプション性 - - タイプ - - 説明 -
- **データ** - - 必須 - - どんな - - CSV に変換するデータを表す文字列。通常は JSON 文字列またはマップです。 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- フィールド - - オプション性 - - データ型 - - 説明 -
- **csv** - - 必須 - - ストリング - - 受信したデータの CSV 表現。 -
-
- - - - - - - - - - - - - - - - - - - - - -
- 例 - - ワークフロー入力 - - 出力 -
- ```json - name: nrqltocsv - - steps: - - name: queryForLog - type: action - action: newrelic.nrql.query - version: 1 - inputs: - accountIds: ['${{ .workflowInputs.accountId }}'] - query: ${{ .workflowInputs.nrql }} - - - name: csv1 - type: action - action: utils.transform.toCSV - version: 1 - inputs: - data: ${{ .steps.queryForLog.outputs.results | tostring }} - ``` - - ```json - mutation { - startWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { - name: "nrqltocsv", - } - workflowInputs: [ - {key: "accountId" value: "12345678"} - {key: "nrql" value: "FROM TransactionError SELECT error.message, error.class, transactionName, request.uri, query WHERE appName like 'my-app-1%' AND error.expected IS FALSE SINCE 1 hour ago LIMIT 50"} - ] - ) - { runId } - } - ``` - -
-
-
-
-
-
- - - - RFC 準拠の V4 uuid を生成します。 - - - - - 入力 - - - - 出力 - - - - 例 - - - - - - - - - - - - - - - - - - - - - - -
- 入力 - - オプション性 - - データ型 - - 説明 -
- - - - -
-
- - - - - - - - - - - - - - - - - - - - - -
- フィールド - - データ型 - - 説明 -
- **uuid** - - ストリング - -
-
- - - - - - - - - - - - - - - - - - - - -
- 例 - - ワークフロー入力 - - 出力 -
- - - 名前: generateUUID
手順: - - * 名前: generateUUID タイプ: アクション アクション: utils.uuid.generate バージョン: 1 -
- ```json - { - "uuid": "c76bd606-5eaa-42bb-a847-4221fb49f83c", - } - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx b/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx deleted file mode 100644 index b9438fd5629..00000000000 --- a/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx +++ /dev/null @@ -1,652 +0,0 @@ ---- -title: 커뮤니케이션 작업 -tags: - - workflow automation - - workflow - - workflow automation actions - - communication actions - - slack actions - - ms teams actions -metaDescription: A list of available actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - 이 기능은 아직 개발 중이지만 꼭 사용해 보시기 바랍니다! - - 이 기능은 현재 [출시 전 정책](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy) 에 따라 미리보기 프로그램의 일부로 제공됩니다. - - -이 페이지에서는 fl.flo 자동화 작업 카탈로그에서 사용 가능한 통신 작업에 대한 포괄적인 참조를 제공합니다. 이러한 작업을 통해 Slack 채널에 메시지를 보내고, 반응을 검색하는 등 커뮤니케이션 플랫폼을 팰팍우 정의에 통합할 수 있습니다. - -## 전제 조건 - -블리자드 자동화에서 통신 작업을 사용하기 전에 다음 사항이 있는지 확인하세요. - -* 적절한 권한이 있는 Slack 작업 공간. -* 흐름 자동화에서 비밀로 구성된 Slack 봇의 의미입니다. -* 메시지를 보내고 싶은 Slack 채널에 접속합니다. - -Slack 통합을 설정하는 방법에 대한 자세한 내용은 [Slack 구성 추가를](/docs/autoflow/overview#add-the-slack-integration) 참조하세요. - -## 슬랙 동작 - - - - 선택적으로 파일을 첨부하여 Slack 채널로 메시지를 보냅니다. - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 필드 - - 선택성 - - 유형 - - 예시 -
- **토큰** - - 필수의 - - 비밀 - - `${{ :secrets:slackToken }}` -
- **채널** - - 필수의 - - 끈 - - `my-slack-channel` -
- **텍스트** - - 필수의 - - 끈 - - `Hello World!` -
- **스레드** - - 선택 과목 - - 끈 - - `.` -
- **부착** - - 선택 과목 - - 지도 - -
- **첨부 파일 이름** - - 필수의 - - 끈 - - `file.txt` -
- **첨부 파일.내용** - - 필수의 - - 끈 - - `Hello\nWorld!` -
- - - * **token**: 사용할 Slack 봇 토큰입니다. 이것은 비밀 구문으로 전달되어야 합니다. 토큰을 설정하는 방법에 대한 지침은 [Slack 구성 추가](/docs/autoflow/overview#add-the-slack-integration) 를 참조하세요. - * **channel**: 메시지를 보낼 채널의 이름 또는 채널ID입니다. 자세한 내용은 [Slack API를](https://api.slack.com/methods/chat.postMessage#arg_channel/) 참조하세요. - * **text**: 지정된 `channel` 에 Slack에 게시할 메시지입니다. - * **threadTs**: 부모 메시지에 속하는 타임스탬프로, 스레드에서 메시지 회신을 생성하는 데 사용됩니다. - * **attachment**: 지정된 `channel` 에 메시지가 포함된 파일을 첨부할 수 있습니다. - * **attachment.filename**: Slack에 업로드된 파일의 파일 이름을 지정합니다. - * **attachment.content**: 업로드할 파일의 내용은 UTF8입니다. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 출력 필드 - - 유형 - - 예시 -
- **스레드** - - 끈 - - `.` -
- **채널ID** - - 끈 - - `` -
- - - * **threadTs**: 메시지의 타임스탬프. 스레드에 답변을 게시하기 위해 향후 postMessage 호출에 사용될 수 있습니다. - * **channelID**: 메시지가 게시된 채널의 ID입니다. - -
- - - **예 1: Slack 채널에 메시지 게시** - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: SendMessage - - steps: - - name: send_slack_message - type: action - action: slack.chat.postMessage - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channel: ${{ .workflowInputs.channel }} - text: ${{ .workflowInputs.text }} - ``` - - **예상 입력:** - - ```json - { - "inputs": [ - { - "key" : "channel", - "value" : "my-channel" - }, - { - "key" : "text", - "value" : "This is my message *with bold text* and `code backticks`" - } - ] - } - ``` - - **예상 출력:** - - ```json - [ - { - "threadTs": "1718897637.400609", - "channelID": "C063JK1RHN1" - } - ] - ``` -
- - **예 2: 파일 첨부** - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: SendFileMessage - - steps: - - name: postCsv - type: action - action: slack.chat.postMessage - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channel: my-channel - text: "Please find the attached file:" - attachment: - filename: 'file.txt' - content: "Hello\nWorld!" - ``` - - **예상 출력:** - - ```json - [ - { - "threadTs": "1718897637.400609", - "channelID": "C063JK1RHN1" - } - ] - ``` -
-
-
-
-
-
- - - - Slack 채널에서 메시지에 대한 반응을 받아보세요. - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 필드 - - 선택성 - - 유형 - - 예시 -
- **토큰** - - 필수의 - - 비밀 - - `${{ :secrets:slackToken }}` -
- **채널ID** - - 필수의 - - 끈 - - `C063JK1RHN1` -
- **시간 초과** - - 선택 과목 - - 정수 - - 60 -
- **스레드** - - 필수의 - - 끈 - - `.` -
- **선택기** - - 선택 과목 - - 목록 - - `[{\"name\": \"reactions\", \"expression\": \".reactions \"}]` -
- - - * **token**: 사용할 Slack 봇 토큰입니다. 이것은 비밀 구문으로 전달되어야 합니다. 토큰을 설정하는 방법에 대한 지침은 [Slack 구성 추가](/docs/autoflow/overview#add-the-slack-integration) 를 참조하세요. - * **channelID**: 메시지 반응을 얻기 위한 channelID입니다. - * **timeout**: 반응을 기다리는 시간(초)입니다. 기본값은 60초이고, 최대 허용 시간은 600초(10분)입니다. - * **threadTs**: 메시지에 속한 타임스탬프로, 해당 메시지에 대한 반응을 얻는 데 사용됩니다. - * **selectors**: 지정된 유일한 델파이를 출력으로 가져오는 선택기입니다. - -
- - - - - - - - - - - - - - - - - - - - - - -
- 출력 필드 - - 유형 - - 예시 -
- **반응** - - 목록 - - `` -
- - - * **reactions**: 캡처된 모든 반응이 포함된 요소 목록이거나 시간 초과가 발생한 경우 비어 있는 목록입니다. - -
- - - **예 1: Slack에서 반응 얻기** - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: GetReactions - - steps: - - name: getReactions - type: action - action: slack.chat.getReactions - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channelID: ${{ .steps.promptUser.outputs.channelID }} - threadTs: ${{ .steps.promptUser.outputs.threadTs }} - timeout: ${{ .workflowInputs.timeout }} - selectors: ${{ .workflowInputs.selectors }} - ``` - - **예상 입력:** - - ```json - { - "inputs": [ - { - "key" : "channelID", - "value" : "C063JK1RHN1" - }, - { - "key" : "threadTs", - "value" : "1718897637.400609" - }, - { - "key" : "selectors", - "value" : "[{\"name\": \"reactions\", \"expression\": \".reactions \"}]" - } - ] - } - ``` - - **예상 출력:** - - ```json - [ - { - "name": "grinning", - "users": [ - "W222222" - ], - "count": 1 - }, - { - "name": "question", - "users": [ - "W333333" - ], - "count": 1 - } - ] - ``` - - 또는 시간이 초과된 경우: - - ```json - [] - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx b/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx deleted file mode 100644 index 7837ce4850c..00000000000 --- a/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx +++ /dev/null @@ -1,1043 +0,0 @@ ---- -title: HTTP 동작 -tags: - - workflow automation - - workflow - - workflow automation actions - - HTTP actions -metaDescription: A list of available HTTP actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - 이 기능은 아직 개발 중이지만 꼭 사용해 보시기 바랍니다! - - 이 기능은 현재 [출시 전 정책](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy) 에 따라 미리보기 프로그램의 일부로 제공됩니다. - - -이 페이지에서는 fl.flo 자동화 작업 카탈로그에서 사용할 수 있는 HTTP 작업에 대한 포괄적인 참조를 제공합니다. 이러한 작업을 통해 폴리스우 정의의 일부로 외부 API 및 서비스에 대한 HTTP requests (GET, POST, PUT, DELETE)을 수행할 수 있습니다. - -## 전제 조건 - -블리자드 자동화에서 HTTP 작업을 사용하기 전에 다음 사항이 있는지 확인하세요. - -* 부채, 목표 API 포인트 포인트 URL. -* 필요한 인증 자격 증명(API 키, 토큰 등) -* API 요청/응답 형식에 대한 이해. - - - HTTP 액션은 모든 헤더 값에 대해 비밀 구문을 지원하므로 API 키와 같은 민감한 데이터를 안전하게 전달할 수 있습니다. 자세한 내용은 [비밀 관리를](/docs/infrastructure/host-integrations/installation/secrets-management/) 참조하세요. - - -## HTTP 동작 - - - - API 엔드포인트에서 데이터를 검색하려면 HTTP GET 호출을 수행합니다. - - - 이는 모든 헤더 값에 대한 비밀 구문을 지원합니다. - - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 필드 - - 선택성 - - 유형 - - 설명 -
- **URL** - - 필수의 - - 문자열 - - 요청에 대한 타겟 URL입니다. 계획에는 다음이 포함되어야 합니다. - - `https://example.com` -
- **url 매개변수** - - 선택 과목 - - 지도 - - URL에 추가하려면 쿼리를 수행해야 합니다. 문자열화된 JSON 객체를 사용합니다. -
- **헤더** - - 선택 과목 - - 지도 - - 요청에 추가할 헤더입니다. 문자열화된 JSON 객체를 사용합니다. -
- **선택기** - - 선택 과목 - - 목록 - - 지정된 음색만 출력으로 가져오는 선택기입니다. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 출력 필드 - - 유형 - - 설명 -
- **응답 본문** - - 문자열 - - 응답의 본문. -
- **상태 코드** - - 정수 - - 응답의 HTTP 상태 코드입니다. -
-
- - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: httpGetTest - description: 'Performs an HTTP GET request to retrieve data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - steps: - - name: query - type: action - action: http.get - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - next: end - ``` - - **입력 예시:** - - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}" - } - ``` - - **출력 예시:** - - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - API 엔드포인트에 데이터를 전송하기 위해 HTTP POST 호출을 수행합니다. - - - 이는 모든 헤더 값에 대한 비밀 구문을 지원합니다. - - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 필드 - - 선택성 - - 유형 - - 설명 -
- **URL** - - 필수의 - - 문자열 - - 요청에 대한 타겟 URL입니다. 계획에는 다음이 포함되어야 합니다. - - `https://example.com` -
- **url 매개변수** - - 선택 과목 - - 지도 - - URL에 추가하려면 쿼리를 수행해야 합니다. 문자열화된 JSON 객체를 사용합니다. -
- **헤더** - - 선택 과목 - - 지도 - - 요청에 추가할 헤더입니다. 문자열화된 JSON 객체를 사용합니다. -
- **몸** - - 선택 과목 - - 문자열 - - 요청 본문. -
- **선택기** - - 선택 과목 - - 목록 - - 지정된 음색만 출력으로 가져오는 선택기입니다. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 출력 필드 - - 유형 - - 설명 -
- **응답 본문** - - 문자열 - - 응답의 본문. -
- **상태 코드** - - 정수 - - 응답의 HTTP 상태 코드입니다. -
-
- - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: httpPostTest - description: 'Performs an HTTP POST request to send data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - steps: - - name: query - type: action - action: http.post - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - next: end - ``` - - **입력 예시:** - - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}" - } - ``` - - **출력 예시:** - - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - API 엔드포인트에서 데이터를 업데이트하기 위해 HTTP PUT 요청을 수행합니다. - - - 예를 들어 `Api-Key` 헤더와 같이 민감한 데이터를 입력에 전달해야 하는 경우 [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) NerdGraph 뮤테이션을 통해 저장된 값을 사용할 수 있습니다. - - 예시: - - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 필드 - - 선택성 - - 유형 - - 설명 -
- **URL** - - 필수의 - - 문자열 - - 요청에 대한 타겟 URL입니다. URL에는 스키마(예: https:// 또는 http://)가 포함되어야 합니다. 예: - - `https://example.com` -
- **url 매개변수** - - 선택 과목 - - 지도 - - URL에 추가하려면 쿼리를 수행해야 합니다. 문자열화된 JSON 객체를 사용합니다. -
- **헤더** - - 선택 과목 - - 지도 - - 요청에 추가할 헤더입니다. 문자열화된 JSON 객체를 사용합니다. -
- **몸** - - 선택 과목 - - 문자열 - - 요청 본문. -
- **선택기** - - 선택 과목 - - 목록 - - 지정된 음색만 출력으로 가져오는 선택기입니다. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 출력 필드 - - 유형 - - 설명 -
- **응답 본문** - - 문자열 - - 응답의 본문. -
- **상태 코드** - - 정수 - - 응답의 HTTP 상태 코드입니다. -
-
- - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: httpPutTest - description: 'Performs an HTTP PUT request to update data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.put - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **입력 예시:** - - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **출력 예시:** - - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - API 엔드포인트에서 데이터를 제거하기 위해 HTTP DELETE 요청을 수행합니다. - - - 예를 들어 `Api-Key` 헤더와 같이 민감한 데이터를 입력에 전달해야 하는 경우 [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) NerdGraph 뮤테이션을 통해 저장된 값을 사용할 수 있습니다. - - 예시: - - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 필드 - - 선택성 - - 유형 - - 설명 -
- **URL** - - 필수의 - - 문자열 - - 요청에 대한 타겟 URL입니다. URL에는 스키마(예: https:// 또는 http://)가 포함되어야 합니다. 예: - - `https://example.com` -
- **url 매개변수** - - 선택 과목 - - 지도 - - URL에 추가하려면 쿼리를 수행해야 합니다. 문자열화된 JSON 객체를 사용합니다. -
- **헤더** - - 선택 과목 - - 지도 - - 요청에 추가할 헤더입니다. 문자열화된 JSON 객체를 사용합니다. -
- **선택기** - - 선택 과목 - - 목록 - - 지정된 음색만 출력으로 가져오는 선택기입니다. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 출력 필드 - - 유형 - - 설명 -
- **응답 본문** - - 문자열 - - 응답의 본문. -
- **상태 코드** - - 정수 - - 응답의 HTTP 상태 코드입니다. -
-
- - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: httpDeleteTest - description: 'Performs an HTTP DELETE request to remove data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.delete - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **입력 예시:** - - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **출력 예시:** - - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx b/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx deleted file mode 100644 index 98fdfc4ce4f..00000000000 --- a/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx +++ /dev/null @@ -1,1900 +0,0 @@ ---- -title: 뉴렐릭 액션 -tags: - - workflow automation - - workflow - - workflow automation actions - - New relic actions -metaDescription: A list of available actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - 이 기능은 아직 개발 중이지만 꼭 사용해 보시기 바랍니다! - - 이 기능은 현재 [출시 전 정책](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy) 에 따라 미리보기 프로그램의 일부로 제공됩니다. - - -이 페이지는 폴리스우 자동화 작업 카탈로그에서 사용할 수 있는 뉴렐릭 작업에 대한 포괄적인 참조를 제공합니다. 이러한 작업을 사용하면 커스텀 대시보드 및 로그 보내기, NerdGraph 쿼리 실행, NRQL 쿼리 실행, 공지 보내기 등의 워크플로우 정의에 워크플로우 정의에 통합할 수 있습니다. - -## 전제 조건 - -블로우 자동화에서 뉴렐릭 작업을 사용하기 전에 다음 사항이 있는지 확인하세요. - -* 적절한 권한이 있는 뉴렐릭 계정. -* 뉴렐릭 클러스터 키(데이터를 다른 계정으로 보내는 경우). -* 사용하려는 특정 뉴렐릭 서비스에 필요한 권한입니다. - -블루렐릭 계정 키를 생성하고 관리하는 방법에 대한 자세한 내용은 [볼륨 키를](/docs/apis/intro-apis/new-relic-api-keys/#license-key) 참조하세요. - -## 데이터 수집 작업 - - - - 사용자 정의 대시보드를 뉴렐릭에게 보냅니다. - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 필드 - - 선택성 - - 유형 - - 예시 -
- **속성** - - 선택 과목 - - 지도 - - `"{\"page\": \"1\", \"limit\": \"10\"}"` -
- **이벤트** - - 필수의 - - 목록 - - `"[{\"eventType\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"eventType\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]` -
- **라이센스 키** - - 선택 과목 - - 끈 - - `"{{ .secrets.secretName }}"` -
- **선택기** - - 선택 과목 - - 목록 - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
- - - * **attributes**: 제공되는 경우 모든 이벤트에 포함되는 공통 속성입니다. 필요한 경우 각 이벤트 항목을 병합하면 이벤트 항목이 일반적인 정의를 재정의합니다. - * **events**: 이벤트 데이터 목록입니다. 이벤트에는 사용자 정의 대시보드 유형을 나타내는 `eventType` 필드를 사용해야 하며 요청당 허용되는 최대 이벤트는 100개입니다. - * **LicenseKey**: 이벤트가 전송되는 구간, 목표 계정을 지정하는 뉴렐릭 계정 볼륨 키입니다. 이 값을 제공하지 않을 경우, 해당 워크플로우를 실행하는 계정을 기준으로 기본 볼륨 키를 가정합니다. - * **selectors**: 지정된 소스만 출력으로 가져오는 선택기입니다. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 출력 필드 - - 유형 - - 예시 -
- **성공** - - 부울 - - `true` -
- **오류 메시지** - - 끈 - - `"Error message if operation failed"` -
-
- - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: heartbeat_newrelicIngestSendEvents - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendEvents - version: 1 - inputs: - attributes: - colour: red - id: 1234 - events: - - eventType: HeartBeat - test: "OK" - attributes: - foo: bar - - eventType: HeartBeat1234 - test: "OK1234" - attributes: - foo: bar - - eventType: HeartBeat12345 - test: "OK12345" - attributes: - foo: bar - colour: yellow - - eventType: HeartBeat12345678 - test: "OK12345678" - selectors: - - name: success - expression: ".success" - ``` - - **예상 출력:** - - ```yaml - { - "success": true - } - ``` - - **이벤트 검색:** - - 워크플로우를 성공적으로 실행한 후 해당 이벤트를 실행한 계정에서 쿼리를 실행하면 관련 이벤트를 검색할 수 있습니다. - - ```sql - SELECT * FROM HeartBeat - ``` -
-
-
-
-
-
- - - - New Relic에 로그 보내기 - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 필드 - - 선택성 - - 유형 - - 예시 -
- **속성** - - 선택 과목 - - 지도 - - `"{\"page\": \"1\", \"limit\": \"10\"}"` -
- **로그** - - 필수의 - - 목록 - - `"[{\"message\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"message\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]"` -
- **라이센스 키** - - 선택 과목 - - 끈 - - `"{{ .secrets.secretName }}"` -
- **선택기** - - 선택 과목 - - 목록 - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
- - - * **attributes**: 제공되는 경우 모든 로그에 포함되는 공통 속성입니다. 로그 항목이 동일한 속성을 지정하는 경우 일반적인 정의가 재정의됩니다. - * **logs**: 로그인 데이터 목록입니다. 요청당 허용되는 최대 로그 수는 100개입니다. - * **LicenseKey**: 로그가 전송되는 구간, 주요 계정을 지정하는 뉴렐릭 계정 볼륨 키입니다. 제공하지 않을 경우, 해당 워크플로우를 실행하는 계정을 기준으로 기본 볼륨 키를 가정합니다. 자세한 내용은 [라이선스 키를](/docs/apis/intro-apis/new-relic-api-keys/#license-key) 참조하세요. - * **selectors**: 지정된 소스만 출력으로 가져오는 선택기입니다. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 출력 필드 - - 유형 - - 예시 -
- **성공** - - 부울 - - `true` -
- **오류 메시지** - - 끈 - - `"Error message if operation failed"` -
-
- - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: heartbeat_newrelicIngestSendLogs - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendLogs - version: 1 - inputs: - attributes: - colour: red - id: 1234 - logs: - - message: 'Heartbeat sendLogs Action Test Message' - attributes: - foo: bar - - message: 'HeartBeat1234' - attributes: - foo: bar - - message: 'HeartBeat12345' - attributes: - foo: bar - colour: yellow - - message: 'HeartBeat12345678' - selectors: - - name: success - expression: ".success" - ``` - - **예상 출력:** - - ```yaml - { - "success": true - } - ``` - - **로그 검색:** - - 워크플로우를 성공적으로 실행한 후 해당 로그플로우를 실행한 계정에서 쿼리를 실행하여 관련 로그플로우를 검색할 수 있습니다. - - ```sql - SELECT * FROM Log - ``` -
-
-
-
-
-
- -## NerdGraph 작업 - - - - newrelic NerdGraph API에 대해 Graphql 명령을 실행합니다. 명령은 쿼리이거나 뮤테이션일 수 있습니다. - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 - - 선택성 - - 유형 - - 설명 - - 예시 -
- **그래프QL** - - 필수의 - - 끈 - - GraphQL 구문. 명령을 빌드하고 테스트하려면 GraphiQL을 사용해야 합니다. - -
- **변수** - - 필수의 - - map[string]any - - GraphQL 명령문과 함께 사용할 핵심 가치 쌍 변수입니다. - -
- **선택기** - - 선택 과목 - - 목록 - - 지정된 유일한 델파이를 출력으로 가져오는 선택기입니다. - - ```yaml - steps: - - name: findingVar - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query GetEntity($entityGuid: EntityGuid!) { - actor { - entity(guid: $entityGuid) { - alertSeverity - } - } - } - variables: - entityGuid: ${{ .workflowInputs.entityGuid }} - - name: findingInline - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - { - actor { - entity(guid: "${{ .workflowInputs.entityGuid }}") { - alertSeverity - } - } - } - selectors: - - name: entities - expression: '.data' - ``` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 산출 - - 유형 - - 설명 -
- **data** - - map[string]any - - NerdGraph 응답의 - - `data` - - 속성 내용입니다. -
- **성공** - - 부울 - - Status of the request.s -
- **오류 메시지** - - 문자열 - - 실패 이유를 메시지로 전달합니다. -
-
- - - - - - - - - - - - - - -
- 예시 -
- ```yaml - steps: - - name: currentUserId - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query userId { - currentUser { - id - } - } - - name: sayHello - type: action - action: example.messaging.sayHello - version: 1 - inputs: - name: ${{ .steps.currentUserId.outputs.data.currentUser.id }} - ``` -
-
-
-
-
-
- -## 쿼리 작업 - - - - NerdGraph API를 통해 교차 계정 NRQL 쿼리를 실행합니다. - - - - - 입력 - - - - 출력 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 - - 선택성 - - 유형 - - 설명 - - 예시 -
- **질문** - - 필수의 - - 끈 - - NRQL 쿼리 문. - -
- **계정 ID** - - 선택 과목 - - int 목록 - - **New Relic Account ID** - - \[뉴렐릭 계정 ID] 입력은 쿼리가 실행되는 퀴, 목표 계정을 지정할 수 있는 롤리, 목표 ID 목록입니다. 이 값을 입력으로 제공하지 않으면 쿼리는 자동으로 RPG우의 실행 계정과 연결된 계정에 대해 실행됩니다. - -
- **선택기** - - 선택 과목 - - 목록 - - 지정된 유일한 델파이를 출력으로 가져오는 선택기입니다. - - ```json - steps: - - name: queryForLog - type: action - action: newrelic.nrdb.query - version: 1 - inputs: - accountIds: [12345] - query: FROM Log SELECT * WHERE message LIKE 'DEMO%' - selectors: - - name: resultsAsString - expression: '.results | tostring' - ``` -
-
- - - - - - - - - - - - - - - - - - - - -
- 산출 - - 유형 - - 예시 -
- **results** - - : 쿼리 결과를 포함하는 객체의 목록입니다. - - - - ```yaml - { - results=[ - { message=[INFO] - Workflow: test has ended, messageId=39af98 }, - { message=[INFO] - Workflow: test - Step query has started, messageId=649c612 }, - ... - ] - } - ``` -
-
-
-
-
-
- -## 공지사항 - - - - 예를 들어 Slack과 같은 대상과 통합된 채널로 메시지를 보냅니다. - - - - - 입력 - - - - 출력 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 - - 선택성 - - 유형 - - 설명 - - 예시 -
- **유형** - - 필수의 - - 끈 - - Newrelic 목적지 유형 - - `slack` -
- **목적지 ID** - - 필수의 - - 문자열 - - Newrelic 대상과 연관된 DestinationId입니다. - - `123e4567-e89b-12d3-a456-426614174000` -
- **매개변수** - - 필수의 - - 지도 - - 선택한 대상 유형으로 공지를 보내는 데 필요한 필드입니다. - - `{\"channel\": \"${{ YOUR_CHANNEL }}\", \"text\": \"Enter your text here\"}` -
- **선택기** - - 선택 과목 - - 목록 - - 지정된 유일한 델파이를 출력으로 가져오는 선택기입니다. - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - -
- 산출 - - 유형 - - 예시 -
- 성공 - - 부울 - - `true/false` -
-
-
-
-
-
- - - - 목적지와 통합된 MS 팀 채널로 메시지를 보냅니다. - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 필드 - - 선택성 - - 데이터 유형 - - 설명 - - 예시 -
- **목적지 ID** - - 필수의 - - 문자열 - - Newrelic 대상과 연관된 DestinationId입니다. - - 새 대상을 구성하고 대상 ID를 나열하는 방법에 대한 단계는 [Microsoft Teams용 뉴렐릭 통합을](/docs/alerts/get-notified/microsoft-teams-integrations/) 참조하세요. - - 목적지에 대한 자세한 내용을 알아보려면 [목적지를](/docs/alerts/get-notified/destinations/) 참조하세요. - - - - ```sh - { - actor { - account(id: 12345678) { - aiNotifications { - destinations(filters: {type: MICROSOFT_TEAMS, active: true}) { - entities { - createdAt - id - name - active - } - } - } - } - } - } - ``` - - - - `123e4567-e89b-12d3-a456-426614174000` -
- **teamName** - - 필수의 - - 문자열 - - 지정된 목적지 ID와 연결된 팀 이름 - - `TEST_TEAM` -
- **channelName** - - 필수의 - - 문자열 - - 메시지를 보내야 하는 채널 이름 - - `StagingTesting` -
- **메시지** - - 필수의 - - 문자열 - - 보내야 할 문자 메시지 - - `Hello! this message from Workflow` -
- **선택기** - - 선택 과목 - - 목록 - - 지정된 유일한 델파이를 출력으로 가져오는 선택기입니다. - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 출력 필드 - - 유형 - - 예시 -
- **성공** - - 부울 - - `true/false` -
- **sessionId** - - 문자열 - - `"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"` -
- **오류 메시지** - - 문자열 - - `Message is a required field in the notification send"` -
-
- - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: msTeam_notification_workflow - description: This is a test workflow to test MSTeam notification send action - steps: - - name: SendMessageUsingMSTeam - type: action - action: newrelic.notification.sendMicrosoftTeams - version: 1 - inputs: - destinationId: acc24dc2-d4fc-4eba-a7b4-b3ad0170f8aa - channel: DEV_TESTING - teamName: TEST_TEAM_DEV - message: Hello from Workflow - ``` -
-
-
-
-
-
- - - - 첨부 파일이 있거나 없는 NewRelic 이메일 대상에 이메일을 보냅니다. - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 필드 - - 선택성 - - 데이터 유형 - - 설명 - - 예시 -
- **목적지 ID** - - 필수의 - - 문자열 - - Newrelic 대상과 연관된 DestinationId입니다. - - 새 대상을 구성하고 대상 ID를 나열하는 방법에 대한 단계는 [Microsoft Teams용 뉴렐릭 통합을](/docs/alerts/get-notified/microsoft-teams-integrations/) 참조하세요. - - 목적지에 대한 자세한 내용을 알아보려면 [목적지를](/docs/alerts/get-notified/destinations/) 참조하세요. - - - - ```yaml - { - actor { - account(id: 12345678) { - aiNotifications { - destinations(filters: {type: EMAIL, active: true}) { - entities { - createdAt - id - name - active - } - } - } - } - } - } - ``` - - - - `123e4567-e89b-12d3-a456-426614174000` -
- **주제** - - 필수의 - - 문자열 - - 이메일 제목 - - `workflow-notification` -
- **메시지** - - 필수의 - - 문자열 - - 이메일로 보내야 할 메시지 - - `Hello! from Workflow Automation` -
- **첨부 파일** - - 선택 과목 - - 목록 - - 선택적 첨부 파일 목록 - -
- **attachment.type** - - 필수의 - - 열거형 - - 다음 중 하나: - - `QUERY` - - , - - `RAW` - -
- **attachment.query** - - 선택 과목 - - 문자열 - - `QUERY` - - 유형의 경우 이는 NRQL 쿼리 문입니다. - - `SELECT * FROM LOG` -
- *attachment.accountIds* - - \* - - 선택 과목 - - 목록 - - `QUERY` - - 의 경우 쿼리를 실행하기 위한 - - **New Relic Account IDs** - - \[뉴렐릭 계정 ID입니다]. 제공되지 않으면 fl.oxo 실행과 관련된 계정이 사용됩니다. - - `[12345567]` -
- **attachment.format** - - 선택 과목 - - 열거형 - - `QUERY` - - 의 경우 결과에 대한 유형을 지정합니다. 기본값은 다음과 같습니다. - - `JSON` - - `JSON CSV` -
- **첨부 파일.내용** - - 선택 과목 - - 문자열 - - `RAW` - - 의 경우, 이는 UTF-8 형식의 첨부 파일 콘텐츠입니다. - - `A,B,C\n1,2,3` -
- **첨부 파일 이름** - - 선택 과목 - - 문자열 - - 첨부 파일의 파일 이름 - - `log_count.csv` -
- **선택기** - - 선택 과목 - - 목록 - - 지정된 유일한 델파이를 출력으로 가져오는 선택기입니다. - - `[{\"name\": \"success\", \"expression\": \".success\"},{\"name\": \"attachments\", \"expression\": \".response.attachments\"},{\"name\": \"sessionId\", \"expression\": \".response.sessionId\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 출력 필드 - - 유형 - - 예시 -
- **성공** - - 부울 - - `true/false` -
- **sessionId** - - 문자열 - - `"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"` -
- **오류 메시지** - - 문자열 - - `Channel is a required field in the notification send"` -
- **첨부 파일** - - 목록 - - ```yaml - [{ - "blobId": "43werdtfgvhiu7y8t6r5e4398yutfgvh", - "rowCount": 100 - }] - ``` -
-
- - - - - - - - - - - - - - -
- 워크플로 예 -
- ```yaml - name: email_testing_with_attachment - description: Workflow to test sending an email notification via NewRelic with log step - workflowInputs: - destinationId: - type: String - steps: - - name: sendEmailNotification - type: action - action: newrelic.notification.sendEmail - version: '1' - inputs: - destinationId: ${{ .workflowInputs.destinationId }} - subject: "workflow notification" - message: "Workflow Email Notification Testing from local" - attachments: - - type: QUERY - query: "SELECT * FROM Log" - format: JSON - filename: "log_count.json" - selectors: - - name: success - expression: '.success' - - name: sessionId - expression: '.response.sessionId' - - name: attachments - expression: '.response.attachments' - - name: logOutput - type: action - action: newrelic.ingest.sendLogs - version: '1' - inputs: - logs: - - message: "Hello from cap check Testing staging server user2 : ${{ .steps.sendEmailNotification.outputs.result.attachments }}" - licenseKey: ${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }} - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx b/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx deleted file mode 100644 index 2dde4295328..00000000000 --- a/src/i18n/content/kr/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx +++ /dev/null @@ -1,634 +0,0 @@ ---- -title: 유틸리티 작업 -tags: - - workflow automation - - workflow - - workflow automation actions - - utility actions -metaDescription: A list of available utility actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - -이 페이지에서는 fl.flo 자동화 작업 카탈로그에서 사용 가능한 유틸리티 작업에 대한 참조를 제공합니다. 이러한 작업을 통해 폴리스우 정의에서 일반적인 데이터 변환 및 유틸리티 작업을 수행할 수 있습니다. - -## 유틸리티 작업 - - - - 이 작업은 에포크 타임스탬프를 날짜/시간으로 변환하는 데 사용됩니다. 가능한 참조: - - * [https://en.wikipedia.org/wiki/List\_of\_tz\_database\_time\_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) - * [https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT\_IDS](https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT_IDS) - - 자세한 내용은 [Epoch를](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) 참조하세요. - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 - - 선택성 - - 유형 - - 설명 -
- **타임스탬프** - - 필수의 - - 정수 - - 에포크 타임스탬프를 나타내는 정수입니다. 참고로, UNIX 에포크는 1970년 1월 1일 자정 UTC(00:00) 이후의 초 수입니다. -
- **타임스탬프 단위** - - 선택 과목 - - 끈 - - 제공된 타임스탬프의 단위를 나타내는 문자열입니다. 허용 가능한 값: SECONDS, MILLISECONDS(기본값) -
- **시간대 ID** - - 선택 과목 - - 끈 - - 원하는 날짜/시간의 시간대를 나타내는 문자열, 기본값: UTC -
- **pattern** - - 선택 과목 - - 끈 - - 원하는 날짜/시간 패턴을 나타내는 문자열, 기본값: ISO-8601 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 들 - - 선택성 - - 데이터 유형 - - 설명 -
- **날짜** - - 필수의 - - 끈 - - 날짜의 문자열 표현입니다. -
- **시간** - - 필수의 - - 끈 - - 시간을 나타내는 문자열입니다. -
- **날짜 시간** - - 필수의 - - 끈 - - datetime의 문자열 표현입니다. -
- **시간대** - - 필수의 - - 지도 - - 시간대 ID와 약어를 지도로 표현한 것입니다. -
-
- - - - - - - - - - - - - - - - - - - - - - -
- 예시 - - 흐름흐름 입력 - - 출력 -
- ```yaml - name: from_epoch - - workflowInputs: - timestamp: - type: Int - timestampUnit: - type: String - timezoneId: - type: String - pattern: - type: String - - steps: - - name: epochTime - type: action - action: utils.datetime.fromEpoch - version: 1 - inputs: - timestamp: ${{ .workflowInputs.timestamp }} - timezoneId: ${{ .workflowInputs.timezoneId }} - pattern: ${{ .workflowInputs.pattern }} - timestampUnit: ${{ .workflowInputs.timestampUnit }} - ``` - - ```json - mutation { - workflowAutomationStartWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { name: "from_epoch" } - workflowInputs: [ - {key: "timestamp", value: "1738236424003"} - {key: "timestampUnit", value: "MILLISECONDS"} - {key: "pattern", value: "yyyy-mm-dd HH:SS"} - {key: "timezoneId", value: "Asia/Kolkata"} - ] - ) { - runId - } - } - ``` - - ```json - { - "date": "2025-01-30", - "time": "16:57:04.003" - "datetime": "2025-01-30 16:00", - "timezone": { - "abbreviation": "IST", - "id": "Asia/Kolkata" - } - } - ``` -
-
-
-
-
-
- - - - 이 작업은 다양한 유형의 입력(JSON, 맵)을 CSV 형식으로 변환하는 데 사용됩니다. - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 입력 - - 선택성 - - 유형 - - 설명 -
- **data** - - 필수의 - - 어느 - - CSV로 변환할 데이터를 나타내는 문자열로, 일반적으로 JSON 문자열이나 맵입니다. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- 들 - - 선택성 - - 데이터 유형 - - 설명 -
- **CSV** - - 필수의 - - 끈 - - 수신된 데이터의 CSV 표현입니다. -
-
- - - - - - - - - - - - - - - - - - - - - -
- 예시 - - 흐름흐름 입력 - - 출력 -
- ```json - name: nrqltocsv - - steps: - - name: queryForLog - type: action - action: newrelic.nrql.query - version: 1 - inputs: - accountIds: ['${{ .workflowInputs.accountId }}'] - query: ${{ .workflowInputs.nrql }} - - - name: csv1 - type: action - action: utils.transform.toCSV - version: 1 - inputs: - data: ${{ .steps.queryForLog.outputs.results | tostring }} - ``` - - ```json - mutation { - startWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { - name: "nrqltocsv", - } - workflowInputs: [ - {key: "accountId" value: "12345678"} - {key: "nrql" value: "FROM TransactionError SELECT error.message, error.class, transactionName, request.uri, query WHERE appName like 'my-app-1%' AND error.expected IS FALSE SINCE 1 hour ago LIMIT 50"} - ] - ) - { runId } - } - ``` - -
-
-
-
-
-
- - - - RFC 규격에 맞는 V4 UUID를 생성합니다. - - - - - 입력 - - - - 출력 - - - - 예시 - - - - - - - - - - - - - - - - - - - - - - -
- 입력 - - 선택성 - - 데이터 유형 - - 설명 -
- - - - -
-
- - - - - - - - - - - - - - - - - - - - - -
- 들 - - 데이터 유형 - - 설명 -
- **uuid** - - 끈 - -
-
- - - - - - - - - - - - - - - - - - - - -
- 예시 - - 흐름흐름 입력 - - 출력 -
- - - 이름: generateUUID
단계: - - * 이름: generateUUID 유형: 작업 작업: utils.uuid.generate 버전: 1 -
- ```json - { - "uuid": "c76bd606-5eaa-42bb-a847-4221fb49f83c", - } - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx b/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx deleted file mode 100644 index eeb440445ab..00000000000 --- a/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/communication.mdx +++ /dev/null @@ -1,652 +0,0 @@ ---- -title: Ações de comunicação -tags: - - workflow automation - - workflow - - workflow automation actions - - communication actions - - slack actions - - ms teams actions -metaDescription: A list of available actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse! - - Atualmente, esse recurso é fornecido como parte de um programa de visualização de acordo com nossas [políticas de pré-lançamento](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -Esta página fornece uma referência completa para as ações de comunicação disponíveis no catálogo de ações de automação de fluxo de trabalho. Essas ações permitem que você integre a plataforma de comunicação às suas definições de fluxo de trabalho, incluindo o envio de mensagens para canais do Slack, a recuperação de reações e muito mais. - -## Pré-requisitos - -Antes de usar ações de comunicação na automação de fluxo de trabalho, certifique-se de ter: - -* Um espaço de trabalho do Slack com as permissões apropriadas. -* Um token de bot do Slack configurado como um segredo na automação de fluxo de trabalho. -* Acesso aos canais do Slack onde você deseja enviar mensagens. - -Consulte a seção [Adicionar configuração do Slack](/docs/autoflow/overview#add-the-slack-integration) para obter informações sobre como configurar a integração com o Slack. - -## Ações do Slack - - - - Envia uma mensagem para um canal do Slack, com a opção de anexar um arquivo. - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidade - - Tipo - - Exemplo -
- **token** - - Obrigatório - - segredo - - `${{ :secrets:slackToken }}` -
- **canal** - - Obrigatório - - corda - - `my-slack-channel` -
- **texto** - - Obrigatório - - corda - - `Hello World!` -
- **threadTs** - - Opcional - - corda - - `.` -
- **anexo** - - Opcional - - map - -
- **anexo.nome do arquivo** - - Obrigatório - - corda - - `file.txt` -
- **anexo.conteúdo** - - Obrigatório - - corda - - `Hello\nWorld!` -
- - - * **token**: O token do bot do Slack a ser usado. Isso deve ser passado como uma sintaxe secreta. Consulte a seção [Adicionar configuração do Slack](/docs/autoflow/overview#add-the-slack-integration) para obter instruções sobre como configurar um token. - * **channel**: O nome do canal, ou um ID de canal, para enviar a mensagem. Consulte [a API do Slack](https://api.slack.com/methods/chat.postMessage#arg_channel/) para obter mais informações. - * **text**: A mensagem a ser postada no Slack no `channel` especificado. - * **threadTs**: carimbo de data/hora pertencente à mensagem principal, usado para criar uma resposta em uma thread. - * **attachment**: Permite anexar um arquivo com uma mensagem no `channel` especificado. - * **attachment.filename**: Especifique o nome do arquivo que será carregado no Slack. - * **attachment.content**: O conteúdo do arquivo a ser carregado está em UTF-8. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de saída - - Tipo - - Exemplo -
- **threadTs** - - corda - - `.` -
- **ID do canal** - - corda - - `` -
- - - * **threadTs**: carimbo de data/hora da mensagem. Pode ser usado em futuras chamadas postMessage para postar uma resposta em um tópico. - * **channelID**: ID do canal onde a mensagem foi postada. - -
- - - **Exemplo 1: Publicar uma mensagem em um canal do Slack** - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: SendMessage - - steps: - - name: send_slack_message - type: action - action: slack.chat.postMessage - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channel: ${{ .workflowInputs.channel }} - text: ${{ .workflowInputs.text }} - ``` - - **Entradas esperadas:** - - ```json - { - "inputs": [ - { - "key" : "channel", - "value" : "my-channel" - }, - { - "key" : "text", - "value" : "This is my message *with bold text* and `code backticks`" - } - ] - } - ``` - - **Resultado esperado:** - - ```json - [ - { - "threadTs": "1718897637.400609", - "channelID": "C063JK1RHN1" - } - ] - ``` -
- - **Exemplo 2: Anexar um arquivo** - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: SendFileMessage - - steps: - - name: postCsv - type: action - action: slack.chat.postMessage - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channel: my-channel - text: "Please find the attached file:" - attachment: - filename: 'file.txt' - content: "Hello\nWorld!" - ``` - - **Resultado esperado:** - - ```json - [ - { - "threadTs": "1718897637.400609", - "channelID": "C063JK1RHN1" - } - ] - ``` -
-
-
-
-
-
- - - - Receba uma reação a uma mensagem de um canal do Slack. - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidade - - Tipo - - Exemplo -
- **token** - - Obrigatório - - segredo - - `${{ :secrets:slackToken }}` -
- **ID do canal** - - Obrigatório - - corda - - `C063JK1RHN1` -
- **Tempo esgotado** - - Opcional - - int - - 60 -
- **threadTs** - - Obrigatório - - corda - - `.` -
- **seletores** - - Opcional - - list - - `[{\"name\": \"reactions\", \"expression\": \".reactions \"}]` -
- - - * **token**: O token do bot do Slack a ser usado. Isso deve ser passado como uma sintaxe secreta. Consulte a seção [Adicionar configuração do Slack](/docs/autoflow/overview#add-the-slack-integration) para obter instruções sobre como configurar um token. - * **channelID**: O ID do canal para receber as reações às mensagens. - * **timeout**: O tempo em segundos que se deve esperar por qualquer reação. O valor padrão é 60 segundos, o máximo permitido é 600 segundos (10 minutos). - * **threadTs**: carimbo de data/hora pertencente à mensagem, usado para obter a reação a essa mensagem. - * **selectors**: Os seletores para obter apenas o parâmetro especificado como saída. - -
- - - - - - - - - - - - - - - - - - - - - - -
- Campo de saída - - Tipo - - Exemplo -
- **reações** - - list - - `` -
- - - * **reactions**: Lista de elementos com todas as reações registradas ou uma lista vazia caso tenha ocorrido um tempo limite. - -
- - - **Exemplo 1: Slack recebe reações** - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: GetReactions - - steps: - - name: getReactions - type: action - action: slack.chat.getReactions - version: 1 - inputs: - token: ${{ :secrets:slackToken }} - channelID: ${{ .steps.promptUser.outputs.channelID }} - threadTs: ${{ .steps.promptUser.outputs.threadTs }} - timeout: ${{ .workflowInputs.timeout }} - selectors: ${{ .workflowInputs.selectors }} - ``` - - **Entradas esperadas:** - - ```json - { - "inputs": [ - { - "key" : "channelID", - "value" : "C063JK1RHN1" - }, - { - "key" : "threadTs", - "value" : "1718897637.400609" - }, - { - "key" : "selectors", - "value" : "[{\"name\": \"reactions\", \"expression\": \".reactions \"}]" - } - ] - } - ``` - - **Resultado esperado:** - - ```json - [ - { - "name": "grinning", - "users": [ - "W222222" - ], - "count": 1 - }, - { - "name": "question", - "users": [ - "W333333" - ], - "count": 1 - } - ] - ``` - - Ou, se o tempo limite tiver expirado: - - ```json - [] - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx b/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx deleted file mode 100644 index 4d9cad0e3b5..00000000000 --- a/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/http.mdx +++ /dev/null @@ -1,1043 +0,0 @@ ---- -title: Ações HTTP -tags: - - workflow automation - - workflow - - workflow automation actions - - HTTP actions -metaDescription: A list of available HTTP actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse! - - Atualmente, esse recurso é fornecido como parte de um programa de visualização de acordo com nossas [políticas de pré-lançamento](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -Esta página fornece uma referência completa para as ações HTTP disponíveis no catálogo de ações de automação de fluxo de trabalho. Essas ações permitem que você faça requests HTTP (GET, POST, PUT, DELETE) para APIs e serviços externos como parte das suas definições de fluxo de trabalho. - -## Pré-requisitos - -Antes de usar ações HTTP na automação de fluxo de trabalho, certifique-se de ter: - -* endpointde destino de URLs API. -* Quaisquer credenciais de autenticação necessárias (chave de API, token, etc.). -* Compreensão dos formatos de requisição/resposta da API. - - - As ações HTTP suportam sintaxe secreta para qualquer valor de cabeçalho, permitindo que você passe dados sensíveis com segurança, como a chave de API. Consulte [a seção de gerenciamento de segredos](/docs/infrastructure/host-integrations/installation/secrets-management/) para obter mais informações. - - -## Ações HTTP - - - - Realize uma chamada HTTP GET para recuperar dados de um endpointda API. - - - Isso permite o uso de sintaxe secreta para qualquer valor de cabeçalho. - - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidade - - Tipo - - Descrição -
- **url** - - Obrigatório - - Corda - - A URL de destino da solicitação. O esquema deve ser incluído: - - `https://example.com` -
- **parâmetros da URL** - - Opcional - - Mapa - - O parâmetro de consulta deve ser adicionado à URL. Recebe um objeto JSON em formato de string. -
- **cabeçalhos** - - Opcional - - Mapa - - Os cabeçalhos a serem adicionados à solicitação. Recebe um objeto JSON em formato de string. -
- **seletores** - - Opcional - - Lista - - Os seletores permitem obter apenas o parâmetro especificado como saída. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de saída - - Tipo - - Descrição -
- **respostaCorpo** - - Corda - - O corpo da resposta. -
- **código de status** - - Inteiro - - O código de status HTTP da resposta. -
-
- - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: httpGetTest - description: 'Performs an HTTP GET request to retrieve data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - steps: - - name: query - type: action - action: http.get - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - next: end - ``` - - **Exemplos de entradas:** - - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}" - } - ``` - - **Exemplos de saída:** - - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - Executa uma chamada HTTP POST para enviar dados para um endpointda API. - - - Isso permite o uso de sintaxe secreta para qualquer valor de cabeçalho. - - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidade - - Tipo - - Descrição -
- **url** - - Obrigatório - - Corda - - A URL de destino da solicitação. O esquema deve ser incluído: - - `https://example.com` -
- **parâmetros da URL** - - Opcional - - Mapa - - O parâmetro de consulta deve ser adicionado à URL. Recebe um objeto JSON em formato de string. -
- **cabeçalhos** - - Opcional - - Mapa - - Os cabeçalhos a serem adicionados à solicitação. Recebe um objeto JSON em formato de string. -
- **corpo** - - Opcional - - Corda - - O corpo da requisição. -
- **seletores** - - Opcional - - Lista - - Os seletores permitem obter apenas o parâmetro especificado como saída. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de saída - - Tipo - - Descrição -
- **respostaCorpo** - - Corda - - O corpo da resposta. -
- **código de status** - - Inteiro - - O código de status HTTP da resposta. -
-
- - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: httpPostTest - description: 'Performs an HTTP POST request to send data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - steps: - - name: query - type: action - action: http.post - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - next: end - ``` - - **Exemplos de entradas:** - - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}" - } - ``` - - **Exemplos de saída:** - - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - Executa uma solicitação HTTP PUT para atualizar dados em um endpointda API. - - - Se você precisar passar dados sensíveis para uma entrada, por exemplo um cabeçalho `Api-Key`, você pode usar valores armazenados por meio da mutação [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) do NerdGraph. - - Exemplo: - - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidade - - Tipo - - Descrição -
- **url** - - Obrigatório - - Corda - - A URL de destino da solicitação. O URL deve incluir o esquema (por exemplo, https:// ou http://). Exemplo: - - `https://example.com` -
- **parâmetros da URL** - - Opcional - - Mapa - - O parâmetro de consulta deve ser adicionado à URL. Recebe um objeto JSON em formato de string. -
- **cabeçalhos** - - Opcional - - Mapa - - Os cabeçalhos a serem adicionados à solicitação. Recebe um objeto JSON em formato de string. -
- **corpo** - - Opcional - - Corda - - O corpo da requisição. -
- **seletores** - - Opcional - - Lista - - Os seletores permitem obter apenas o parâmetro especificado como saída. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de saída - - Tipo - - Descrição -
- **respostaCorpo** - - Corda - - O corpo da resposta. -
- **código de status** - - Inteiro - - O código de status HTTP da resposta. -
-
- - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: httpPutTest - description: 'Performs an HTTP PUT request to update data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - body: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.put - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - body: ${{ .workflowInputs.body }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **Exemplos de entradas:** - - ```json - { - "url": "https://example.com", - "headers": "{\"Content-Type\":\"application/json\"}", - "urlParams": "{\"foo\": \"bar\"}", - "body": "{\"foo\": \"bar\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **Exemplos de saída:** - - ```json - { - "responseBody": "", - "statusCode": 200 - } - ``` -
-
-
-
-
- - - Executa uma solicitação HTTP DELETE para remover dados em um endpointda API. - - - Se você precisar passar dados sensíveis para uma entrada, por exemplo um cabeçalho `Api-Key`, você pode usar valores armazenados por meio da mutação [secretsManagementCreateSecret](https://one.newrelic.com/nerdgraph-graphiql) do NerdGraph. - - Exemplo: - - ```json - { - "headers": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}" - } - ``` - - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidade - - Tipo - - Descrição -
- **url** - - Obrigatório - - Corda - - A URL de destino da solicitação. O URL deve incluir o esquema (por exemplo, https:// ou http://). Exemplo: - - `https://example.com` -
- **parâmetros da URL** - - Opcional - - Mapa - - O parâmetro de consulta deve ser adicionado à URL. Recebe um objeto JSON em formato de string. -
- **cabeçalhos** - - Opcional - - Mapa - - Os cabeçalhos a serem adicionados à solicitação. Recebe um objeto JSON em formato de string. -
- **seletores** - - Opcional - - Lista - - Os seletores permitem obter apenas o parâmetro especificado como saída. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de saída - - Tipo - - Descrição -
- **respostaCorpo** - - Corda - - O corpo da resposta. -
- **código de status** - - Inteiro - - O código de status HTTP da resposta. -
-
- - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: httpDeleteTest - description: 'Performs an HTTP DELETE request to remove data' - workflowInputs: - url: - type: String - urlParams: - type: String - headers: - type: String - selectors: - type: String - steps: - - name: query - type: action - action: http.delete - version: '1' - inputs: - url: ${{ .workflowInputs.url }} - urlParams: ${{ .workflowInputs.urlParams }} - headers: ${{ .workflowInputs.headers }} - selectors: ${{ .workflowInputs.selectors }} - next: end - ``` - - **Exemplos de entradas:** - - ```json - { - "url": "https://example.com", - "urlParams": "{\"foo\": \"bar\"}", - "headers": "{\"baz\": \"bat\"}", - "selectors": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]" - } - ``` - - **Exemplos de saída:** - - ```json - { - "responseBody": "\n...\n", - "statusCode": 200 - } - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx b/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx deleted file mode 100644 index 15ef0c5097e..00000000000 --- a/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic.mdx +++ /dev/null @@ -1,1910 +0,0 @@ ---- -title: Ações da New Relic -tags: - - workflow automation - - workflow - - workflow automation actions - - New relic actions -metaDescription: A list of available actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - - - Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse! - - Atualmente, esse recurso é fornecido como parte de um programa de visualização de acordo com nossas [políticas de pré-lançamento](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy). - - -Esta página fornece uma referência completa das ações do New Relic disponíveis no catálogo de ações de automação de fluxo de trabalho. Essas ações permitem integrar recursos da plataforma New Relic em suas definições de fluxo de trabalho, incluindo envio de eventos personalizados e logs, execução de consulta NerdGraph, execução de consulta NRQL e envio de notificação. - -## Pré-requisitos - -Antes de usar as ações New Relic na automação do fluxo de trabalho, certifique-se de ter: - -* Uma conta New Relic com as permissões apropriadas. -* Uma chave de licença do New Relic (caso esteja enviando dados para uma conta diferente). -* As permissões necessárias para os serviços específicos do New Relic que você planeja usar. - -Consulte [chave de licença](/docs/apis/intro-apis/new-relic-api-keys/#license-key) para obter informações sobre como criar e gerenciar sua conta New Relic chave de licença. - -## Ações de ingestão de dados - - - - Envia um evento personalizado para New Relic - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidade - - Tipo - - Exemplo -
- **atributo** - - Opcional - - Mapa - - `"{\"page\": \"1\", \"limit\": \"10\"}"` -
- **eventos** - - Obrigatório - - list - - `"[{\"eventType\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"eventType\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]` -
- **chave de licença** - - Opcional - - corda - - `"{{ .secrets.secretName }}"` -
- **seletores** - - Opcional - - list - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
- - - * **attributes**: Atributo comum que faz parte de todos os eventos quando fornecido. A fusão de cada item de evento, quando necessário, substitui a definição comum. - * **events**: A lista de dados do evento. Observe que o evento requer o uso de um campo `eventType` que representa o tipo personalizado do evento e o número máximo de eventos permitidos por solicitação é 100. - * **licenseKey**: A chave de licença da conta New Relic que especifica a conta de destino para onde os eventos são enviados. Caso esse valor não seja fornecido, será assumida uma chave de licença padrão com base na conta que executa o fluxo de trabalho. - * **selectors**: Os seletores para obter apenas o parâmetro especificado como saída. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de saída - - Tipo - - Exemplo -
- **sucesso** - - Boleano - - `true` -
- **mensagem de erro** - - corda - - `"Error message if operation failed"` -
-
- - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: heartbeat_newrelicIngestSendEvents - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendEvents - version: 1 - inputs: - attributes: - colour: red - id: 1234 - events: - - eventType: HeartBeat - test: "OK" - attributes: - foo: bar - - eventType: HeartBeat1234 - test: "OK1234" - attributes: - foo: bar - - eventType: HeartBeat12345 - test: "OK12345" - attributes: - foo: bar - colour: yellow - - eventType: HeartBeat12345678 - test: "OK12345678" - selectors: - - name: success - expression: ".success" - ``` - - **Resultado esperado:** - - ```yaml - { - "success": true - } - ``` - - **Recuperar evento:** - - Após executar um fluxo de trabalho com sucesso, você pode recuperar o evento associado executando uma consulta na conta que executou o fluxo de trabalho: - - ```sql - SELECT * FROM HeartBeat - ``` -
-
-
-
-
-
- - - - Enviar registro para New Relic - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidade - - Tipo - - Exemplo -
- **atributo** - - Opcional - - map - - `"{\"page\": \"1\", \"limit\": \"10\"}"` -
- **logs** - - Obrigatório - - list - - `"[{\"message\":\"XYZ\",\"attributes\":{\"foo\":\"bar\"}}, {\"message\":\"ABC\",\"value\":\"1234\",\"attributes\":{\"color\":\"red\"}}]"` -
- **chave de licença** - - Opcional - - corda - - `"{{ .secrets.secretName }}"` -
- **seletores** - - Opcional - - list - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
- - - * **attributes**: Atributo comum incluído em todos os logs quando fornecido. Se um item de log especificar o mesmo atributo, ele substituirá a definição comum. - * **logs**: A lista de dados de logs. Observe que o número máximo de logs permitidos por solicitação é 100. - * **licenseKey**: A chave de licença da conta New Relic que especifica a conta de destino para onde os logs são enviados. Caso não seja fornecida, será assumida uma chave de licença padrão com base na conta que executa o fluxo de trabalho. Consulte [a chave de licença](/docs/apis/intro-apis/new-relic-api-keys/#license-key) para obter mais informações. - * **selectors**: Os seletores para obter apenas o parâmetro especificado como saída. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de saída - - Tipo - - Exemplo -
- **sucesso** - - Boleano - - `true` -
- **mensagem de erro** - - corda - - `"Error message if operation failed"` -
-
- - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: heartbeat_newrelicIngestSendLogs - - workflowInputs: - cellName: - type: String - - steps: - - name: runAction - type: action - action: newrelic.ingest.sendLogs - version: 1 - inputs: - attributes: - colour: red - id: 1234 - logs: - - message: 'Heartbeat sendLogs Action Test Message' - attributes: - foo: bar - - message: 'HeartBeat1234' - attributes: - foo: bar - - message: 'HeartBeat12345' - attributes: - foo: bar - colour: yellow - - message: 'HeartBeat12345678' - selectors: - - name: success - expression: ".success" - ``` - - **Resultado esperado:** - - ```yaml - { - "success": true - } - ``` - - **Recuperar logs:** - - Após executar um fluxo de trabalho com sucesso, você pode recuperar o log associado executando uma consulta na conta que executou o fluxo de trabalho: - - ```sql - SELECT * FROM Log - ``` -
-
-
-
-
-
- -## Ações do NerdGraph - - - - Executa um comando GraphQL na API NerdGraph do New Relic. O comando pode ser uma consulta ou uma mutação. - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Entrada - - Opcionalidade - - Tipo - - Descrição - - Exemplo -
- **graphql** - - Obrigatório - - corda - - Uma sintaxe GraphQL. Você deve usar o GraphiQL para construir e testar seu comando. - -
- **variáveis** - - Obrigatório - - map[string]any - - Quaisquer variáveis de par principal-valor para usar com a instrução GraphQL. - -
- **seletores** - - Opcional - - Lista - - Os seletores permitem obter como saída apenas o parâmetro especificado. - - ```yaml - steps: - - name: findingVar - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query GetEntity($entityGuid: EntityGuid!) { - actor { - entity(guid: $entityGuid) { - alertSeverity - } - } - } - variables: - entityGuid: ${{ .workflowInputs.entityGuid }} - - name: findingInline - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - { - actor { - entity(guid: "${{ .workflowInputs.entityGuid }}") { - alertSeverity - } - } - } - selectors: - - name: entities - expression: '.data' - ``` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Saída - - Tipo - - Descrição -
- **dados** - - map[string]any - - Conteúdo da propriedade - - `data` - - de uma resposta do NerdGraph. -
- **sucesso** - - Boleano - - Status of the request.s -
- **mensagem de erro** - - Corda - - Motivo da falha como mensagem. -
-
- - - - - - - - - - - - - - -
- Exemplo -
- ```yaml - steps: - - name: currentUserId - type: action - action: newrelic.nerdgraph.execute - version: 1 - inputs: - graphql: | - query userId { - currentUser { - id - } - } - - name: sayHello - type: action - action: example.messaging.sayHello - version: 1 - inputs: - name: ${{ .steps.currentUserId.outputs.data.currentUser.id }} - ``` -
-
-
-
-
-
- -## Ações de consulta - - - - Executa uma consulta NRQL entre contas através da API do NerdGraph. - - - - - Entradas - - - - Saídas - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Entrada - - Opcionalidade - - Tipo - - Descrição - - Exemplo -
- **consulta** - - Obrigatório - - corda - - A instrução de consulta NRQL. - -
- **IDs da conta** - - Opcional - - lista de inteiros - - O campo - - **New Relic Account ID** - - é uma lista de IDs de destino que permite especificar as contas de destino nas quais a consulta será executada. Caso esse valor não seja fornecido como entrada, a consulta será executada automaticamente na conta associada à conta de execução do fluxo de trabalho. - -
- **seletores** - - Opcional - - list - - Os seletores permitem obter como saída apenas o parâmetro especificado. - - ```json - steps: - - name: queryForLog - type: action - action: newrelic.nrdb.query - version: 1 - inputs: - accountIds: [12345] - query: FROM Log SELECT * WHERE message LIKE 'DEMO%' - selectors: - - name: resultsAsString - expression: '.results | tostring' - ``` -
-
- - - - - - - - - - - - - - - - - - - - -
- Saída - - Tipo - - Exemplo -
- **results** - - : Uma matriz de objetos contendo os resultados da consulta. - - - - ```yaml - { - results=[ - { message=[INFO] - Workflow: test has ended, messageId=39af98 }, - { message=[INFO] - Workflow: test - Step query has started, messageId=649c612 }, - ... - ] - } - ``` -
-
-
-
-
-
- -## ações de notificação - - - - Envia uma mensagem para um canal, integrado com destinos, por exemplo, o Slack. - - - - - Entradas - - - - Saídas - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Entrada - - Opcionalidade - - Tipo - - Descrição - - Exemplo -
- **tipo** - - Obrigatório - - corda - - Tipo de destino do New Relic - - `slack` -
- **id de destino** - - Obrigatório - - Corda - - DestinationId associado ao destino New Relic. - - `123e4567-e89b-12d3-a456-426614174000` -
- **parâmetro** - - Obrigatório - - map - - Campos obrigatórios para enviar notificação ao tipo de destino escolhido. - - `{\"channel\": \"${{ YOUR_CHANNEL }}\", \"text\": \"Enter your text here\"}` -
- **seletores** - - Opcional - - list - - Os seletores permitem obter como saída apenas o parâmetro especificado. - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - -
- Saída - - Tipo - - Exemplo -
- sucesso - - boleano - - `true/false` -
-
-
-
-
-
- - - - Envia uma mensagem para um canal do Microsoft Teams, integrado com destinos. - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidade - - Tipo de dados - - Descrição - - Exemplo -
- **id de destino** - - Obrigatório - - Corda - - DestinationId associado ao destino New Relic. - - Consulte [a integração do New Relic com o Microsoft Teams](/docs/alerts/get-notified/microsoft-teams-integrations/) para obter instruções sobre como configurar um novo destino e listar os IDs de destino. - - Consulte a [seção Destinos](/docs/alerts/get-notified/destinations/) para saber mais sobre os destinos. - - - - ```sh - { - actor { - account(id: 12345678) { - aiNotifications { - destinations(filters: {type: MICROSOFT_TEAMS, active: true}) { - entities { - createdAt - id - name - active - } - } - } - } - } - } - ``` - - - - `123e4567-e89b-12d3-a456-426614174000` -
- **teamName** - - Obrigatório - - Corda - - Nome da equipe associada ao ID de destino fornecido - - `TEST_TEAM` -
- **channelName** - - Obrigatório - - Corda - - Nome do canal para onde a mensagem deve ser enviada. - - `StagingTesting` -
- **mensagem** - - Obrigatório - - Corda - - Mensagem de texto que precisa ser enviada - - `Hello! this message from Workflow` -
- **seletores** - - Opcional - - Lista - - Os seletores permitem obter como saída apenas o parâmetro especificado. - - `[{\"name\": \"success\", \"expression\": \".success\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de saída - - Tipo - - Exemplo -
- **sucesso** - - Boleano - - `true/false` -
- **sessionId** - - Corda - - `"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"` -
- **mensagem de erro** - - Corda - - `Message is a required field in the notification send"` -
-
- - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: msTeam_notification_workflow - description: This is a test workflow to test MSTeam notification send action - steps: - - name: SendMessageUsingMSTeam - type: action - action: newrelic.notification.sendMicrosoftTeams - version: 1 - inputs: - destinationId: acc24dc2-d4fc-4eba-a7b4-b3ad0170f8aa - channel: DEV_TESTING - teamName: TEST_TEAM_DEV - message: Hello from Workflow - ``` -
-
-
-
-
-
- - - - Envia um e-mail para destinatários de e-mail do New Relic com ou sem anexos. - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de entrada - - Opcionalidade - - Tipo de dados - - Descrição - - Exemplo -
- **id de destino** - - Obrigatório - - Corda - - DestinationId associado ao destino New Relic. - - Consulte [a integração do New Relic com o Microsoft Teams](/docs/alerts/get-notified/microsoft-teams-integrations/) para obter instruções sobre como configurar um novo destino e listar os IDs de destino. - - Consulte a [seção Destinos](/docs/alerts/get-notified/destinations/) para saber mais sobre os destinos. - - - - ```yaml - { - actor { - account(id: 12345678) { - aiNotifications { - destinations(filters: {type: EMAIL, active: true}) { - entities { - createdAt - id - name - active - } - } - } - } - } - } - ``` - - - - `123e4567-e89b-12d3-a456-426614174000` -
- **assunto** - - Obrigatório - - Corda - - Assunto do e-mail - - `workflow-notification` -
- **mensagem** - - Obrigatório - - Corda - - Mensagem que precisa ser enviada por e-mail - - `Hello! from Workflow Automation` -
- **anexos** - - Opcional - - Lista - - Lista de anexos opcionais - -
- **attachment.type** - - Obrigatório - - Enum - - Um dos seguintes: - - `QUERY` - - , - - `RAW` - -
- **attachment.query** - - Opcional - - Corda - - Para o tipo - - `QUERY` - - , esta é uma instrução de consulta NRQL. - - `SELECT * FROM LOG` -
- *attachment.accountIds* - - \* - - Opcional - - Lista - - Para - - `QUERY` - - , os - - **New Relic Account IDs** - - para executar a consulta. Caso não seja fornecida, será utilizada a conta associada à execução do fluxo de trabalho. - - `[12345567]` -
- **attachment.format** - - Opcional - - Enum - - Para - - `QUERY` - - , especifique o tipo para os resultados, padrão - - `JSON` - - `JSON CSV` -
- **anexo.conteúdo** - - Opcional - - Corda - - Para - - `RAW` - - , este é o conteúdo do anexo em UTF-8. - - `A,B,C\n1,2,3` -
- **anexo.nome do arquivo** - - Opcional - - Corda - - Um nome de arquivo para o anexo. - - `log_count.csv` -
- **seletores** - - Opcional - - Lista - - Os seletores permitem obter como saída apenas o parâmetro especificado. - - `[{\"name\": \"success\", \"expression\": \".success\"},{\"name\": \"attachments\", \"expression\": \".response.attachments\"},{\"name\": \"sessionId\", \"expression\": \".response.sessionId\"}]` -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo de saída - - Tipo - - Exemplo -
- **sucesso** - - Boleano - - `true/false` -
- **sessionId** - - Corda - - `"sessionId": "7fa97f26-3791-492e-a39b-53793163dfb9"` -
- **mensagem de erro** - - Corda - - `Channel is a required field in the notification send"` -
- **anexos** - - Lista - - ```yaml - [{ - "blobId": "43werdtfgvhiu7y8t6r5e4398yutfgvh", - "rowCount": 100 - }] - ``` -
-
- - - - - - - - - - - - - - -
- Exemplo de fluxo de trabalho -
- ```yaml - name: email_testing_with_attachment - description: Workflow to test sending an email notification via NewRelic with log step - workflowInputs: - destinationId: - type: String - steps: - - name: sendEmailNotification - type: action - action: newrelic.notification.sendEmail - version: '1' - inputs: - destinationId: ${{ .workflowInputs.destinationId }} - subject: "workflow notification" - message: "Workflow Email Notification Testing from local" - attachments: - - type: QUERY - query: "SELECT * FROM Log" - format: JSON - filename: "log_count.json" - selectors: - - name: success - expression: '.success' - - name: sessionId - expression: '.response.sessionId' - - name: attachments - expression: '.response.attachments' - - name: logOutput - type: action - action: newrelic.ingest.sendLogs - version: '1' - inputs: - logs: - - message: "Hello from cap check Testing staging server user2 : ${{ .steps.sendEmailNotification.outputs.result.attachments }}" - licenseKey: ${{ :secrets:STAGING_NEW_RELIC_LICENSE_KEY }} - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx b/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx deleted file mode 100644 index c723ac5f26e..00000000000 --- a/src/i18n/content/pt/docs/workflow-automation/setup-and-configuration/actions-catalog/others.mdx +++ /dev/null @@ -1,634 +0,0 @@ ---- -title: Ações de utilidade -tags: - - workflow automation - - workflow - - workflow automation actions - - utility actions -metaDescription: A list of available utility actions in the actions catalog for workflow definitions -freshnessValidatedDate: never -translationType: machine ---- - -Esta página fornece uma referência para as ações de utilitário disponíveis no catálogo de ações de automação de fluxo de trabalho. Essas ações permitem que você execute operações comuns de transformação de dados e utilitários em suas definições de fluxo de trabalho. - -## Ações de utilidade - - - - Esta ação é usada para transformar um timestamp Unix (ou timestamp da época) em data/hora. Possíveis referências: - - * [https://en.wikipedia.org/wiki/List\_of\_tz\_database\_time\_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) - * [https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT\_IDS](https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT_IDS) - - Consulte [a Epoch](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) para obter mais informações. - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Entrada - - Opcionalidade - - Tipo - - Descrição -
- **Timestamp** - - Obrigatório - - int - - Um número inteiro que representa o timestamp da época. Note que as épocas UNIX são o número de segundos após 1º de janeiro de 1970, meia-noite UTC (00:00). -
- **timestampUnit** - - Opcional - - corda - - Uma string representando a unidade do timestamp fornecido. Valores aceitáveis: SEGUNDOS, MILISSEGUNDOS (PADRÃO) -
- **ID do fuso horário** - - Opcional - - corda - - Uma string que representa o fuso horário para a data/hora desejada, padrão: UTC -
- **padrão** - - Opcional - - corda - - Uma string que representa o padrão para a data e hora desejadas, padrão: ISO-8601 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo - - Opcionalidade - - Tipo de dados - - Descrição -
- **data** - - Obrigatório - - corda - - Uma representação em formato de string de uma data. -
- **tempo** - - Obrigatório - - corda - - Uma representação em forma de string do tempo. -
- **data e hora** - - Obrigatório - - corda - - Uma representação em formato de string de data e hora. -
- **fuso horário** - - Obrigatório - - map - - Representação em mapa do ID do fuso horário e sua abreviação. -
-
- - - - - - - - - - - - - - - - - - - - - - -
- Exemplo - - Entrada de fluxo de trabalho - - Saídas -
- ```yaml - name: from_epoch - - workflowInputs: - timestamp: - type: Int - timestampUnit: - type: String - timezoneId: - type: String - pattern: - type: String - - steps: - - name: epochTime - type: action - action: utils.datetime.fromEpoch - version: 1 - inputs: - timestamp: ${{ .workflowInputs.timestamp }} - timezoneId: ${{ .workflowInputs.timezoneId }} - pattern: ${{ .workflowInputs.pattern }} - timestampUnit: ${{ .workflowInputs.timestampUnit }} - ``` - - ```json - mutation { - workflowAutomationStartWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { name: "from_epoch" } - workflowInputs: [ - {key: "timestamp", value: "1738236424003"} - {key: "timestampUnit", value: "MILLISECONDS"} - {key: "pattern", value: "yyyy-mm-dd HH:SS"} - {key: "timezoneId", value: "Asia/Kolkata"} - ] - ) { - runId - } - } - ``` - - ```json - { - "date": "2025-01-30", - "time": "16:57:04.003" - "datetime": "2025-01-30 16:00", - "timezone": { - "abbreviation": "IST", - "id": "Asia/Kolkata" - } - } - ``` -
-
-
-
-
-
- - - - Esta ação é usada para transformar vários tipos de entrada (JSON, mapa) em um formato CSV. - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Entrada - - Opcionalidade - - Tipo - - Descrição -
- **dados** - - Obrigatório - - qualquer - - Uma sequência de caracteres que representa dados a serem transformados em CSV, normalmente uma string JSON ou um mapa. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- Campo - - Opcionalidade - - Tipo de dados - - Descrição -
- **arquivo CSV** - - Obrigatório - - corda - - Representação em formato CSV dos dados recebidos. -
-
- - - - - - - - - - - - - - - - - - - - - -
- Exemplo - - Entrada de fluxo de trabalho - - Saídas -
- ```json - name: nrqltocsv - - steps: - - name: queryForLog - type: action - action: newrelic.nrql.query - version: 1 - inputs: - accountIds: ['${{ .workflowInputs.accountId }}'] - query: ${{ .workflowInputs.nrql }} - - - name: csv1 - type: action - action: utils.transform.toCSV - version: 1 - inputs: - data: ${{ .steps.queryForLog.outputs.results | tostring }} - ``` - - ```json - mutation { - startWorkflowRun( - scope: { type: ACCOUNT id: "12345678" } - definition: { - name: "nrqltocsv", - } - workflowInputs: [ - {key: "accountId" value: "12345678"} - {key: "nrql" value: "FROM TransactionError SELECT error.message, error.class, transactionName, request.uri, query WHERE appName like 'my-app-1%' AND error.expected IS FALSE SINCE 1 hour ago LIMIT 50"} - ] - ) - { runId } - } - ``` - -
-
-
-
-
-
- - - - Gere um UUID V4 compatível com a RFC. - - - - - Entradas - - - - Saídas - - - - Exemplo - - - - - - - - - - - - - - - - - - - - - - -
- Entrada - - Opcionalidade - - Tipo de dados - - Descrição -
- - - - -
-
- - - - - - - - - - - - - - - - - - - - - -
- Campo - - Tipo de dados - - Descrição -
- **uuid** - - corda - -
-
- - - - - - - - - - - - - - - - - - - - -
- Exemplo - - Entrada de fluxo de trabalho - - Saídas -
- - - nome: gerarUUID
passos: - - * nome: gerarUUID tipo: ação ação: utils.uuid.generate versão: 1 -
- ```json - { - "uuid": "c76bd606-5eaa-42bb-a847-4221fb49f83c", - } - ``` -
-
-
-
-
-
\ No newline at end of file diff --git a/src/nav/workflow-automation.yml b/src/nav/workflow-automation.yml index 61a0640c6c4..c78ec835758 100644 --- a/src/nav/workflow-automation.yml +++ b/src/nav/workflow-automation.yml @@ -8,6 +8,8 @@ pages: pages: - title: Set up AWS credentials path: /docs/workflow-automation/setup-and-configuration/set-up-aws-credentials + - title: Deploy AWS infrastructure with CloudFormation + path: /docs/workflow-automation/setup-and-configuration/deploy-aws-infrastructure-cloudformation - title: Create destinations and notifications path: /docs/workflow-automation/setup-and-configuration/create-destinations - title: Actions catalog @@ -15,18 +17,73 @@ pages: pages: - title: Actions catalog overview path: /docs/workflow-automation/setup-and-configuration/actions-catalog/actions-catalog + - title: Auth actions + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/auth + pages: + - title: JWT Create action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/auth/auth-jwt-create - title: AWS actions path: /docs/workflow-automation/setup-and-configuration/actions-catalog/aws + pages: + - title: AWS CloudWatch actions + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-cloudwatch + - title: AWS EC2 actions + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-ec2 + - title: AWS Execute API actions + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-execute-api + - title: AWS Lambda actions + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-lambda + - title: AWS S3 actions + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-s3 + - title: AWS SNS actions + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sns + - title: AWS SQS actions + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-sqs + - title: AWS Systems Manager actions + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/aws/aws-systemsmanager - title: HTTP actions path: /docs/workflow-automation/setup-and-configuration/actions-catalog/http + pages: + - title: HTTP GET action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-get + - title: HTTP PUT action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-put + - title: HTTP POST action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-post + - title: HTTP DELETE action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/http/http-delete - title: New Relic actions path: /docs/workflow-automation/setup-and-configuration/actions-catalog/new-relic + pages: + - title: New Relic Ingest action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-ingest + - title: New Relic NerdGraph action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nerdgraph + - title: New Relic Notification action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-notification + - title: New Relic NRDB action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/newrelic/newrelic-nrdb - title: Communication actions path: /docs/workflow-automation/setup-and-configuration/actions-catalog/communication + pages: + - title: Slack Chat action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/slack/slack-chat - title: PagerDuty actions path: /docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty + pages: + - title: PagerDuty Incident action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/pagerduty/pagerduty-incident - title: Other actions path: /docs/workflow-automation/setup-and-configuration/actions-catalog/others + pages: + - title: Script Run action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/utils/script-run + - title: DateTime action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-datetime + - title: Transform action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-transform + - title: UUID action + path: /docs/workflow-automation/setup-and-configuration/actions-catalog/utils/utils-uuid - title: Create a workflow automation path: /docs/workflow-automation/create-a-workflow-automation pages: diff --git a/static/images/python-script.webp b/static/images/python-script.webp new file mode 100644 index 00000000000..53a3f0e7361 Binary files /dev/null and b/static/images/python-script.webp differ