{ "registry_name": "Attune Standard Pack Index", "registry_url": "https://github.com/attune-system/index", "version": "1.0", "last_updated": "2026-09-04T11:26:16Z", "packs": [ { "ref": "activedirectory", "label": "Microsoft Active Directory", "description": "Curated Active Directory administration through reviewed PowerShell over verified WinRM HTTPS", "version": "0.1.1", "author": "Attune; adapted from work by Encore Technologies and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "active-directory", "identity", "microsoft", "windows-server", "winrm" ], "runtime_deps": [ "powershell-remoting", "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/activedirectory.git", "ref": "acd594e6e4bd1023d3eac28c35fa5c0c63a61e11", "checksum": "sha256:db9d9f7061935af61c0a58edf871891b5e33d6cd5cb8ee3125dbe49cae632e38" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/activedirectory/tar.gz/acd594e6e4bd1023d3eac28c35fa5c0c63a61e11", "checksum": "sha256:8b23b7a501dec1280ba94351bdb99f81a37ed3de7018d56d11997349c5e8100f" } ], "contents": { "actions": [ { "name": "computer_create", "description": "Create Computer using only modeled structured parameters" }, { "name": "computer_delete", "description": "Delete Computer using only modeled structured parameters" }, { "name": "computer_disable", "description": "Disable Computer using only modeled structured parameters" }, { "name": "computer_enable", "description": "Enable Computer using only modeled structured parameters" }, { "name": "computer_get", "description": "Get Computer using only modeled structured parameters" }, { "name": "computer_move", "description": "Move Computer using only modeled structured parameters" }, { "name": "computer_search", "description": "Search computers with modeled fields inside an allowed base; raw LDAP filters are not accepted" }, { "name": "computer_update", "description": "Update Computer using only modeled structured parameters" }, { "name": "default_password_policy_get", "description": "Get Default Domain Password Policy using only modeled structured parameters" }, { "name": "domain_get", "description": "Get Domain using only modeled structured parameters" }, { "name": "fine_grained_password_policy_search", "description": "Search Fine-Grained Password Policies using only modeled structured parameters" }, { "name": "forest_get", "description": "Get Forest using only modeled structured parameters" }, { "name": "group_create", "description": "Create Group using only modeled structured parameters" }, { "name": "group_delete", "description": "Delete Group using only modeled structured parameters" }, { "name": "group_get", "description": "Get Group using only modeled structured parameters" }, { "name": "group_member_add", "description": "Add one stable principal identity as a direct group member with exact confirmation" }, { "name": "group_member_list", "description": "List bounded direct group members; recursive expansion is never performed" }, { "name": "group_member_remove", "description": "Remove one stable principal identity from direct group membership with exact confirmation" }, { "name": "group_search", "description": "Search groups with modeled fields inside an allowed base; raw LDAP filters are not accepted" }, { "name": "group_update", "description": "Update Group using only modeled structured parameters" }, { "name": "ou_create", "description": "Create Organizational Unit using only modeled structured parameters" }, { "name": "ou_delete", "description": "Delete Organizational Unit using only modeled structured parameters" }, { "name": "ou_get", "description": "Get Organizational Unit using only modeled structured parameters" }, { "name": "ou_move", "description": "Move Organizational Unit using only modeled structured parameters" }, { "name": "ou_search", "description": "Search organizational units inside an allowed base; raw LDAP filters are not accepted" }, { "name": "ou_update", "description": "Update Organizational Unit using only modeled structured parameters" }, { "name": "principal_group_memberships", "description": "List bounded direct memberships for one stable principal identity without recursive expansion" }, { "name": "principal_lookup", "description": "Look Up Principal using only modeled structured parameters" }, { "name": "service_account_create", "description": "Create a current group managed service account; KDS and retrieval principals remain external" }, { "name": "service_account_delete", "description": "Delete Managed Service Account using only modeled structured parameters" }, { "name": "service_account_get", "description": "Get Managed Service Account using only modeled structured parameters" }, { "name": "service_account_search", "description": "Search managed service accounts inside an allowed base; raw LDAP filters are not accepted" }, { "name": "service_account_update", "description": "Update Managed Service Account using only modeled structured parameters" }, { "name": "user_create", "description": "Create User using only modeled structured parameters" }, { "name": "user_delete", "description": "Delete User using only modeled structured parameters" }, { "name": "user_disable", "description": "Disable User using only modeled structured parameters" }, { "name": "user_enable", "description": "Enable User using only modeled structured parameters" }, { "name": "user_expiration_set", "description": "Set User Expiration using only modeled structured parameters" }, { "name": "user_get", "description": "Get User using only modeled structured parameters" }, { "name": "user_password_reset", "description": "Reset one user password using a secret input and exact host/identity confirmation" }, { "name": "user_resultant_password_policy_get", "description": "Get User Resultant Password Policy using only modeled structured parameters" }, { "name": "user_search", "description": "Search users with modeled exact/prefix fields inside an allowed base; raw LDAP filters are not accepted" }, { "name": "user_unlock", "description": "Unlock User using only modeled structured parameters" }, { "name": "user_update", "description": "Update User using only modeled structured parameters" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "identity", "documentation_url": "https://learn.microsoft.com/en-us/powershell/module/activedirectory/?view=windowsserver2025-ps", "repository_url": "https://github.com/attune-packs/activedirectory", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-activedirectory", "source_revision": "2bdf09685f3d80e514eb5b586b344d41b35f063c", "source_version": "1.0.1", "license": "Apache-2.0", "default_branch": "main", "commit": "acd594e6e4bd1023d3eac28c35fa5c0c63a61e11", "stars": 0, "repository_id": 1334894113 }, "repository": "https://github.com/attune-packs/activedirectory", "email": "support@attune.systems", "homepage": "https://learn.microsoft.com/en-us/powershell/module/activedirectory/?view=windowsserver2025-ps", "dependencies": { "packs": [] } }, { "ref": "ansible", "label": "Ansible", "description": "Confined, guarded Ansible CLI actions for reviewed automation artifacts", "version": "0.1.1", "author": "Attune", "license": "Apache-2.0", "keywords": [ "ansible", "automation", "configuration", "infrastructure" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/ansible.git", "ref": "1fa23cbb289f30682bc3990a37999a9c282ae9ba", "checksum": "sha256:d828fda13798344bfa7229a73656b4f36e384995bc2013b87528c900fbe7c4f5" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/ansible/tar.gz/1fa23cbb289f30682bc3990a37999a9c282ae9ba", "checksum": "sha256:6ba7dfca01b287fb525c04c6ada95ea64ad58917879b25f3f7e05c4015e7faf8" } ], "contents": { "actions": [ { "name": "collection_install", "description": "Install collections from a confined requirements file into pack-confined state" }, { "name": "collection_list", "description": "List collections installed in pack-confined state using current JSON output" }, { "name": "command", "description": "Run ansible.builtin.command with an argv array after privileged-execution confirmation" }, { "name": "inventory_graph", "description": "Render a static YAML or INI inventory graph without variables" }, { "name": "inventory_list", "description": "Return the structured JSON representation of a static YAML or INI inventory" }, { "name": "module", "description": "Run a non-shell Ansible module with JSON arguments after privileged-execution confirmation" }, { "name": "playbook_check", "description": "Run one confined playbook in Ansible check mode; modules and plugins can still execute code" }, { "name": "playbook_run", "description": "Execute one reviewed playbook after credential-profile opt-in and exact confirmation" }, { "name": "playbook_syntax_check", "description": "Parse one confined playbook without executing tasks" }, { "name": "role_install", "description": "Install roles from a confined requirements file into pack-confined state" }, { "name": "role_list", "description": "List roles installed in pack-confined state" }, { "name": "role_remove", "description": "Remove one validated role name from pack-confined state" }, { "name": "vault_decrypt", "description": "Decrypt a confined Vault file to a distinct mode-0600 artifact; plaintext is not returned" }, { "name": "vault_encrypt", "description": "Encrypt a confined file to a distinct private output artifact without changing the source" }, { "name": "vault_rekey", "description": "Rekey a private copy of a confined Vault file and atomically publish a distinct artifact" }, { "name": "vault_view", "description": "Write decrypted Vault content to a distinct mode-0600 artifact without returning plaintext" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "infrastructure", "documentation_url": "https://github.com/attune-packs/ansible", "repository_url": "https://github.com/attune-packs/ansible", "source_revision": "9d505b4ba2ce1af70f42698e77508eea559a67af", "source_version": "1.1.0", "license": "Apache-2.0", "ansible_core_baseline": "2.21.3", "default_branch": "main", "commit": "1fa23cbb289f30682bc3990a37999a9c282ae9ba", "stars": 0, "repository_id": 1334894308 }, "repository": "https://github.com/attune-packs/ansible", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/ansible", "dependencies": { "packs": [] } }, { "ref": "attune", "label": "Attune", "description": "Meta-pack for interacting with Attune via its OpenAPI-generated Python client", "version": "0.2.0", "author": "Attune Team", "license": "NOASSERTION", "keywords": [ "api", "attune", "automation", "meta" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/attune.git", "ref": "0c23fdced0d5850eabd8c5ea94aaaa811dcbeb4f", "checksum": "sha256:784a4a6746f30a470ab9bb9380134451a8b051bb98c0cadc57a2f6258bcd3d1a" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/attune/tar.gz/0c23fdced0d5850eabd8c5ea94aaaa811dcbeb4f", "checksum": "sha256:363bf57f492b7b56f249ea6953f2ee96a516f4bdadafeea4bf4f87fd84fa3be9" } ], "contents": { "actions": [ { "name": "action_list", "description": "List actions with optional pack filter" }, { "name": "enqueue", "description": "Insert a single record into a work queue. Uses the queue's default priority unless one is provided." }, { "name": "enqueue_batch", "description": "Insert a collection of records into a work queue. Optional shared priority and metadata apply when not overridden per-item." }, { "name": "execution_get", "description": "Fetch a single Attune execution by ID" }, { "name": "execution_list", "description": "List Attune executions with server-side filtering" }, { "name": "execution_list_by_enforcement", "description": "List executions for an enforcement ID" }, { "name": "execution_list_by_status", "description": "List executions for a specific status" }, { "name": "execution_run", "description": "Request a new execution for an Attune action" }, { "name": "execution_stats", "description": "Fetch execution statistics" }, { "name": "inquiry_get", "description": "Fetch an inquiry by ID" }, { "name": "inquiry_list", "description": "List inquiries with filters" }, { "name": "inquiry_list_by_execution", "description": "List inquiries for a specific execution" }, { "name": "inquiry_list_by_status", "description": "List inquiries for a specific status" }, { "name": "inquiry_respond", "description": "Respond to an inquiry" }, { "name": "pack_get", "description": "Fetch a pack by ref" }, { "name": "pack_install", "description": "Install a pack from a remote source" }, { "name": "pack_latest_test", "description": "Fetch the latest pack test result" }, { "name": "pack_list", "description": "List packs" }, { "name": "pack_register", "description": "Register a local pack path" }, { "name": "pack_sync_workflows", "description": "Sync workflow files from a pack's filesystem contents into the database" }, { "name": "pack_test", "description": "Run pack tests" }, { "name": "pack_test_history", "description": "Fetch pack test history" }, { "name": "pack_validate_workflows", "description": "Validate workflows without syncing" }, { "name": "rule_create", "description": "Create a new rule" }, { "name": "rule_delete", "description": "Delete a rule" }, { "name": "rule_disable", "description": "Disable a rule" }, { "name": "rule_enable", "description": "Enable a rule" }, { "name": "rule_get", "description": "Fetch a single rule by reference" }, { "name": "rule_list", "description": "List rules with optional pack, action, trigger, or enabled filters" }, { "name": "rule_update", "description": "Update an existing rule" }, { "name": "sensor_disable", "description": "Disable a sensor" }, { "name": "sensor_enable", "description": "Enable a sensor" }, { "name": "sensor_get", "description": "Fetch a single sensor by reference" }, { "name": "sensor_list", "description": "List sensors with optional pack, trigger, or enabled filters" }, { "name": "trigger_create", "description": "Create a new trigger" }, { "name": "trigger_delete", "description": "Delete a trigger" }, { "name": "trigger_disable", "description": "Disable a trigger" }, { "name": "trigger_enable", "description": "Enable a trigger" }, { "name": "trigger_get", "description": "Fetch a single trigger by reference" }, { "name": "trigger_list", "description": "List triggers with optional pack or enabled filters" }, { "name": "trigger_update", "description": "Update an existing trigger" }, { "name": "webhook_disable", "description": "Disable webhooks for a trigger" }, { "name": "webhook_enable", "description": "Enable webhooks for a trigger" }, { "name": "webhook_regenerate", "description": "Regenerate the webhook key for a trigger" }, { "name": "workflow_create", "description": "Create a new workflow" }, { "name": "workflow_delete", "description": "Delete a workflow" }, { "name": "workflow_get", "description": "Fetch a workflow by ref" }, { "name": "workflow_list", "description": "List workflows with optional pack filter" }, { "name": "workflow_update", "description": "Update a workflow" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "system", "keywords": [ "attune", "api", "meta-pack", "automation", "openapi" ], "documentation_url": "https://docs.attune.io/packs/attune", "repository_url": "https://github.com/attune-io/attune", "python_dependencies": [ "attrs>=23.2.0", "httpx>=0.27.0", "python-dateutil>=2.9.0" ], "default_branch": "main", "commit": "0c23fdced0d5850eabd8c5ea94aaaa811dcbeb4f", "stars": 0, "repository_id": 1244979934 }, "repository": "https://github.com/attune-packs/attune", "email": "support@attune.io", "homepage": "https://docs.attune.io/packs/attune" }, { "ref": "attune_validation", "label": "Attune Validation", "description": "Deterministic fixtures for validating Attune pack-defined behavior", "version": "0.1.0", "author": "Attune Team", "license": "MIT", "keywords": [ "attune", "testing", "validation" ], "runtime_deps": [ "python3", "shell" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/attune_validation.git", "ref": "817cd46fc309131a67d43a1ba4bcf5e17668ec39", "checksum": "sha256:3b8332306916cb03cdae91931299be04c3c316310d5769e2a83ddacb5da6b840" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/attune_validation/tar.gz/817cd46fc309131a67d43a1ba4bcf5e17668ec39", "checksum": "sha256:32f8ba1ec8dcad7f0d1fe547b1af059a0c95213d32d044e678167cc79ac7424c" } ], "contents": { "actions": [ { "name": "conditional_echo", "description": "Echo synthetic queue payloads only when enabled and at or above the configured score" }, { "name": "echo_dotenv", "description": "Verify portable shell execution with scalar dotenv parameter delivery" }, { "name": "echo_json", "description": "Round-trip every supported structured parameter type without returning secret values" }, { "name": "enqueue_cache_item", "description": "Map one native cache entry into the validation conditional echo queue" }, { "name": "execution_context", "description": "Report non-secret Attune execution context and whether a scoped token was supplied" }, { "name": "file_json", "description": "Verify file parameter delivery and return a structured payload" }, { "name": "generate_cache_dataset", "description": "Generate deterministic synthetic records and publish them as a replacement cache generation" }, { "name": "placement_probe", "description": "Disabled fixture for validating action worker selectors, tolerations, and affinity metadata" }, { "name": "probe", "description": "Return a labeled object or fail predictably for workflow validation" }, { "name": "process_cache_batch", "description": "Count one native cache-iteration batch without returning record contents" }, { "name": "process_queue", "description": "Return deterministic queue acknowledgements selected by each validation item" }, { "name": "refresh_cache", "description": "Publish a complete replacement generation to the validation fixture cache" } ], "sensors": [ { "name": "sample_sensor", "description": "Emit deterministic typed events for enabled sample-event rules" } ], "triggers": [ { "name": "sample_event", "description": "Emit typed fixture data for sensor, event, rule, and action validation" } ], "rules": [ { "name": "sample_event_to_echo", "description": "Map a typed sensor event into the JSON echo action" } ], "workflows": [ { "name": "cache_iteration_probe", "description": "Traverse one pinned validation cache generation with native workflow iteration" }, { "name": "cache_to_queue_workflow", "description": "Generate a synthetic cache generation and enqueue each pinned record for conditional processing" }, { "name": "workflow_probe", "description": "Validate parallel fan-out, join, iteration, typed templates, and failure transitions" } ] }, "meta": { "category": "testing", "documentation_url": "https://github.com/attune-packs/attune_validation", "repository_url": "https://github.com/attune-packs/attune_validation", "keywords": [ "attune", "validation", "conformance", "testing" ], "default_branch": "main", "commit": "817cd46fc309131a67d43a1ba4bcf5e17668ec39", "stars": 0, "repository_id": 1344243841 }, "repository": "https://github.com/attune-packs/attune_validation", "email": "support@attune.io", "homepage": "https://github.com/attune-packs/attune_validation", "dependencies": { "packs": [ "core" ] } }, { "ref": "aws", "label": "Amazon Web Services", "description": "Curated, guarded AWS infrastructure actions backed by current boto3 and Attune Key profiles", "version": "1.0.0", "author": "Attune; adapted from StackStorm, Inc. and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "amazon", "aws", "cloud", "infrastructure", "integration" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/aws.git", "ref": "c9099596b5acb43e69ddf21e4266a9de38c18ab9", "checksum": "sha256:7bcfb912a1918d89ae927359395dff417745709ca61b7b5eba512c002fe72ba6" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/aws/tar.gz/c9099596b5acb43e69ddf21e4266a9de38c18ab9", "checksum": "sha256:94f948fdf44831de46a17663ef85e848fe23453b33bd4375c34b3d48794ef986" } ], "contents": { "actions": [ { "name": "autoscaling_describe_groups", "description": "Describe named or bounded Auto Scaling groups" }, { "name": "autoscaling_set_desired_capacity", "description": "Set desired capacity after exact group and capacity confirmation" }, { "name": "cloudformation_create_change_set", "description": "Create a named change set from a bounded inline template" }, { "name": "cloudformation_create_stack", "description": "Create a stack from an inline template with optional native idempotency token" }, { "name": "cloudformation_delete_change_set", "description": "Delete a named change set after exact stack/change-set confirmation" }, { "name": "cloudformation_delete_stack", "description": "Delete one stack after exact stack-name confirmation" }, { "name": "cloudformation_describe_change_set", "description": "Describe one named CloudFormation change set" }, { "name": "cloudformation_describe_stacks", "description": "Describe one stack or a bounded page of stacks" }, { "name": "cloudformation_execute_change_set", "description": "Execute a named change set after exact stack/change-set confirmation" }, { "name": "cloudformation_list_stacks", "description": "List bounded CloudFormation stack summaries" }, { "name": "cloudformation_update_stack", "description": "Update a stack after exact stack-name confirmation, with optional native token" }, { "name": "cloudformation_validate_template", "description": "Validate an inline CloudFormation template capped at the native 51,200-byte limit" }, { "name": "cloudformation_wait_change_set", "description": "Poll one change set until a terminal state with bounded delay and attempts" }, { "name": "cloudformation_wait_stack", "description": "Run an allowlisted stack waiter with bounded delay and attempts" }, { "name": "ec2_create_tags", "description": "Set tags on 1-100 explicitly identified EC2 instances" }, { "name": "ec2_delete_tags", "description": "Delete exact tags from EC2 instances after exact sorted-ID confirmation" }, { "name": "ec2_describe_images", "description": "Describe a bounded set of AMIs selected by IDs or owners" }, { "name": "ec2_describe_instances", "description": "Describe EC2 instances with bounded SDK pagination" }, { "name": "ec2_reboot_instances", "description": "Reboot EC2 instances after exact sorted-ID confirmation" }, { "name": "ec2_start_instances", "description": "Start 1-100 explicitly identified EC2 instances without mutation retries" }, { "name": "ec2_stop_instances", "description": "Stop EC2 instances after exact sorted-ID confirmation; never force stops" }, { "name": "ec2_terminate_instances", "description": "Terminate explicitly identified instances after exact high-risk confirmation" }, { "name": "iam_get_role", "description": "Read one IAM role inventory record" }, { "name": "iam_get_user", "description": "Read one IAM user inventory record" }, { "name": "iam_list_groups", "description": "List a bounded set of IAM group inventory records" }, { "name": "iam_list_policies", "description": "List bounded local or AWS-managed policy inventory" }, { "name": "iam_list_roles", "description": "List a bounded set of IAM role inventory records" }, { "name": "iam_list_users", "description": "List a bounded set of IAM user inventory records" }, { "name": "lambda_get_function", "description": "Read Lambda function configuration and code location metadata" }, { "name": "lambda_invoke", "description": "Invoke one Lambda with bounded request/response payloads and no mutation retry" }, { "name": "lambda_list_functions", "description": "List Lambda functions with bounded SDK pagination" }, { "name": "rds_describe_clusters", "description": "Describe one or a bounded set of RDS DB clusters" }, { "name": "rds_describe_instances", "description": "Describe one or a bounded set of RDS DB instances" }, { "name": "rds_start_cluster", "description": "Start one RDS DB cluster without automatic mutation retries" }, { "name": "rds_start_instance", "description": "Start one RDS DB instance without automatic mutation retries" }, { "name": "rds_stop_cluster", "description": "Stop one RDS DB cluster after exact identifier confirmation" }, { "name": "rds_stop_instance", "description": "Stop one RDS DB instance after exact identifier confirmation" }, { "name": "route53_change_resource_record_sets", "description": "Apply up to 1,000 explicit DNS changes after hosted-zone confirmation" }, { "name": "route53_get_change", "description": "Read the status of one Route 53 change" }, { "name": "route53_list_hosted_zones", "description": "List hosted zones with bounded SDK pagination" }, { "name": "route53_list_resource_record_sets", "description": "List bounded record sets in one hosted zone" }, { "name": "s3_download_object", "description": "Atomically download one bounded S3 object into the Attune artifact directory" }, { "name": "s3_head_object", "description": "Read S3 object metadata without downloading its body" }, { "name": "s3_list_buckets", "description": "List a bounded number of S3 buckets" }, { "name": "s3_list_objects", "description": "List S3 objects with bounded SDK pagination" }, { "name": "s3_upload_object", "description": "Upload one confined Attune artifact using one PutObject attempt" }, { "name": "sts_get_caller_identity", "description": "Return the account, ARN, and principal ID for the resolved profile" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://boto3.amazonaws.com/v1/documentation/api/1.43.72/reference/services/index.html", "repository_url": "https://github.com/attune-packs/aws", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-aws", "source_version": "2.0.2", "source_revision": "cc8ff4fa335229178ec24586aff4a69f9a270ecb", "api_baseline": "boto3/botocore 1.43.72", "license": "Apache-2.0", "python_dependencies": [ "attune-sdk>=0.1.0", "boto3>=1.43.72,<2.0.0" ], "default_branch": "main", "commit": "c9099596b5acb43e69ddf21e4266a9de38c18ab9", "stars": 0, "repository_id": 1334762405 }, "repository": "https://github.com/attune-packs/aws", "email": "support@attune.systems", "homepage": "https://boto3.amazonaws.com/v1/documentation/api/1.43.72/reference/services/index.html", "dependencies": { "packs": [] } }, { "ref": "azure", "label": "Microsoft Azure", "description": "Secure Azure Resource Manager, Microsoft Graph, Key Vault, and Blob Storage automation.", "version": "1.0.0", "author": "Attune Community", "license": "Apache-2.0", "keywords": [ "arm", "azure", "managed-identity", "microsoft", "microsoft-graph" ], "runtime_deps": [], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/azure.git", "ref": "ff14ab947df4ad0752403f32ff618a07860d1a2f", "checksum": "sha256:8f32dcc6e19d6051bfd69f64ae73e8821ac4ebc1e9883f1febe24982e971d26e" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/azure/tar.gz/ff14ab947df4ad0752403f32ff618a07860d1a2f", "checksum": "sha256:6276472db70f092ad5932ef1dd6a4cbb6c3d6828057a6b0df28274c45fa97db1" } ], "contents": { "actions": [ { "name": "blob_download", "description": "Download only into a new file in the worker artifact directory." }, { "name": "blob_list", "description": "List blob metadata with bounded pagination." }, { "name": "blob_upload", "description": "Upload only from the worker artifact directory." }, { "name": "deployment_create_or_update", "description": "Create or update an ARM deployment after exact confirmation and poll to completion." }, { "name": "deployment_delete", "description": "Delete ARM deployment history after exact confirmation." }, { "name": "deployment_status", "description": "Get ARM deployment status." }, { "name": "deployment_validate", "description": "Validate an ARM deployment and poll to completion." }, { "name": "graph_groups_create", "description": "Create a non-role-assignable Microsoft Entra security group." }, { "name": "graph_groups_delete", "description": "Delete a non-role-assignable group after exact confirmation." }, { "name": "graph_groups_get", "description": "Get selected fields for one Microsoft Graph group." }, { "name": "graph_groups_list", "description": "List selected Microsoft Graph group fields." }, { "name": "graph_groups_update", "description": "Update group name/description." }, { "name": "graph_memberships_add", "description": "Add a verified user/group to a non-role-assignable group after exact confirmation." }, { "name": "graph_memberships_list", "description": "List direct group members." }, { "name": "graph_memberships_remove", "description": "Remove a direct member from a non-role-assignable group after exact confirmation." }, { "name": "graph_users_create", "description": "Create a Microsoft Entra user; the initial password is never returned." }, { "name": "graph_users_delete", "description": "Delete a user after exact confirmation." }, { "name": "graph_users_get", "description": "Get selected fields for one Microsoft Graph user." }, { "name": "graph_users_list", "description": "List selected Microsoft Graph user fields." }, { "name": "graph_users_update", "description": "Update an allowlisted subset of user profile fields." }, { "name": "keyvault_secret_delete", "description": "Delete a Key Vault secret after exact confirmation." }, { "name": "keyvault_secret_list_metadata", "description": "List Key Vault secret metadata; values are never retrieved." }, { "name": "keyvault_secret_set", "description": "Set a Key Vault secret without returning its value." }, { "name": "nic_create_or_update", "description": "Create or update a network interface and poll to completion." }, { "name": "nic_delete", "description": "Delete a network interface after exact confirmation." }, { "name": "nic_get", "description": "Get one network interface." }, { "name": "nic_list", "description": "List network interface resources." }, { "name": "nsg_create_or_update", "description": "Create or update a network security group and poll to completion." }, { "name": "nsg_delete", "description": "Delete a network security group after exact confirmation." }, { "name": "nsg_get", "description": "Get one network security group." }, { "name": "nsg_list", "description": "List network security group resources." }, { "name": "public_ip_create_or_update", "description": "Create or update a public IP and poll to completion." }, { "name": "public_ip_delete", "description": "Delete a public IP after exact confirmation." }, { "name": "public_ip_get", "description": "Get one public IP." }, { "name": "public_ip_list", "description": "List public IP resources." }, { "name": "resource_groups_create_or_update", "description": "Create or update a resource group." }, { "name": "resource_groups_delete", "description": "Delete a resource group after exact confirmation." }, { "name": "resource_groups_get", "description": "Get one resource group." }, { "name": "resource_groups_list", "description": "List resource groups in the configured subscription." }, { "name": "storage_accounts_create_or_update", "description": "Create a storage account and poll to completion." }, { "name": "storage_accounts_delete", "description": "Delete a storage account after exact confirmation." }, { "name": "storage_accounts_get", "description": "Get storage account metadata." }, { "name": "storage_accounts_list", "description": "List storage accounts." }, { "name": "subnet_create_or_update", "description": "Create or update a subnet and poll to completion." }, { "name": "subnet_delete", "description": "Delete a subnet after exact confirmation." }, { "name": "subnet_get", "description": "Get one subnet." }, { "name": "subnet_list", "description": "List subnets in a virtual network." }, { "name": "subscriptions_list", "description": "List subscriptions visible to the profile tenant." }, { "name": "vm_create_or_update", "description": "Create or update a virtual machine and poll to completion." }, { "name": "vm_deallocate", "description": "Deallocate a virtual machine and poll to completion." }, { "name": "vm_delete", "description": "Delete a virtual machine after exact confirmation." }, { "name": "vm_get", "description": "Get a virtual machine and instance view." }, { "name": "vm_list", "description": "List virtual machines, optionally scoped to a resource group." }, { "name": "vm_restart", "description": "Restart a virtual machine and poll to completion." }, { "name": "vm_start", "description": "Start a virtual machine and poll to completion." }, { "name": "vm_stop", "description": "Power off a virtual machine and poll to completion." }, { "name": "vnet_create_or_update", "description": "Create or update a virtual network and poll to completion." }, { "name": "vnet_delete", "description": "Delete a virtual network after exact confirmation." }, { "name": "vnet_get", "description": "Get one virtual network." }, { "name": "vnet_list", "description": "List virtual network resources." } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "uncategorized", "default_branch": "main", "commit": "ff14ab947df4ad0752403f32ff618a07860d1a2f", "stars": 0, "repository_id": 1334762950 }, "repository": "https://github.com/attune-packs/azure", "email": "maintainers@attune.dev" }, { "ref": "cloudflare", "label": "Cloudflare", "description": "Guarded Cloudflare API v4 actions for accounts, zones, DNS, cache, settings, and ruleset inspection", "version": "1.0.0", "author": "Attune; adapted from work by Encore Technologies and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "cache", "cdn", "cloudflare", "dns", "integration", "rulesets" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/cloudflare.git", "ref": "fb6e30f9aad38f24a885603463a23dca70cb3885", "checksum": "sha256:db9947aa0b34ff414f356661c1229b57e11c9f75027eb14d526cecba9aa6f781" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/cloudflare/tar.gz/fb6e30f9aad38f24a885603463a23dca70cb3885", "checksum": "sha256:7db7ce6cf96a16c02a8b8ef7ea243468e8101e0fef4f605155953e5a531f588f" } ], "contents": { "actions": [ { "name": "account_get", "description": "Retrieve one account by its account ID" }, { "name": "account_list", "description": "List accessible accounts with bounded page pagination" }, { "name": "cache_purge_everything", "description": "Purge every cached object only after boolean, exact zone ID, and phrase confirmation; never retried" }, { "name": "cache_purge_hosts", "description": "Purge 1-100 complete host cache scopes only after explicit broad-scope confirmation; never retried" }, { "name": "cache_purge_prefixes", "description": "Purge 1-100 hostname/path prefixes only after explicit broad-scope confirmation; never retried" }, { "name": "cache_purge_tags", "description": "Purge 1-100 cache tags only after explicit broad-scope confirmation; never retried" }, { "name": "cache_purge_urls", "description": "Purge 1-100 explicit HTTP(S) URLs without following or fetching those URLs; never retried" }, { "name": "dns_record_batch", "description": "Apply validated deletes, full puts, and posts in Cloudflare order; KV propagation is not atomic and patches are rejected" }, { "name": "dns_record_create", "description": "Create one validated DNS record; this non-idempotent request is never retried" }, { "name": "dns_record_delete", "description": "Delete one record only after boolean and exact-ID confirmation; never retried" }, { "name": "dns_record_get", "description": "Retrieve one DNS record within an explicitly identified zone" }, { "name": "dns_record_list", "description": "List and filter zone DNS records with bounded page pagination" }, { "name": "dns_record_update", "description": "Fully overwrite one DNS record with PUT; omitted fields are not preserved and the request is never retried" }, { "name": "ruleset_get", "description": "Read-only inspection of the latest account or zone ruleset and its rules" }, { "name": "ruleset_list", "description": "Read-only account or zone ruleset summaries with bounded cursor pagination" }, { "name": "zone_get", "description": "Retrieve one zone by its zone ID, including its owning account" }, { "name": "zone_list", "description": "List zones with explicit account filtering and bounded page pagination" }, { "name": "zone_setting_get", "description": "Retrieve one setting for one explicitly identified zone" }, { "name": "zone_setting_list", "description": "List all available settings for one explicitly identified zone" }, { "name": "zone_setting_update", "description": "Patch one zone setting with exactly one current value or ssl_recommender enabled flag; never retried" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://developers.cloudflare.com/api/", "repository_url": "https://github.com/attune-packs/cloudflare", "source_version": "1.0.1 (5d7f7c25768251430754c71a171f9786e48d4ab7)", "source_revision": "5d7f7c25768251430754c71a171f9786e48d4ab7", "license": "Apache-2.0", "python_dependencies": [ "attune-sdk>=0.1.0", "requests>=2.32.0,<3.0.0" ], "default_branch": "main", "commit": "fb6e30f9aad38f24a885603463a23dca70cb3885", "stars": 0, "repository_id": 1334730988 }, "repository": "https://github.com/attune-packs/cloudflare", "email": "support@attune.systems", "homepage": "https://developers.cloudflare.com/api/", "dependencies": { "packs": [] } }, { "ref": "consul", "label": "HashiCorp Consul", "description": "Safe Consul HTTP API actions with Attune Key-backed ACL and TLS credentials", "version": "0.1.0", "author": "Attune; adapted from work by James Fryman and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "consul", "hashicorp", "integration", "key-value", "service-discovery" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/consul.git", "ref": "c76fb7698b0e1b3d85f4309a0be808b4bae773be", "checksum": "sha256:06e8bde94ea1f52b70ea08fb0649edff325f340bfe63efa3e793d07da869915a" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/consul/tar.gz/c76fb7698b0e1b3d85f4309a0be808b4bae773be", "checksum": "sha256:2d477488d7b588358ecc984684a6a60c62d8f902ae2f475b34cf9ab7049dfdf6" } ], "contents": { "actions": [ { "name": "agent_maintenance", "description": "Enable or disable maintenance mode for the selected local Consul agent" }, { "name": "agent_members", "description": "List gossip members visible to the selected Consul agent" }, { "name": "catalog_node", "description": "Retrieve a Consul catalog node and its registered services" }, { "name": "catalog_nodes", "description": "List nodes registered in a Consul datacenter" }, { "name": "catalog_service", "description": "List catalog nodes providing a named Consul service" }, { "name": "catalog_services", "description": "List services and tags registered in a Consul datacenter" }, { "name": "health_node", "description": "List health checks associated with a Consul node" }, { "name": "health_service", "description": "List health checks associated with a named Consul service" }, { "name": "kv_delete", "description": "Delete one Consul KV key, or explicitly delete a prefix, with optional CAS" }, { "name": "kv_get", "description": "Read one Consul KV entry and safely decode its base64 value" }, { "name": "kv_list", "description": "List Consul KV keys below a prefix without returning values" }, { "name": "kv_put", "description": "Create or update one Consul KV value with optional CAS" }, { "name": "lock_acquire", "description": "Attempt one atomic Consul KV lock acquisition using an existing session" }, { "name": "lock_release", "description": "Release a Consul KV lock only when held by the supplied existing session" }, { "name": "service_deregister", "description": "Deregister a service and its associated check from the local Consul agent" }, { "name": "service_maintenance", "description": "Enable or disable maintenance mode for a local Consul service" }, { "name": "service_register", "description": "Register a service and optional checks with the local Consul agent" }, { "name": "session_create", "description": "Create a current Consul session using NodeChecks and optional service checks" }, { "name": "session_destroy", "description": "Idempotently destroy a Consul session and invalidate its locks" }, { "name": "session_info", "description": "Read one Consul session, optionally using a bounded blocking query" }, { "name": "session_renew", "description": "Renew a TTL-backed Consul session once" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://developer.hashicorp.com/consul/api-docs", "repository_url": "https://github.com/attune-packs/consul", "source_revision": "54507fd18111e30307370c13a92357da32d61dab", "source_version": "2.0.1", "license": "Apache-2.0", "default_branch": "main", "commit": "c76fb7698b0e1b3d85f4309a0be808b4bae773be", "stars": 0, "repository_id": 1334710993 }, "repository": "https://github.com/attune-packs/consul", "email": "support@attune.systems", "homepage": "https://developer.hashicorp.com/consul/api-docs", "dependencies": { "packs": [] } }, { "ref": "datadog", "label": "Datadog", "description": "Current Datadog monitor, downtime, event, metric, host, tag, and service-check operations", "version": "0.1.0", "author": "Attune; adapted from work by Lisa Bekdache and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "datadog", "events", "integration", "metrics", "monitoring" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/datadog.git", "ref": "6bece8faaec6bbedc4cfee321e9b356924af0335", "checksum": "sha256:bcca2c40437e5c6fac148ec718b2784380640e5c6bac681dd1fd5f5b04df7aba" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/datadog/tar.gz/6bece8faaec6bbedc4cfee321e9b356924af0335", "checksum": "sha256:67dcdfdf5c594422f8a4225ab56062497bf5069b2e210e17e9603b2a3a8b2e25" } ], "contents": { "actions": [ { "name": "downtime_cancel", "description": "Cancel one API v2 downtime by UUID in one non-retried request" }, { "name": "downtime_get", "description": "Get one API v2 downtime by UUID" }, { "name": "downtime_list", "description": "List API v2 downtimes with bounded offset pagination" }, { "name": "downtime_schedule", "description": "Schedule current API v2 downtime from a JSON:API request object; sent exactly once" }, { "name": "event_list", "description": "List Event Management API v2 events with bounded cursor pagination" }, { "name": "event_post", "description": "Post one Event Management API v2 event to the trusted site intake host; sent exactly once" }, { "name": "host_list", "description": "List API v1 hosts with bounded start/count pagination" }, { "name": "host_mute", "description": "Mute notifications for one API v1 host in one non-retried request" }, { "name": "host_unmute", "description": "Unmute notifications for one API v1 host in one non-retried request" }, { "name": "metric_query", "description": "Query API v1 timeseries points; response bytes are bounded by credential policy" }, { "name": "metric_submit", "description": "Submit metric series to API v2 once; Datadog accepts duplicates, so callers own deduplication" }, { "name": "monitor_create", "description": "Create one API v1 monitor; this mutation is sent exactly once and is not automatically idempotent" }, { "name": "monitor_delete", "description": "Delete an API v1 monitor in one non-retried request" }, { "name": "monitor_get", "description": "Get one monitor through API v1" }, { "name": "monitor_list", "description": "List monitors through the current API v1 endpoint with bounded pagination" }, { "name": "monitor_mute", "description": "Mute one monitor by creating a current API v2 downtime in one non-retried request" }, { "name": "monitor_unmute", "description": "Unmute a monitor by cancelling the API v2 downtime returned by monitor_mute" }, { "name": "monitor_update", "description": "Replace supplied fields on an API v1 monitor in one non-retried request" }, { "name": "service_check_submit", "description": "Submit useful current API v1 service checks once; duplicate submissions are caller-controlled" }, { "name": "tag_add_host", "description": "Add API v1 host tags in one non-retried request; repeated identical calls are set-like" }, { "name": "tag_delete_host", "description": "Delete host tags for an API v1 source in one non-retried request" }, { "name": "tag_get_host", "description": "Get API v1 tags for one host" }, { "name": "tag_list_hosts", "description": "Get all API v1 host tags, optionally for one source" }, { "name": "tag_update_host", "description": "Replace API v1 host tags in one non-retried request; repeated identical calls are idempotent" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "monitoring", "documentation_url": "https://docs.datadoghq.com/api/latest/", "repository_url": "https://github.com/attune-packs/datadog", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-datadog", "source_version": "1.0.2", "source_revision": "8ade8fd35cdd30f124206425abfa8738438bd3bc", "source_revision_date": "2024-09-30T21:44:34Z", "api_review_date": "2026-08-14", "license": "Apache-2.0", "default_branch": "main", "commit": "6bece8faaec6bbedc4cfee321e9b356924af0335", "stars": 0, "repository_id": 1334731225 }, "repository": "https://github.com/attune-packs/datadog", "email": "support@attune.systems", "homepage": "https://docs.datadoghq.com/api/latest/", "dependencies": { "packs": [] } }, { "ref": "docker", "label": "Docker Engine", "description": "Guarded Docker Engine image and container operations with negotiated API versions", "version": "0.1.0", "author": "Attune; adapted from work by StackStorm and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "containers", "docker", "images", "infrastructure" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/docker.git", "ref": "dad0ffaf190754f4f7d3927c50fd3d1f6366d782", "checksum": "sha256:2295b92a813eba30a399d8ff72b910fde46a448517480ab9a6833cd2c7a8f362" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/docker/tar.gz/dad0ffaf190754f4f7d3927c50fd3d1f6366d782", "checksum": "sha256:afad0b5ff7d331794aa597f8c30e1947f57acf4115d5132471bdd8d5430514c2" } ], "contents": { "actions": [ { "name": "container_create", "description": "Create a resource-bounded container without mounts or privileged capabilities" }, { "name": "container_exec", "description": "Execute a bounded argv command without shell, stdin, TTY, or privileged mode" }, { "name": "container_inspect", "description": "Return selected container state without environment or label values" }, { "name": "container_logs", "description": "Read bounded non-following container logs" }, { "name": "container_remove", "description": "Remove a stopped container without force or volume deletion after exact confirmation" }, { "name": "container_restart", "description": "Restart a container after an exact confirmation" }, { "name": "container_start", "description": "Start an existing container without implicit create or pull" }, { "name": "container_stop", "description": "Stop a container after an exact confirmation" }, { "name": "image_build", "description": "Build and tag an image from a confined artifact context" }, { "name": "image_inspect", "description": "Return selected non-secret image metadata" }, { "name": "image_list", "description": "List bounded selected image metadata" }, { "name": "image_pull", "description": "Pull one image with optional pack-owned registry credentials" }, { "name": "image_push", "description": "Push one image with bounded status output and explicit credentials" }, { "name": "image_remove", "description": "Remove one image without force after an exact confirmation" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "infrastructure", "documentation_url": "https://github.com/attune-packs/docker", "repository_url": "https://github.com/attune-packs/docker", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-docker", "source_version": "1.0.0", "source_revision": "50cebd7f7d59272d09cd34261257327bff17f97e", "license": "Apache-2.0", "default_branch": "main", "commit": "dad0ffaf190754f4f7d3927c50fd3d1f6366d782", "stars": 0, "repository_id": 1334733826 }, "repository": "https://github.com/attune-packs/docker", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/docker", "dependencies": { "packs": [] } }, { "ref": "elasticsearch", "label": "Elasticsearch", "description": "Safe, curated Elasticsearch 8 and 9 REST operations", "version": "1.0.0", "author": "Attune Community", "license": "Apache-2.0", "keywords": [ "elasticsearch", "operations", "search" ], "runtime_deps": [ "python3" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/elasticsearch.git", "ref": "5c5b378c93e542873fc80bf9a1cfbf8fc63748ac", "checksum": "sha256:e1673631eba47366417a09f43e6b725e64e88bdb382d481d6571061e01413b62" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/elasticsearch/tar.gz/5c5b378c93e542873fc80bf9a1cfbf8fc63748ac", "checksum": "sha256:0b299f38fa0a98b7ffbada96702a0edbd88d49dade2ccf640bfc8eb791f2afa7" } ], "contents": { "actions": [ { "name": "aliases", "description": "List aliases or atomically apply bounded add/remove alias changes" }, { "name": "cluster", "description": "Get Elasticsearch cluster health, root information, or cluster statistics" }, { "name": "data_streams", "description": "List all or one concrete Elasticsearch data stream" }, { "name": "document", "description": "Get, create/index, update, delete, or bulk-write documents with concurrency and size controls" }, { "name": "ilm", "description": "Get, put, or delete ILM policies and inspect ILM status or concrete index lifecycle state" }, { "name": "index", "description": "Curated Elasticsearch index read and lifecycle operations using concrete names" }, { "name": "search", "description": "Search or count concrete Elasticsearch indices with bounded windows and scripts disabled" }, { "name": "snapshot", "description": "List repositories and safely list, create, inspect, restore, or delete snapshots" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "data", "keywords": [ "elasticsearch", "ilm", "snapshots" ], "source_url": "https://github.com/StackStorm-Exchange/stackstorm-elasticsearch", "source_version": "v2.0.1", "source_revision": "9aba2b68da26ec356b6c533d902e560ff76c4980", "source_license": "Apache-2.0", "compatibility": [ "Elasticsearch 8", "Elasticsearch 9" ], "default_branch": "main", "commit": "5c5b378c93e542873fc80bf9a1cfbf8fc63748ac", "stars": 0, "repository_id": 1334758980 }, "repository": "https://github.com/attune-packs/elasticsearch", "email": "community@attune.io" }, { "ref": "foreman", "label": "Foreman and Katello", "description": "Safe Foreman API v2 actions with optional Katello, Remote Execution, and Tasks support", "version": "0.1.0", "author": "Attune; adapted from work by Daniel Chamot and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "foreman", "integration", "katello", "provisioning", "satellite" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/foreman.git", "ref": "92ab199e623f8baa5f22214c9ce729a1a138af28", "checksum": "sha256:0fb00251076874616adb137752b78e8d020e73dd5d6cbe41380a96faf4e18dd3" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/foreman/tar.gz/92ab199e623f8baa5f22214c9ce729a1a138af28", "checksum": "sha256:5952771bdcca94b48d030267aa41a253752396ae8e25b285f17264ad5352390c" } ], "contents": { "actions": [ { "name": "compute_resources_get", "description": "Get one Foreman compute resource" }, { "name": "compute_resources_list", "description": "List Foreman compute resources with bounded pagination" }, { "name": "foreman_task_status", "description": "Read or bounded-poll one Foreman Tasks UUID" }, { "name": "hostgroups_get", "description": "Get one host group without requesting hidden parameter values" }, { "name": "hostgroups_list", "description": "List host groups with bounded search and taxonomy scope" }, { "name": "hosts_build", "description": "Place exactly one scoped host into provisioning build mode" }, { "name": "hosts_create", "description": "Create a scoped host without overwrite or implicit build mode" }, { "name": "hosts_delete", "description": "Delete exactly one scoped host after exact-ID confirmation" }, { "name": "hosts_get", "description": "Get one Foreman host by ID or name with optional taxonomy scope" }, { "name": "hosts_list", "description": "List Foreman hosts with optional organization/location scope" }, { "name": "hosts_power", "description": "Read host power state or run one explicitly confirmed power operation" }, { "name": "hosts_update", "description": "Update selected host fields; host-group changes require exact confirmation" }, { "name": "katello_activation_keys_create", "description": "Create a scoped activation key using current content-view-environment fields" }, { "name": "katello_activation_keys_delete", "description": "Delete one activation key after exact-ID confirmation" }, { "name": "katello_activation_keys_get", "description": "Get one activation key; requires Katello" }, { "name": "katello_activation_keys_list", "description": "List activation keys in one required organization; requires Katello" }, { "name": "katello_activation_keys_update", "description": "Update selected activation-key fields in one organization" }, { "name": "katello_content_views_create", "description": "Create a content view in one explicit organization" }, { "name": "katello_content_views_get", "description": "Get one Katello content view" }, { "name": "katello_content_views_list", "description": "List Katello content views with optional organization scope" }, { "name": "katello_content_views_publish", "description": "Start an explicitly confirmed asynchronous content-view publish" }, { "name": "katello_content_views_update", "description": "Update selected fields on one Katello content view" }, { "name": "katello_lifecycle_environments_create", "description": "Create an environment at an explicit prior point in one organization" }, { "name": "katello_lifecycle_environments_delete", "description": "Delete one scoped lifecycle environment after exact-ID confirmation" }, { "name": "katello_lifecycle_environments_get", "description": "Get one lifecycle environment; requires Katello" }, { "name": "katello_lifecycle_environments_list", "description": "List lifecycle environments with optional organization scope" }, { "name": "katello_lifecycle_environments_update", "description": "Start an asynchronous update of one scoped lifecycle environment" }, { "name": "locations_get", "description": "Get one Foreman location by ID or name" }, { "name": "locations_list", "description": "List Foreman locations with bounded pagination and search" }, { "name": "organizations_get", "description": "Get one Foreman organization by ID or name" }, { "name": "organizations_list", "description": "List Foreman organizations with bounded pagination and search" }, { "name": "ping", "description": "Read Foreman and installed component health from API v2" }, { "name": "provisioning_templates_create", "description": "Create a provisioning template with explicit organization and location associations" }, { "name": "provisioning_templates_get", "description": "Get one provisioning template from the current API route" }, { "name": "provisioning_templates_list", "description": "List current provisioning_templates API resources with taxonomy scope" }, { "name": "provisioning_templates_update", "description": "Update selected fields on one provisioning template" }, { "name": "remote_job_invocations_create", "description": "Invoke a template or feature against one explicitly confirmed target query" }, { "name": "remote_job_invocations_get", "description": "Get one job invocation; requires the Remote Execution plugin" }, { "name": "remote_job_invocations_list", "description": "List job invocations; requires the Remote Execution plugin" }, { "name": "status", "description": "Read the lightweight Foreman application status endpoint" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://apidocs.theforeman.org/foreman/latest/apidoc/v2.html", "repository_url": "https://github.com/attune-packs/foreman", "source_revision": "7b71c642283b7c69613a3b23fb31917087a593e8", "source_version": "2.1.1", "license": "Apache-2.0", "default_branch": "main", "commit": "92ab199e623f8baa5f22214c9ce729a1a138af28", "stars": 0, "repository_id": 1334730559 }, "repository": "https://github.com/attune-packs/foreman", "email": "support@attune.systems", "homepage": "https://apidocs.theforeman.org/foreman/latest/apidoc/v2.html", "dependencies": { "packs": [] } }, { "ref": "freeipa", "label": "FreeIPA JSON-RPC", "description": "Curated FreeIPA identity, policy, DNS, service, and certificate actions", "version": "0.1.0", "author": "Attune; adapted from work by Encore Technologies and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "dns", "freeipa", "identity", "integration", "ipa", "kerberos", "sudo" ], "runtime_deps": [ "curl", "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/freeipa.git", "ref": "593ab9d6dee8e2a6abdaf53b89e46fa0e4b37184", "checksum": "sha256:39a67ccfcebc2deb3bccbb30e23b2404bc7a6ce2947cebb42dcaef75078ae67b" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/freeipa/tar.gz/593ab9d6dee8e2a6abdaf53b89e46fa0e4b37184", "checksum": "sha256:fb31916d2a967ba8865b4d3f6b83abb2d06c5798f45b75417c47a96e9fed8b3e" } ], "contents": { "actions": [ { "name": "certificate_get", "description": "Get certificate metadata by serial while redacting certificate and chain bytes" }, { "name": "certificate_request", "description": "Submit a Key-backed PKCS#10 CSR for an existing principal; certificate bytes are redacted" }, { "name": "certificate_revoke", "description": "Revoke one certificate serial with an RFC 5280 reason and exact confirmation" }, { "name": "certificate_status", "description": "Get one certificate request status without certificate bytes" }, { "name": "dns_record_add", "description": "Idempotently add exact values for one curated RR type" }, { "name": "dns_record_delete", "description": "Delete every RR type and value at one owner name with exact confirmation" }, { "name": "dns_record_get", "description": "Get all curated values at one owner name" }, { "name": "dns_record_list", "description": "Search records in one exact zone with a bounded limit" }, { "name": "dns_record_remove", "description": "Idempotently remove only named values for one curated RR type" }, { "name": "dns_zone_create", "description": "Create a zone using an explicit restricted SOA and forwarding contract" }, { "name": "dns_zone_delete", "description": "Delete a zone and every contained record with exact blast-radius confirmation" }, { "name": "dns_zone_disable", "description": "Disable one exact DNS zone with confirmation" }, { "name": "dns_zone_enable", "description": "Enable one exact DNS zone" }, { "name": "dns_zone_get", "description": "Get one exact authoritative DNS zone" }, { "name": "dns_zone_list", "description": "Search authoritative DNS zones with a bounded result limit" }, { "name": "dns_zone_update", "description": "Update restricted DNS zone policy with exact confirmation" }, { "name": "group_create", "description": "Create a POSIX, non-POSIX, or external group" }, { "name": "group_delete", "description": "Delete one exact group with confirmation" }, { "name": "group_get", "description": "Get one group and direct membership" }, { "name": "group_list", "description": "Search groups with a bounded result limit" }, { "name": "group_member_add", "description": "Idempotently add one curated member type to a group" }, { "name": "group_member_remove", "description": "Idempotently remove one curated member type from a group" }, { "name": "group_update", "description": "Update group description or POSIX GID without renaming" }, { "name": "host_create", "description": "Create a resolvable host without OTP, keytab, certificate, or implicit DNS writes" }, { "name": "host_delete", "description": "Delete a host without optional DNS cleanup; IPA may remove services and revoke certificates" }, { "name": "host_disable", "description": "Disable a host, its keys, certificates, and services with confirmation" }, { "name": "host_get", "description": "Get one host by exact FQDN" }, { "name": "host_list", "description": "Search hosts with a bounded result limit" }, { "name": "host_update", "description": "Update allowlisted host inventory fields without DNS or principal changes" }, { "name": "hostgroup_create", "description": "Create one host group" }, { "name": "hostgroup_delete", "description": "Delete one host group with confirmation" }, { "name": "hostgroup_get", "description": "Get one host group and direct membership" }, { "name": "hostgroup_list", "description": "Search host groups with a bounded result limit" }, { "name": "hostgroup_member_add", "description": "Idempotently add a host or nested host group" }, { "name": "hostgroup_member_remove", "description": "Idempotently remove a host or nested host group" }, { "name": "hostgroup_update", "description": "Update a host group description without renaming" }, { "name": "server_metadata", "description": "Return allowlisted FreeIPA version, API, realm, and domain metadata" }, { "name": "server_ping", "description": "Authenticate and execute the versioned FreeIPA ping command" }, { "name": "service_create", "description": "Create a service for an existing resolvable host" }, { "name": "service_delete", "description": "Delete a service and revoke associated IPA certificates with confirmation" }, { "name": "service_disable", "description": "Destroy service keys and revoke/remove certificates with confirmation" }, { "name": "service_get", "description": "Get one exact service principal without certificate material" }, { "name": "service_list", "description": "Search service principals with a bounded limit" }, { "name": "service_update", "description": "Update restricted PAC, auth indicator, and delegation flags" }, { "name": "sudo_command_create", "description": "Create one exact absolute sudo command" }, { "name": "sudo_command_delete", "description": "Delete one sudo command with confirmation" }, { "name": "sudo_command_get", "description": "Get one exact sudo command object" }, { "name": "sudo_command_group_create", "description": "Create one sudo command group" }, { "name": "sudo_command_group_delete", "description": "Delete one sudo command group with confirmation" }, { "name": "sudo_command_group_get", "description": "Get one sudo command group and membership" }, { "name": "sudo_command_group_list", "description": "Search sudo command groups with a bounded limit" }, { "name": "sudo_command_group_member_add", "description": "Idempotently add an exact command object" }, { "name": "sudo_command_group_member_remove", "description": "Idempotently remove an exact command object" }, { "name": "sudo_command_group_update", "description": "Update a sudo command group description" }, { "name": "sudo_command_list", "description": "Search sudo command objects with a bounded limit" }, { "name": "sudo_command_update", "description": "Update a sudo command description" }, { "name": "sudo_rule_create", "description": "Create an empty enabled sudo rule; no categories or members are implicit" }, { "name": "sudo_rule_delete", "description": "Delete one sudo rule with confirmation" }, { "name": "sudo_rule_disable", "description": "Disable a sudo rule with confirmation" }, { "name": "sudo_rule_enable", "description": "Enable a sudo rule with explicit privilege confirmation" }, { "name": "sudo_rule_get", "description": "Get one sudo rule and direct assignments" }, { "name": "sudo_rule_list", "description": "Search sudo rules with a bounded limit" }, { "name": "sudo_rule_member_add", "description": "Idempotently add one explicitly typed sudo assignment" }, { "name": "sudo_rule_member_remove", "description": "Idempotently remove one explicitly typed sudo assignment" }, { "name": "sudo_rule_update", "description": "Update only description or unique order with confirmation" }, { "name": "user_create", "description": "Create a user without inline credentials or generated secrets" }, { "name": "user_delete", "description": "Permanently delete or preserve one user with exact confirmation" }, { "name": "user_disable", "description": "Disable one exact user account with confirmation" }, { "name": "user_enable", "description": "Enable one exact user account with confirmation" }, { "name": "user_get", "description": "Get one active user by exact login" }, { "name": "user_list", "description": "Search active users with a bounded server-side result limit" }, { "name": "user_reset_password", "description": "Reset a user password from a separate Attune Key" }, { "name": "user_update", "description": "Update allowlisted non-credential user profile fields" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://freeipa.readthedocs.io/en/latest/api/jsonrpc_usage.html", "repository_url": "https://github.com/attune-packs/freeipa", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-freeipa", "source_revision": "1f1c5baf3dbd79494d5212139691b4f4d40a84ed", "source_version": "1.0.0 (post-release master)", "api_baseline": "FreeIPA 4.13.2 / API 2.257", "api_revision": "1f6e8c02370c4840d8b0ad8b5540e4c7ee654d8e", "license": "Apache-2.0", "python_dependencies": [ "attune-sdk @ git+https://github.com/attune-system/python-attune-sdk.git@841298f132d9f6af6b7afc2f7091db1f3460b9c9" ], "default_branch": "main", "commit": "593ab9d6dee8e2a6abdaf53b89e46fa0e4b37184", "stars": 0, "repository_id": 1334760047 }, "repository": "https://github.com/attune-packs/freeipa", "email": "support@attune.systems", "homepage": "https://freeipa.readthedocs.io/en/latest/api/jsonrpc_usage.html", "dependencies": { "packs": [] } }, { "ref": "git", "label": "Git", "description": "Safe Git repository actions, Attune Key-backed authentication, and commit monitoring", "version": "0.2.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "git", "scm", "source-control" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/git.git", "ref": "92b0f6c17d6e15089d1d6da7879b186c6d896e7f", "checksum": "sha256:288411322f0cc9e017ee97a5eae057b166017d0a4fed715e3213d730aff1ebf3" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/git/tar.gz/92b0f6c17d6e15089d1d6da7879b186c6d896e7f", "checksum": "sha256:25d75bf612f90c21a802facc5cf1ac6a9254b43f51cc2ac0bf015661c2a2eb1f" } ], "contents": { "actions": [ { "name": "checkout_remote_branch", "description": "Fetch the configured origin remote and check out an existing branch in a worker-local repository" }, { "name": "clone", "description": "Clone a repository and check out a branch or tag" }, { "name": "commit_and_push", "description": "Stage all changes, create one commit, and push the branch to the configured origin remote" }, { "name": "get_local_repo_latest_commit", "description": "Resolve a branch or ref in a worker-local repository" }, { "name": "get_remote_repo_latest_commit", "description": "Resolve one branch head in a remote repository" }, { "name": "new_local_branch", "description": "Create and check out a branch from a source ref" }, { "name": "remote_branch_exists", "description": "Check whether a named branch exists in a remote repository" } ], "sensors": [ { "name": "git_commit_sensor", "description": "Polls configured repository branches and emits head changes" } ], "triggers": [ { "name": "head_sha_monitor", "description": "Emitted when the monitored branch head changes" } ], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/attune-packs/git", "repository_url": "https://github.com/attune-packs/git", "source_revision": "e291834ae9f5fda45ae5c089f004a7e9fb631594", "source_version": "2.0.0", "license": "Apache-2.0", "default_branch": "main", "commit": "92b0f6c17d6e15089d1d6da7879b186c6d896e7f", "stars": 0, "repository_id": 1332364093 }, "repository": "https://github.com/attune-packs/git", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/git", "dependencies": { "packs": [] } }, { "ref": "github", "label": "GitHub Hosting Platform", "description": "Safe GitHub REST API operations with Attune Key-backed App or token authentication", "version": "0.1.0", "author": "Attune; adapted from StackStorm, Inc. and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "actions", "github", "github-enterprise", "integration", "issues", "pull-requests", "repository-hosting" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/github.git", "ref": "e9d9931ffc5531a9ea5caae1a9d09e2cac89830f", "checksum": "sha256:8faa2e1c402e04de9a27304a6e41a3d4e51f343939c38eb670e48940fc5648c5" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/github/tar.gz/e9d9931ffc5531a9ea5caae1a9d09e2cac89830f", "checksum": "sha256:eb9336d0af2ae8b06e570fa35f19ffefb4e628fd715bdf384546c552e3ce98d8" } ], "contents": { "actions": [ { "name": "artifact_delete", "description": "Delete one repository-scoped Actions artifact after exact confirmation" }, { "name": "artifact_download", "description": "Download an artifact ZIP into a new confined file with a byte cap" }, { "name": "artifact_list", "description": "List a bounded set of repository or workflow-run artifacts" }, { "name": "branch_create", "description": "Create a branch at the current commit of an explicit source branch" }, { "name": "branch_delete", "description": "Delete one branch ref after exact repository and branch confirmation" }, { "name": "branch_list", "description": "List a bounded set of repository branches" }, { "name": "comment_create", "description": "Create a comment on one issue or pull request" }, { "name": "comment_delete", "description": "Delete one repository-scoped comment after exact confirmation" }, { "name": "comment_list", "description": "List bounded comments for one issue or pull request" }, { "name": "comment_update", "description": "Update one repository-scoped issue comment" }, { "name": "commit_get", "description": "Get one commit by SHA or ref" }, { "name": "commit_list", "description": "List a bounded set of repository commits" }, { "name": "commit_status_create", "description": "Create one commit status on an explicit repository and ref" }, { "name": "commit_status_list", "description": "Get the combined status and individual statuses for one commit ref" }, { "name": "content_delete", "description": "Delete one path at an exact blob SHA after exact confirmation" }, { "name": "content_get", "description": "Read one safely encoded repository content path" }, { "name": "content_put", "description": "Create or SHA-guardedly update one repository content path" }, { "name": "deployment_create", "description": "Create an explicit deployment without implicit merging after exact confirmation" }, { "name": "deployment_list", "description": "List a bounded set of repository deployments" }, { "name": "deployment_status_create", "description": "Create one deployment status after exact deployment/state/environment confirmation" }, { "name": "deployment_status_list", "description": "List a bounded set of statuses for one deployment" }, { "name": "issue_create", "description": "Create an issue in one explicitly scoped repository" }, { "name": "issue_get", "description": "Get one issue or pull-request issue record" }, { "name": "issue_labels_set", "description": "Replace all labels on one issue after an exact sorted-label confirmation" }, { "name": "issue_list", "description": "List a bounded set of repository issues" }, { "name": "issue_update", "description": "Update selected fields on one issue" }, { "name": "label_create", "description": "Create a repository label with a validated RGB color" }, { "name": "label_delete", "description": "Delete one repository label after exact confirmation" }, { "name": "label_list", "description": "List a bounded set of repository labels" }, { "name": "protection_delete", "description": "Remove all branch protection only at an expected ETag and exact confirmation" }, { "name": "protection_get", "description": "Read the complete protection settings and ETag for one branch" }, { "name": "protection_update", "description": "Replace complete branch protection only at an expected ETag and exact confirmation" }, { "name": "pull_create", "description": "Create a pull request with explicit head and base refs" }, { "name": "pull_get", "description": "Get one pull request with optional ETag validation" }, { "name": "pull_list", "description": "List a bounded set of pull requests" }, { "name": "pull_merge", "description": "Merge only the explicitly expected pull-request head after exact confirmation" }, { "name": "pull_review_create", "description": "Create a review only if the pull request still has the expected head SHA" }, { "name": "pull_review_list", "description": "List a bounded set of reviews for one pull request" }, { "name": "pull_update", "description": "Update selected fields on one pull request" }, { "name": "release_asset_delete", "description": "Delete one repository-scoped release asset after exact confirmation" }, { "name": "release_asset_download", "description": "Download an asset into a new confined artifact file with a byte cap" }, { "name": "release_asset_list", "description": "List a bounded set of assets for one release" }, { "name": "release_asset_upload", "description": "Upload one regular non-symlink file confined beneath ATTUNE_ARTIFACTS_DIR" }, { "name": "release_create", "description": "Create a release that defaults to draft for safe publication control" }, { "name": "release_delete", "description": "Delete a release record after exact repository/release confirmation" }, { "name": "release_get", "description": "Get one release by numeric repository-scoped ID" }, { "name": "release_list", "description": "List a bounded set of repository releases" }, { "name": "release_update", "description": "Update or publish a release after exact repository/release confirmation" }, { "name": "repository_create", "description": "Create a repository for one explicit user or organization" }, { "name": "repository_delete", "description": "Permanently delete one repository after exact owner/repository confirmation" }, { "name": "repository_get", "description": "Get one explicitly scoped repository with optional ETag validation" }, { "name": "repository_list", "description": "List bounded repositories for one explicit user or organization" }, { "name": "repository_update", "description": "Update selected settings on one explicitly scoped repository" }, { "name": "team_get", "description": "Get one team using the current organization/slug route" }, { "name": "team_list", "description": "List a bounded set of teams in one explicit organization" }, { "name": "team_member_add", "description": "Add or update one team membership after exact organization/team/user/role confirmation" }, { "name": "team_member_list", "description": "List bounded members of one current organization/slug team" }, { "name": "team_member_remove", "description": "Remove one team membership after exact organization/team/user confirmation" }, { "name": "webhook_create", "description": "Create a JSON webhook to an exact allowlisted HTTPS host using the Key-owned secret" }, { "name": "webhook_delete", "description": "Delete one repository-scoped webhook after exact confirmation" }, { "name": "webhook_list", "description": "List a bounded set of repository webhook configurations" }, { "name": "workflow_dispatch", "description": "Dispatch one workflow at an explicit ref after exact confirmation" }, { "name": "workflow_get", "description": "Get one workflow by numeric ID or workflow file name" }, { "name": "workflow_list", "description": "List a bounded set of GitHub Actions workflows" }, { "name": "workflow_run_control", "description": "Cancel or rerun one workflow run after exact control/repository/run confirmation" }, { "name": "workflow_run_get", "description": "Get one repository-scoped GitHub Actions workflow run" }, { "name": "workflow_run_list", "description": "List a bounded filtered set of GitHub Actions workflow runs" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://docs.github.com/en/rest", "repository_url": "https://github.com/attune-packs/github", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-github", "source_revision": "fc8e45bd25bcfdd891f3e88e0b87f7592fe7f634", "source_version": "2.1.5", "api_version": "2026-03-10", "license": "Apache-2.0", "default_branch": "main", "commit": "e9d9931ffc5531a9ea5caae1a9d09e2cac89830f", "stars": 0, "repository_id": 1334897014 }, "repository": "https://github.com/attune-packs/github", "email": "support@attune.systems", "homepage": "https://docs.github.com/en/rest", "dependencies": { "packs": [] } }, { "ref": "gitlab", "label": "GitLab", "description": "GitLab hosting API operations for projects, issues, merge requests, pipelines, and jobs", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "ci-cd", "gitlab", "hosting", "integration", "scm" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/gitlab.git", "ref": "1c0826596193a6ab7333b0889602cee7db312582", "checksum": "sha256:b94a17251eacdd320b0ccab17618f116615880d20d3f63c176e27a84ccdc2dcb" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/gitlab/tar.gz/1c0826596193a6ab7333b0889602cee7db312582", "checksum": "sha256:11c62836410afcf1da7f68e132126b31570461336b6f4e4e1c1ca60e430c4800" } ], "contents": { "actions": [ { "name": "cancel_job", "description": "Cancel one cancelable job without force-canceling a job already canceling" }, { "name": "cancel_pipeline", "description": "Cancel all cancelable jobs in a project pipeline" }, { "name": "get_issue", "description": "Retrieve one project issue by project-scoped IID" }, { "name": "get_job", "description": "Retrieve one project job by global job ID" }, { "name": "get_merge_request", "description": "Retrieve one merge request by project-scoped IID" }, { "name": "get_pipeline", "description": "Retrieve one project pipeline by global pipeline ID" }, { "name": "get_project", "description": "Retrieve project metadata by numeric ID or namespaced path" }, { "name": "list_issues", "description": "List issues in a project with filters and bounded pagination" }, { "name": "list_jobs", "description": "List all project jobs or jobs in one pipeline with bounded pagination" }, { "name": "list_merge_requests", "description": "List merge requests in a project with filters and bounded pagination" }, { "name": "list_pipelines", "description": "List project pipelines with filters and bounded pagination" }, { "name": "list_projects", "description": "List projects visible to the credential with bounded pagination" }, { "name": "retry_job", "description": "Retry one failed or canceled project job" }, { "name": "retry_pipeline", "description": "Retry failed or canceled jobs in a project pipeline" }, { "name": "trigger_pipeline", "description": "Create a pipeline on a branch or tag using the configured access token" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/attune-packs/gitlab", "repository_url": "https://github.com/attune-packs/gitlab", "source_revision": "77b62e6db46d6ba8e0ccbcaddef9818cdffb257e", "source_version": "1.0.1", "license": "Apache-2.0", "default_branch": "main", "commit": "1c0826596193a6ab7333b0889602cee7db312582", "stars": 0, "repository_id": 1334709949 }, "repository": "https://github.com/attune-packs/gitlab", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/gitlab", "dependencies": { "packs": [] } }, { "ref": "hyperv", "label": "Microsoft Hyper-V", "description": "Curated Hyper-V management through reviewed PowerShell over verified WinRM HTTPS", "version": "0.1.1", "author": "Attune; adapted from work by Encore Technologies and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "hyperv", "microsoft", "virtualization", "windows-server", "winrm" ], "runtime_deps": [ "powershell-remoting", "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/hyperv.git", "ref": "6f20c8d3b82f3d8444cbde16972c96af36922e67", "checksum": "sha256:ac8d49198c4bc036299ed223cde6569ffc10b4b0d3814e16f7b6b68c5c6ae0ff" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/hyperv/tar.gz/6f20c8d3b82f3d8444cbde16972c96af36922e67", "checksum": "sha256:0014dea10f39210abfbbff73ba2de56c880dc368d80911bef5b385021bd64372" } ], "contents": { "actions": [ { "name": "checkpoint_create", "description": "Create one checkpoint using the VM's configured checkpoint policy; non-idempotent" }, { "name": "checkpoint_delete", "description": "Delete one checkpoint selected by stable VM/checkpoint GUIDs after exact confirmation" }, { "name": "checkpoint_list", "description": "List checkpoints for a VM selected by stable GUID" }, { "name": "checkpoint_restore", "description": "Restore one checkpoint selected by stable VM/checkpoint GUIDs after exact confirmation" }, { "name": "job_poll", "description": "Boundedly poll modeled VM or replication state; no process-local PowerShell job ID is implied" }, { "name": "network_adapter_configure", "description": "Configure only modeled MAC assignment and access/untagged VLAN settings" }, { "name": "network_adapter_connect", "description": "Idempotently connect one exact VM adapter name to a switch selected by stable GUID" }, { "name": "replication_status", "description": "Read safely selected replication relationship status for a stable VM ID" }, { "name": "switch_create", "description": "Create a private, internal, or explicitly confirmed external virtual switch" }, { "name": "switch_delete", "description": "Delete a switch selected by stable GUID after exact host/switch confirmation" }, { "name": "switch_list", "description": "List virtual switches with stable IDs and management-OS attachment state" }, { "name": "vhd_attach", "description": "Idempotently attach a host VHD path to a stable VM ID using a SCSI controller" }, { "name": "vhd_create", "description": "Create a dynamic, fixed, or differencing VHDX/VHD at an absolute Hyper-V host path" }, { "name": "vhd_detach", "description": "Idempotently detach one exact host VHD path from a stable VM ID without deleting the disk" }, { "name": "vhd_resize", "description": "Idempotently expand, but never shrink, a VHD at an absolute Hyper-V host path" }, { "name": "vm_configure", "description": "Configure a VM selected only by stable GUID; at least one modeled setting is required" }, { "name": "vm_create", "description": "Create a VHD-less VM on the explicitly confirmed Hyper-V host" }, { "name": "vm_delete", "description": "Delete an off VM definition, not its VHDs; requires exact host/VM confirmation" }, { "name": "vm_export", "description": "Synchronously export a stable VM ID to an absolute path on the Hyper-V host" }, { "name": "vm_get", "description": "Get one VM by its stable Hyper-V GUID" }, { "name": "vm_import", "description": "Import from a Hyper-V host path by safe copy or confirmed in-place registration; overwrite is unsupported" }, { "name": "vm_list", "description": "List VMs on the profiled Hyper-V host with stable IDs and selected status fields" }, { "name": "vm_migrate", "description": "Synchronously migrate a stable VM ID with explicit CredSSP delegation and exact source/destination confirmation" }, { "name": "vm_restart", "description": "Restart a running VM selected by stable GUID; this is non-idempotent" }, { "name": "vm_save", "description": "Idempotently save a VM selected by stable GUID" }, { "name": "vm_start", "description": "Idempotently start a VM selected by stable GUID" }, { "name": "vm_stop", "description": "Request an idempotent integration-service guest shutdown; force turn-off is not exposed" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "virtualization", "documentation_url": "https://learn.microsoft.com/en-us/powershell/module/hyper-v/?view=windowsserver2025-ps", "repository_url": "https://github.com/attune-packs/hyperv", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-hyperv", "source_revision": "32dfae76bfc9bdf8412bb96701e2d563f9e82023", "source_version": "1.0.0", "license": "Apache-2.0", "default_branch": "main", "commit": "6f20c8d3b82f3d8444cbde16972c96af36922e67", "stars": 0, "repository_id": 1334760448 }, "repository": "https://github.com/attune-packs/hyperv", "email": "support@attune.systems", "homepage": "https://learn.microsoft.com/en-us/powershell/module/hyper-v/?view=windowsserver2025-ps", "dependencies": { "packs": [] } }, { "ref": "infoblox", "label": "Infoblox NIOS", "description": "Safe Infoblox NIOS WAPI actions for IPAM, DHCP fixed addresses, and authoritative DNS", "version": "0.1.0", "author": "Attune; adapted from work by Dimension Data and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "dhcp", "dns", "infoblox", "integration", "ipam", "nios", "wapi" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/infoblox.git", "ref": "d8f8ec53b8e3a40fb17b0fa3f8b6e9adcf43ff0b", "checksum": "sha256:49378b13d032ed514e7561233ae3f42d41f7e3c102f340aaebb12505b262b977" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/infoblox/tar.gz/d8f8ec53b8e3a40fb17b0fa3f8b6e9adcf43ff0b", "checksum": "sha256:3f2f706e6106e1d80d87d3f776d0b0621654adb3b9eab7ccf92a976f4617fa4a" } ], "contents": { "actions": [ { "name": "address_search", "description": "Search read-only IPv4/IPv6 IPAM address objects with exact safe filters and bounded paging" }, { "name": "dns_view_delete", "description": "Delete one non-default DNS view after exact-name confirmation; NIOS enforces object dependencies" }, { "name": "dns_view_list", "description": "List DNS views with optional exact filters and bounded WAPI paging" }, { "name": "dns_view_upsert", "description": "Create an absent DNS view or idempotently update supplied mutable fields" }, { "name": "fixed_address_allocate", "description": "Atomically select and create a fixed address with an inline WAPI next_available_ip function" }, { "name": "fixed_address_delete", "description": "Idempotently delete one exact fixed address after normalized-address confirmation" }, { "name": "fixed_address_list", "description": "List IPv4/IPv6 DHCP fixed addresses using exact filters and bounded paging" }, { "name": "fixed_address_upsert", "description": "Create an explicit IPv4/IPv6 fixed address or update supplied fields by exact address identity" }, { "name": "network_delete", "description": "Idempotently delete one exact network after normalized-CIDR confirmation" }, { "name": "network_list", "description": "List IPv4 or IPv6 networks in one network view with bounded paging" }, { "name": "network_upsert", "description": "Create an absent IPv4/IPv6 network or update supplied mutable fields" }, { "name": "network_view_delete", "description": "Delete one non-default network view after exact-name confirmation; NIOS enforces object dependencies" }, { "name": "network_view_list", "description": "List DHCP/IPAM network views with bounded WAPI paging" }, { "name": "network_view_upsert", "description": "Create an absent network view or idempotently update its supplied mutable fields" }, { "name": "next_available_ip", "description": "Discover but do not reserve candidate addresses; use fixed_address_allocate when a reservation is required" }, { "name": "record_delete", "description": "Idempotently delete one exact A, AAAA, CNAME, or PTR record after value confirmation" }, { "name": "record_list", "description": "List A, AAAA, CNAME, or PTR records using exact filters and bounded WAPI paging" }, { "name": "record_upsert", "description": "Idempotently create or update one A, AAAA, CNAME, or PTR record by exact identity" }, { "name": "zone_delete", "description": "Delete one exact authoritative zone and its contained records after exact-name confirmation" }, { "name": "zone_list", "description": "List authoritative forward or reverse zones in an exact DNS view with bounded paging" }, { "name": "zone_upsert", "description": "Create an absent authoritative zone or update supplied comment/disable state" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://ipam.illinois.edu/wapidoc/", "repository_url": "https://github.com/attune-packs/infoblox", "source_version": "1.1.1 (49ab61fed17ed05bb72b4c4506890f88aa873569)", "source_revision": "49ab61fed17ed05bb72b4c4506890f88aa873569", "license": "Apache-2.0", "python_dependencies": [ "attune-sdk>=0.1.0", "requests>=2.32.0,<3.0.0" ], "default_branch": "main", "commit": "d8f8ec53b8e3a40fb17b0fa3f8b6e9adcf43ff0b", "stars": 0, "repository_id": 1334730768 }, "repository": "https://github.com/attune-packs/infoblox", "email": "support@attune.systems", "homepage": "https://ipam.illinois.edu/wapidoc/", "dependencies": { "packs": [] } }, { "ref": "jenkins", "label": "Jenkins", "description": "Safe Jenkins Remote Access API actions with Attune Key-backed credentials", "version": "0.1.0", "author": "Attune; adapted from work by James Fryman and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "automation", "cd", "ci", "integration", "jenkins" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/jenkins.git", "ref": "c6d9f03025193064bba88059ae21824a8a21e11e", "checksum": "sha256:ee0f717fc6cd9717aaebc388409fa834cbddc1e99e3e07eb1288195ce1cd0c1c" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/jenkins/tar.gz/c6d9f03025193064bba88059ae21824a8a21e11e", "checksum": "sha256:7edc89c2a0b98a3f48badb84a30bcf7b3b3b891ff692fda719944a8ac083b8a8" } ], "contents": { "actions": [ { "name": "artifact_download", "description": "Download a listed artifact into ATTUNE_ARTIFACTS_DIR with confinement and size limits" }, { "name": "artifact_list", "description": "List artifact names and relative paths for one exact build" }, { "name": "build_get", "description": "Get one build by exact folder-qualified job and build number" }, { "name": "build_kill", "description": "Hard-kill one Pipeline as a last resort after exact confirmation" }, { "name": "build_stop", "description": "Request normal abort of one running build after exact confirmation" }, { "name": "build_term", "description": "Force running Pipeline steps to fail after exact confirmation; use only after stop" }, { "name": "build_trigger", "description": "Trigger one build and optionally poll its exact queue item until start" }, { "name": "build_wait", "description": "Poll one exact build until completion or a bounded timeout" }, { "name": "console_log", "description": "Read one bounded progressive console log chunk and return its next offset" }, { "name": "job_create", "description": "Create a job from validated privileged XML after exact confirmation" }, { "name": "job_delete", "description": "Delete exactly one folder-qualified job after exact confirmation" }, { "name": "job_disable", "description": "Disable one job type that supports Jenkins enable/disable endpoints" }, { "name": "job_enable", "description": "Enable one job type that supports Jenkins enable/disable endpoints" }, { "name": "job_get", "description": "Get structured information for one folder-qualified job" }, { "name": "job_update", "description": "Replace a job configuration with validated privileged XML after exact confirmation" }, { "name": "jobs_list", "description": "List jobs and folders to a bounded folder depth" }, { "name": "node_get", "description": "Get one Jenkins computer by exact node name" }, { "name": "node_offline", "description": "Safely mark one node temporarily offline without using Jenkins' race-prone toggle" }, { "name": "nodes_list", "description": "List Jenkins computers with bounded status fields" }, { "name": "plugins_list", "description": "List installed Jenkins plugins and their active/version state" }, { "name": "queue_cancel", "description": "Cancel one exact queue ID after verifying its job and exact confirmation" }, { "name": "queue_get", "description": "Get one exact queue item and its queued, started, or cancelled state" }, { "name": "queue_list", "description": "List visible Jenkins queue items" }, { "name": "queue_wait", "description": "Poll one exact queue item until it starts, is cancelled, or times out" }, { "name": "server_info", "description": "Get bounded controller information and verify the X-Jenkins identity header" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://www.jenkins.io/doc/book/using/remote-access-api/", "repository_url": "https://github.com/attune-packs/jenkins", "source_revision": "884692248ce19ae3220e88b5f4f5d446394e683a", "source_version": "1.0.1", "license": "Apache-2.0", "default_branch": "main", "commit": "c6d9f03025193064bba88059ae21824a8a21e11e", "stars": 0, "repository_id": 1334892215 }, "repository": "https://github.com/attune-packs/jenkins", "email": "support@attune.systems", "homepage": "https://www.jenkins.io/doc/book/using/remote-access-api/", "dependencies": { "packs": [] } }, { "ref": "jira", "label": "Jira", "description": "Actions and polling events for Jira Cloud and Jira Server/Data Center", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "atlassian", "integration", "jira" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/jira.git", "ref": "7e4ca400042aedc1e0a4f7e444ce9d755379626d", "checksum": "sha256:c085530e445407789d3f4dc6dac4845b3f5bb1a8b1e5ffd9cd3ee744d0023205" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/jira/tar.gz/7e4ca400042aedc1e0a4f7e444ce9d755379626d", "checksum": "sha256:61c79247c2de4439228ad99f0924981198724f1b1d2c85c1629229a49b4227e5" } ], "contents": { "actions": [ { "name": "add_field_value", "description": "Add a value to an issue field" }, { "name": "add_gadget", "description": "Add a gadget to a Jira dashboard" }, { "name": "assign_issue", "description": "Assign a Jira issue to a user" }, { "name": "attach_file_to_issue", "description": "Upload one worker-local file to a Jira issue" }, { "name": "attach_files_to_issue", "description": "Sequentially upload worker-local files to a Jira issue" }, { "name": "bulk_link_issue", "description": "Link up to ten Jira issues concurrently and report every item result" }, { "name": "comment_issue", "description": "Add a comment to a Jira issue" }, { "name": "copy_dashboard", "description": "Copy a Jira dashboard" }, { "name": "create_dashboard", "description": "Create a Jira dashboard" }, { "name": "create_issue", "description": "Create a Jira issue" }, { "name": "delete_dashboard", "description": "Delete a Jira dashboard" }, { "name": "delete_dashboard_item_property", "description": "Delete a Jira dashboard gadget property" }, { "name": "get_available_gadgets", "description": "List gadgets available to Jira dashboards" }, { "name": "get_dashboard_gadgets", "description": "List gadgets on a Jira dashboard" }, { "name": "get_dashboard_item_property", "description": "Get a Jira dashboard gadget property" }, { "name": "get_dashboard_item_property_keys", "description": "List property keys for a Jira dashboard gadget" }, { "name": "get_issue", "description": "Retrieve and normalize a Jira issue" }, { "name": "get_issue_attachments", "description": "List attachment metadata and download URLs for a Jira issue" }, { "name": "get_issue_comments", "description": "List comments on a Jira issue" }, { "name": "get_issue_links", "description": "List normalized links on a Jira issue" }, { "name": "link_issue", "description": "Create one Jira issue link" }, { "name": "remove_gadget", "description": "Remove a gadget from a Jira dashboard" }, { "name": "search_issues", "description": "Run a JQL issue search" }, { "name": "search_users", "description": "Search Jira users" }, { "name": "set_dashboard_item_property", "description": "Create or replace a Jira dashboard gadget property" }, { "name": "transition_issue", "description": "Transition a Jira issue by transition ID" }, { "name": "transition_issue_by_name", "description": "Transition a Jira issue using an exact case-sensitive transition name" }, { "name": "update_dashboard", "description": "Update a Jira dashboard" }, { "name": "update_dashboard_automatic_refresh", "description": "Set a Jira dashboard automatic refresh interval" }, { "name": "update_dashboard_item_property", "description": "Update an existing Jira dashboard gadget property" }, { "name": "update_field_value", "description": "Replace one Jira issue field value" }, { "name": "update_gadget", "description": "Update a gadget on a Jira dashboard" } ], "sensors": [ { "name": "jira_issue_poll", "description": "Polls Jira for new issues for each active trigger rule" } ], "triggers": [ { "name": "issues_tracker", "description": "Emitted when polling discovers a newly created Jira issue" }, { "name": "issues_tracker_for_apiv2", "description": "Emitted with raw Jira issue fields when polling discovers a new issue" } ], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/attune-packs/jira", "repository_url": "https://github.com/attune-packs/jira", "source_version": "3.3.0", "license": "Apache-2.0", "default_branch": "main", "commit": "7e4ca400042aedc1e0a4f7e444ce9d755379626d", "stars": 0, "repository_id": 1332364132 }, "repository": "https://github.com/attune-packs/jira", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/jira", "dependencies": { "packs": [] } }, { "ref": "kafka", "label": "Apache Kafka", "description": "Safe Kafka publishing, metadata inspection, and managed consumption", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "integration", "kafka", "messaging", "streaming" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/kafka.git", "ref": "ce8f098fb932c42c7594ea532a7be61462755dd8", "checksum": "sha256:289ff86a4f5d2d11e552e97af31ea2fec63dd408d9569bee172470ca5dd316a5" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/kafka/tar.gz/ce8f098fb932c42c7594ea532a7be61462755dd8", "checksum": "sha256:3c888d099bd77ca2ad84b4ab977636750190efb3a25fb4d4e05f2539892fd30f" } ], "contents": { "actions": [ { "name": "inspect_metadata", "description": "Inspect cluster, topic, and partition metadata without requesting a named topic" }, { "name": "produce", "description": "Produce one Kafka record and wait for its delivery report" } ], "sensors": [ { "name": "kafka_consumer", "description": "Consumes Kafka records per active rule with post-emission manual commits" } ], "triggers": [ { "name": "message", "description": "Emitted for a Kafka record before its consumer offset is committed" } ], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/attune-packs/kafka", "repository_url": "https://github.com/attune-packs/kafka", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-kafka", "source_version": "2.0.0", "source_revision": "42ec262777308d655262e5b64029c655825eb98a", "license": "Apache-2.0", "default_branch": "main", "commit": "ce8f098fb932c42c7594ea532a7be61462755dd8", "stars": 0, "repository_id": 1334729452 }, "repository": "https://github.com/attune-packs/kafka", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/kafka", "dependencies": { "packs": [] } }, { "ref": "keycloak", "label": "Keycloak Admin REST", "description": "Curated Keycloak Admin REST API actions with Attune Key-backed credentials", "version": "0.1.0", "author": "Attune; adapted from work by Michael Devlin and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "admin", "iam", "identity", "integration", "keycloak" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/keycloak.git", "ref": "15b21526398344f6e663dc654adfd684e15c2611", "checksum": "sha256:cecee9589516e76b1fafe66705ec388714221c5cad26252da010f508438d9c16" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/keycloak/tar.gz/15b21526398344f6e663dc654adfd684e15c2611", "checksum": "sha256:1e79cab7efb78e5358e882e19cafa958edfaeb5384038443d6f95d9eb480b903" } ], "contents": { "actions": [ { "name": "authentication_flow_executions", "description": "Read-only inspection of executions for a URL-encoded authentication-flow alias" }, { "name": "authentication_flow_get", "description": "Read-only inspection of one authentication flow by internal UUID" }, { "name": "authentication_flow_list", "description": "Read-only inspection of authentication flows in one explicit realm" }, { "name": "client_create", "description": "Create a client from restricted fields without secrets, role mappings, or service accounts" }, { "name": "client_delete", "description": "Delete one client by internal UUID with exact confirmation" }, { "name": "client_get", "description": "Get one client by internal UUID, not clientId" }, { "name": "client_list", "description": "List clients in one realm with bounded pagination; clientId is a display identifier" }, { "name": "client_update", "description": "Update restricted client fields for an internal client UUID" }, { "name": "group_create", "description": "Create a top-level group or child under an internal parent UUID" }, { "name": "group_delete", "description": "Delete one group by internal UUID with exact confirmation" }, { "name": "group_get", "description": "Get one group by internal UUID, not group name or path" }, { "name": "group_list", "description": "List top-level groups or direct children of one internal group UUID" }, { "name": "group_member_add", "description": "Add a user UUID to a group UUID within one explicit realm" }, { "name": "group_member_remove", "description": "Remove a user UUID from a group UUID with exact confirmation" }, { "name": "group_members", "description": "List direct members of a group selected by internal UUID" }, { "name": "group_update", "description": "Update allowed fields for a group selected by internal UUID" }, { "name": "identity_provider_create", "description": "Create an identity provider; sensitive config is read only from a separate Attune Key" }, { "name": "identity_provider_delete", "description": "Delete one identity provider by alias with exact confirmation" }, { "name": "identity_provider_get", "description": "Get one identity provider by URL-encoded alias with secret-redacted output" }, { "name": "identity_provider_list", "description": "List identity providers with current bounded pagination and secret-redacted output" }, { "name": "identity_provider_update", "description": "Update a fixed IdP alias; sensitive config is read only from a separate Attune Key" }, { "name": "realm_get", "description": "Get one realm by realm name, not internal realm ID" }, { "name": "realm_list", "description": "List only realms visible to the authenticated administrator" }, { "name": "role_create", "description": "Create a non-composite realm or client role from restricted fields" }, { "name": "role_delete", "description": "Delete a realm or client role by display name with exact confirmation" }, { "name": "role_get", "description": "Get a realm or client role by URL-encoded role display name" }, { "name": "role_list", "description": "List realm roles or one client's roles with bounded pagination" }, { "name": "role_mapping_add", "description": "Resolve exact role names and assign them directly to one user/group UUID" }, { "name": "role_mapping_list", "description": "List directly assigned realm or client roles for one user/group UUID" }, { "name": "role_mapping_remove", "description": "Resolve and remove exact direct role mappings with exact confirmation" }, { "name": "role_update", "description": "Update a realm or client role selected by role display name" }, { "name": "user_create", "description": "Create a user from a restricted UserRepresentation without credentials or role mappings" }, { "name": "user_delete", "description": "Delete one user by internal UUID with exact confirmation" }, { "name": "user_get", "description": "Get one user by internal UUID, not username" }, { "name": "user_reset_password", "description": "Reset one user's password using a separate Attune Key; password is never an action input" }, { "name": "user_search", "description": "Search users in one explicit realm with bounded pagination" }, { "name": "user_set_enabled", "description": "Explicitly enable or disable a user selected by internal UUID" }, { "name": "user_update", "description": "Update allowed profile fields for a user selected by internal UUID" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://www.keycloak.org/docs-api/latest/rest-api/index.html", "repository_url": "https://github.com/attune-packs/keycloak", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-keycloak", "source_revision": "f978f295fbdcf72d3bde62d73d3ea023ed45378f", "source_version": "1.0.0", "api_baseline": "Keycloak 26.7.1", "license": "Apache-2.0", "default_branch": "main", "commit": "15b21526398344f6e663dc654adfd684e15c2611", "stars": 0, "repository_id": 1334731749 }, "repository": "https://github.com/attune-packs/keycloak", "email": "support@attune.systems", "homepage": "https://www.keycloak.org/docs-api/latest/rest-api/index.html", "dependencies": { "packs": [] } }, { "ref": "kubernetes", "label": "Kubernetes", "description": "Curated, discovery-backed Kubernetes operations with Attune Key credentials and safe defaults", "version": "0.1.0", "author": "Attune; adapted from work by Andrew Moore, Michael Ward, and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "containers", "integration", "kubernetes", "orchestration" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/kubernetes.git", "ref": "78bd74aff900d8afa814cc80372cba0e7ddba78f", "checksum": "sha256:3e4aa524d0de3cbf3ce4edcb5ab62596a7a1a129784a986ddb4529ff1c0605f6" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/kubernetes/tar.gz/78bd74aff900d8afa814cc80372cba0e7ddba78f", "checksum": "sha256:1c368810c89511b5728ec4b71b5e9b1b2b5f871453d47de8fdb229ecc826fd41" } ], "contents": { "actions": [ { "name": "batch_apply", "description": "Server-side apply one batch/v1 Job or CronJob with fixed field ownership" }, { "name": "batch_delete", "description": "Delete one batch/v1 Job or CronJob with exact namespace/name confirmation" }, { "name": "batch_get", "description": "Read one batch/v1 Job or CronJob" }, { "name": "batch_list", "description": "List batch/v1 Jobs or CronJobs in one namespace with pagination" }, { "name": "batch_patch", "description": "JSON merge-patch one batch/v1 Job or CronJob with optional conflict precondition" }, { "name": "cluster_version", "description": "Read Kubernetes API server version information" }, { "name": "core_apply", "description": "Server-side apply one v1 Service or ConfigMap with fixed field ownership" }, { "name": "core_delete", "description": "Delete one v1 Service or ConfigMap with exact namespace/name confirmation" }, { "name": "core_get", "description": "Read one discovered v1 Service or ConfigMap" }, { "name": "core_list", "description": "List v1 Services or ConfigMaps in one namespace with pagination" }, { "name": "core_patch", "description": "JSON merge-patch one v1 Service or ConfigMap with optional resourceVersion" }, { "name": "generic_get", "description": "Get one resource only when its exact GA group/version/kind is on the non-secret read allowlist" }, { "name": "generic_list", "description": "List resources only for an exact discovered non-secret GA allowlist entry" }, { "name": "namespace_create", "description": "Create one allowlisted v1 Namespace with optional labels and annotations" }, { "name": "namespace_delete", "description": "Delete one allowlisted Namespace with exact confirmation and propagation controls" }, { "name": "namespace_get", "description": "Read one allowed v1 Namespace" }, { "name": "namespace_list", "description": "List v1 Namespaces, filtered to the credential allowlist when configured" }, { "name": "node_get", "description": "Read one discovered v1 Node" }, { "name": "node_list", "description": "List discovered v1 Nodes with bounded pagination" }, { "name": "pod_get", "description": "Read one v1 Pod in one allowed namespace" }, { "name": "pod_list", "description": "List v1 Pods in one namespace with selectors and pagination" }, { "name": "pod_logs", "description": "Read bounded non-following logs from one Pod container" }, { "name": "rollout_restart", "description": "Patch a rollout restart annotation after exact namespace/kind/name confirmation" }, { "name": "rollout_status", "description": "Read and watch one workload rollout with server and transport timeouts and no watch retry" }, { "name": "secret_write", "description": "Guarded Secret create/update from a separate Attune Key; never returns Secret data" }, { "name": "workload_apply", "description": "Server-side apply one apps/v1 workload using the attune-kubernetes field manager" }, { "name": "workload_delete", "description": "Delete one apps/v1 workload with exact namespace/name confirmation" }, { "name": "workload_get", "description": "Read one apps/v1 Deployment, StatefulSet, or DaemonSet" }, { "name": "workload_list", "description": "List apps/v1 workloads in one explicit or credential-default namespace" }, { "name": "workload_patch", "description": "JSON merge-patch one apps/v1 workload with optional resourceVersion precondition" }, { "name": "workload_scale", "description": "Scale a Deployment or StatefulSet through its discovered scale subresource; DaemonSet is rejected" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://kubernetes.io/docs/reference/using-api/", "repository_url": "https://github.com/attune-packs/kubernetes", "source_revision": "d6a52dbf72de7d3e034914299d3ac670d0532c38", "source_version": "1.0.1", "client_version": "36.0.3", "license": "Apache-2.0", "default_branch": "main", "commit": "78bd74aff900d8afa814cc80372cba0e7ddba78f", "stars": 0, "repository_id": 1334760027 }, "repository": "https://github.com/attune-packs/kubernetes", "email": "support@attune.systems", "homepage": "https://kubernetes.io/docs/reference/using-api/", "dependencies": { "packs": [] } }, { "ref": "msexchange", "label": "Microsoft Exchange", "description": "Actions and polling events for Microsoft Exchange Server and Exchange Online through EWS", "version": "0.1.1", "author": "Attune", "license": "Apache-2.0", "keywords": [ "calendar", "email", "ews", "exchange", "office365" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/msexchange.git", "ref": "3eed254112c5aff0a5f6ac45641ccc1898ced534", "checksum": "sha256:0e939cff87f85b45124db16f79c2daa0e70bc37589f72a98dccf3b840068bbfd" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/msexchange/tar.gz/3eed254112c5aff0a5f6ac45641ccc1898ced534", "checksum": "sha256:9c31dead50235c8a67c7cc6567ee349286cf4ec0b5246de9e576e17a7308bd21" } ], "contents": { "actions": [ { "name": "do_attachment_directory_maintenance", "description": "Delete old files and reduce an attachment directory below a size threshold" }, { "name": "get_calendar_items", "description": "Get calendar items overlapping a date range" }, { "name": "get_folder", "description": "Get details for an Exchange folder" }, { "name": "list_folders", "description": "List top-level folders or children of a named folder" }, { "name": "save_attachments", "description": "Save email file attachments into the execution artifact directory" }, { "name": "search_items", "description": "Search Exchange folder items by subject and optional ISO 8601 start date" }, { "name": "send_email", "description": "Send an email and optionally store it in Sent Items" } ], "sensors": [ { "name": "item_sensor", "description": "Polls Exchange per active rule for unread folder items" } ], "triggers": [ { "name": "exchange_new_item", "description": "Emitted for each unread item found in a configured Exchange folder" } ], "rules": [ { "name": "attachment_directory_maintenance", "description": "Daily maintenance equivalent to the source maintenance poller and disabled rule" } ], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/attune-packs/msexchange", "repository_url": "https://github.com/attune-packs/msexchange", "source_version": "1.1.3", "license": "Apache-2.0", "python_dependencies": [ "attune-sdk[sensor]>=0.1.0", "exchangelib>=5.4,<6", "python-dateutil>=2.8", "PyYAML>=6.0,<7" ], "default_branch": "main", "commit": "3eed254112c5aff0a5f6ac45641ccc1898ced534", "stars": 0, "repository_id": 1332364179 }, "repository": "https://github.com/attune-packs/msexchange", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/msexchange", "dependencies": { "packs": [ "core" ] } }, { "ref": "napalm", "label": "NAPALM Network Automation", "description": "Safety-bounded multi-vendor operational and configuration actions using NAPALM", "version": "0.1.0", "author": "Attune; adapted from work by mierdin, Rob Woodward, and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "automation", "multi-vendor", "napalm", "networking" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/napalm.git", "ref": "87de81dc5cd089d678f97b8cb42b8373547379b3", "checksum": "sha256:f61f8f4c5b5ab5b802eaeda6bb45536aa7f6d9c326c1e224a67297d8293adae0" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/napalm/tar.gz/87de81dc5cd089d678f97b8cb42b8373547379b3", "checksum": "sha256:31f4f69df8f369ca923ca4e606394783c8374082cdda42cbf531d610a889538a" } ], "contents": { "actions": [ { "name": "commit_config", "description": "In one connection, stage the exact supplied candidate, compare it, and commit after explicit confirmation" }, { "name": "compare_config", "description": "Stage supplied merge or replacement text, return a redacted diff, and always discard the candidate before closing" }, { "name": "confirm_commit", "description": "Confirm a device-wide pending commit-confirm operation where EOS, IOS, or Junos supports it" }, { "name": "discard_config", "description": "Explicitly discard candidate configuration visible to a new session; may affect another operator's candidate" }, { "name": "get_bgp_config", "description": "Read normalized BGP configuration with authentication values recursively redacted" }, { "name": "get_bgp_neighbors", "description": "Read normalized BGP neighbor state across VRFs" }, { "name": "get_config", "description": "Read device configuration with NAPALM sanitization and additional secret-line redaction" }, { "name": "get_environment", "description": "Read normalized fan, temperature, power, CPU, and memory data where available" }, { "name": "get_facts", "description": "Read normalized device facts; does not modify device configuration" }, { "name": "get_interfaces", "description": "Read normalized interface state; does not modify device configuration" }, { "name": "get_interfaces_counters", "description": "Read normalized interface counters where the selected driver supports them" }, { "name": "get_ntp", "description": "Read NTP peers, servers, or statistics with explicit per-driver support checks" }, { "name": "get_optics", "description": "Read normalized transceiver optical power and bias data where supported" }, { "name": "get_route_to", "description": "Read normalized routes for an IP prefix where the selected driver documents support" }, { "name": "load_merge", "description": "Load and compare a merge candidate, then always discard it; this action never commits or persists a candidate" }, { "name": "load_replace", "description": "Load and compare a complete replacement candidate, then always discard it; this action never commits" }, { "name": "ping", "description": "Run a bounded ping from the device with injection-resistant target and option validation" }, { "name": "rollback", "description": "Invoke the driver's rollback behavior after explicit confirmation; exact rollback depth is driver-specific" }, { "name": "traceroute", "description": "Run a bounded traceroute from the device with injection-resistant target and option validation" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://napalm.readthedocs.io/en/latest/", "repository_url": "https://github.com/attune-packs/napalm", "source_version": "1.1.0 (8af575b481a28f3a284bbb4cf7073cf72684f1d4)", "source_revision": "8af575b481a28f3a284bbb4cf7073cf72684f1d4", "license": "Apache-2.0", "python_dependencies": [ "attune-sdk>=0.1.0", "napalm==5.2.0" ], "default_branch": "main", "commit": "87de81dc5cd089d678f97b8cb42b8373547379b3", "stars": 0, "repository_id": 1334730710 }, "repository": "https://github.com/attune-packs/napalm", "email": "support@attune.systems", "homepage": "https://napalm.readthedocs.io/en/latest/", "dependencies": { "packs": [] } }, { "ref": "netbox", "label": "NetBox REST", "description": "Curated NetBox 4.x REST actions with Attune Key-backed token credentials", "version": "0.1.0", "author": "Attune; adapted from work by John Anderson, Jefferson White, and StackStorm Exchange contributors", "license": "MIT", "keywords": [ "circuits", "dcim", "integration", "ipam", "netbox", "virtualization" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/netbox.git", "ref": "254d6984a3ba14ab46122b0d8b055237a5830424", "checksum": "sha256:beb8d36aa60428900da3c5404b43fcd8a58c453835522cca12217f09fd006c9d" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/netbox/tar.gz/254d6984a3ba14ab46122b0d8b055237a5830424", "checksum": "sha256:667da52ef97329dc7ff22f0d99c5681c2810e9b6a0555b545a18811acf39a89a" } ], "contents": { "actions": [ { "name": "allocate_available", "description": "Atomically allocate one available IP address or child prefix under a parent prefix ID" }, { "name": "resource_create", "description": "Create one object under an allowlisted NetBox resource" }, { "name": "resource_delete", "description": "Delete one ID only after verifying its current display identity and exact confirmation" }, { "name": "resource_get", "description": "Get one allowlisted NetBox object by numeric ID and return its ETag when available" }, { "name": "resource_list", "description": "List one allowlisted resource with encoded filters and bounded offset pagination" }, { "name": "resource_update", "description": "Patch one object by numeric ID with optimistic concurrency when NetBox advertises ETags" }, { "name": "resource_upsert", "description": "Create or patch only when explicit NetBox filters select zero or exactly one object" }, { "name": "schema", "description": "Read the current instance OpenAPI schema as structured JSON" }, { "name": "status", "description": "Read the NetBox status endpoint and reported version" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://netboxlabs.com/docs/netbox/en/stable/integrations/rest-api/", "repository_url": "https://github.com/attune-packs/netbox", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-netbox", "source_revision": "69cb91a8b55c791ebec189cd976170ce44206358", "source_version": "3.4.4", "api_baseline": "NetBox 4.6.8", "api_revision": "3db98de783c02038775b78f9804a95681f78eb7b", "license": "MIT", "default_branch": "main", "commit": "254d6984a3ba14ab46122b0d8b055237a5830424", "stars": 0, "repository_id": 1334889139 }, "repository": "https://github.com/attune-packs/netbox", "email": "support@attune.systems", "homepage": "https://netboxlabs.com/docs/netbox/en/stable/integrations/rest-api/", "dependencies": { "packs": [] } }, { "ref": "nodejs_example", "label": "Node.js Example Pack", "description": "Example pack demonstrating Node.js actions, a counter sensor with keystore integration, and HTTP requests", "version": "1.0.0", "author": "Attune Team", "license": "NOASSERTION", "keywords": [ "counter", "examples", "http", "javascript", "nodejs", "sensor" ], "runtime_deps": [ "nodejs" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/nodejs_example.git", "ref": "69517d47d2b21fc532ce1420190bf083c11b0804", "checksum": "sha256:6a70ed52606b49cb10ad2c28e6bf539aab4357db9141fc3c2c9ee2c5db53189f" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/nodejs_example/tar.gz/69517d47d2b21fc532ce1420190bf083c11b0804", "checksum": "sha256:772ac276d236fc9887550ba934da0bd22cc00451f74f55afe02ceac5c4a4cde3" } ], "contents": { "actions": [ { "name": "hello", "description": "A simple Node.js action that returns a greeting message" }, { "name": "http_example", "description": "Makes an HTTP GET request to example.com using the node-fetch library" }, { "name": "read_counter", "description": "Receives a counter value (typically from the counter trigger) and returns a formatted message containing it" } ], "sensors": [ { "name": "counter_sensor", "description": "Emits periodic counter events with per-rule state stored in the Attune keystore" } ], "triggers": [ { "name": "counter", "description": "Fires at regular intervals with an incrementing counter value scoped per rule" } ], "rules": [ { "name": "count_and_log", "description": "Fires on each counter tick and logs the current counter value" } ], "workflows": [] }, "meta": { "category": "examples", "keywords": [ "nodejs", "javascript", "examples", "counter", "sensor", "keystore", "http" ], "node_dependencies": [ "node-fetch@^3.3.0", "amqplib@^0.10.0" ], "documentation_url": "https://github.com/attune-automation/pack-nodejs-example", "repository_url": "https://github.com/attune-automation/pack-nodejs-example", "default_branch": "main", "commit": "69517d47d2b21fc532ce1420190bf083c11b0804", "stars": 0, "repository_id": 1244975606 }, "repository": "https://github.com/attune-packs/nodejs_example", "email": "support@attune.io", "homepage": "https://github.com/attune-automation/pack-nodejs-example" }, { "ref": "openstack", "label": "OpenStack", "description": "Scoped OpenStack SDK actions with Attune Key-backed clouds.yaml profiles", "version": "0.1.0", "author": "Attune; adapted from StackStorm Engineering Team and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "compute", "heat", "integration", "network", "openstack", "storage" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/openstack.git", "ref": "107c544cf144eb84f2e1577887f947980e5ea4fb", "checksum": "sha256:61a434c66a8e63ec0728dbbdbd47969f57e6cbaa4cb4f68c22a958e7b034b71d" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/openstack/tar.gz/107c544cf144eb84f2e1577887f947980e5ea4fb", "checksum": "sha256:1ae273d43fc7fa9101ed396a62490bbd16466c753d579a9a24e5123b7f40af0a" } ], "contents": { "actions": [ { "name": "floating_ip_allocate", "description": "Allocate one floating IP from an explicit external network ID" }, { "name": "floating_ip_associate", "description": "Idempotently associate an unbound floating IP ID with a current-project port ID" }, { "name": "floating_ip_release", "description": "Release a floating IP by ID with confirmation that includes any attached port ID" }, { "name": "identity_current", "description": "Verify and return the authenticated user and explicitly selected project scope" }, { "name": "image_get", "description": "Get an image by ID without name resolution" }, { "name": "image_list", "description": "List private or shared images with a bounded output" }, { "name": "image_upload", "description": "Upload one confined worker artifact as a private or shared Glance image" }, { "name": "network_manage", "description": "List, get, create, safely update, or explicitly delete project networks" }, { "name": "object_download", "description": "Atomically download a bounded Swift object beneath the profile artifact root" }, { "name": "object_list", "description": "List objects in one Swift container with prefix, marker, and output bounds" }, { "name": "object_upload", "description": "Upload one confined worker artifact to an explicitly confirmed Swift object key" }, { "name": "port_manage", "description": "List, get, create, safely update, or explicitly delete project ports" }, { "name": "router_manage", "description": "List, get, create, safely update, or explicitly delete project routers" }, { "name": "security_group_manage", "description": "List, get, create, update, or explicitly delete project security groups by ID" }, { "name": "security_group_rule_manage", "description": "List, get, create, or explicitly delete immutable security group rules by ID" }, { "name": "server_create", "description": "Create one server from explicit image, flavor, and network or port IDs without waiting" }, { "name": "server_delete", "description": "Delete a current-project server by ID without force" }, { "name": "server_get", "description": "Get a current-project server by ID" }, { "name": "server_list", "description": "List servers in the current project with a bounded structured result" }, { "name": "server_reboot", "description": "Submit one explicitly confirmed soft or hard reboot by server ID" }, { "name": "server_rebuild", "description": "Destructively rebuild a server from an explicit image ID without returning generated passwords" }, { "name": "server_start", "description": "Submit one start request for a current-project server ID" }, { "name": "server_stop", "description": "Submit one explicitly confirmed stop request for a server ID" }, { "name": "server_wait", "description": "Poll one server for a desired status with bounded interval and total wait" }, { "name": "stack_create", "description": "Create one Heat stack from an inline bounded template without hidden waiting or retry" }, { "name": "stack_delete", "description": "Submit one explicitly confirmed Heat stack deletion by ID" }, { "name": "stack_status", "description": "Get stack lifecycle status by ID without resolving potentially sensitive outputs" }, { "name": "stack_update", "description": "Submit one explicitly confirmed stack update by ID from an inline template" }, { "name": "stack_validate", "description": "Validate an inline bounded Heat template and optional environment" }, { "name": "subnet_manage", "description": "List, get, create, safely update, or explicitly delete project subnets" }, { "name": "volume_attach", "description": "Submit one attachment of a volume ID to a server ID" }, { "name": "volume_create", "description": "Create one bounded-size volume in the current project without waiting" }, { "name": "volume_delete", "description": "Delete an unattached current-project volume by ID without force" }, { "name": "volume_detach", "description": "Explicitly detach a volume ID from a server ID without force" }, { "name": "volume_get", "description": "Get a current-project volume by ID" }, { "name": "volume_list", "description": "List current-project volumes with a bounded output" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://docs.openstack.org/openstacksdk/latest/", "repository_url": "https://github.com/attune-packs/openstack", "source_revision": "719b93fe95c091d3e75364af66172b6cae68a370", "source_version": "1.0.1", "sdk_baseline": "4.18.0", "license": "Apache-2.0", "default_branch": "main", "commit": "107c544cf144eb84f2e1577887f947980e5ea4fb", "stars": 0, "repository_id": 1334760810 }, "repository": "https://github.com/attune-packs/openstack", "email": "support@attune.systems", "homepage": "https://docs.openstack.org/openstacksdk/latest/", "dependencies": { "packs": [] } }, { "ref": "packer", "label": "HashiCorp Packer", "description": "Confined, non-interactive HashiCorp Packer CLI actions", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "hashicorp", "image", "infrastructure", "packer" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/packer.git", "ref": "086168cfa90dfcc00bd1819f6e36fabed66c81b5", "checksum": "sha256:dca3ebfa6acbf017b78b16ebf3183153b25204fbcdf5b15f46ade8bdef465ea5" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/packer/tar.gz/086168cfa90dfcc00bd1819f6e36fabed66c81b5", "checksum": "sha256:5d733e5aecc76408fdd9fb327fafd6967b44ef3f49ccc4e766d0156e4b46163a" } ], "contents": { "actions": [ { "name": "build", "description": "Build images from a Packer template using non-interactive cleanup behavior" }, { "name": "fix", "description": "Apply Packer's current fix command to a legacy JSON template and write a confined artifact" }, { "name": "init", "description": "Install required HCL template plugins into the execution artifact area" }, { "name": "inspect", "description": "Inspect the components declared by a Packer template" }, { "name": "validate", "description": "Validate Packer template syntax and configuration" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "infrastructure", "documentation_url": "https://github.com/attune-packs/packer", "repository_url": "https://github.com/attune-packs/packer", "source_revision": "af813347fdf92cb24e466d4c0f57d9de73196407", "source_version": "1.0.0", "license": "Apache-2.0", "default_branch": "main", "commit": "086168cfa90dfcc00bd1819f6e36fabed66c81b5", "stars": 0, "repository_id": 1334709648 }, "repository": "https://github.com/attune-packs/packer", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/packer", "dependencies": { "packs": [] } }, { "ref": "pagerduty", "label": "PagerDuty", "description": "PagerDuty REST API v2 and legacy Events API v1 actions", "version": "0.1.0", "author": "Attune; adapted from work by Aamir, Jon Middleton, and Ian Price", "license": "Apache-2.0", "keywords": [ "incidents", "integration", "on-call", "pagerduty" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/pagerduty.git", "ref": "0819b35a2d0db68a944ccf71d4e4b362d575b7d9", "checksum": "sha256:6626d84ad568980211f93c3997992bd8a683cc27a8f0642c30de2fb487e6a727" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/pagerduty/tar.gz/0819b35a2d0db68a944ccf71d4e4b362d575b7d9", "checksum": "sha256:c668cb956bd1540e6ab7b453d0e39b15e2d4c0f860c2138e1a2dc7a921625ed1" } ], "contents": { "actions": [ { "name": "escalation_policy_create", "description": "create an escalation_policy" }, { "name": "escalation_policy_delete", "description": "delete an escalation_policy by id" }, { "name": "escalation_policy_find", "description": "find escalation_policy(s) by criteria" }, { "name": "escalation_policy_find_services", "description": "get services for escalation_policy by id" }, { "name": "escalation_policy_get", "description": "get escalation_policy by id" }, { "name": "incident_acknowledge", "description": "acknowledge an incident by entity_id using the v2 REST API" }, { "name": "incident_create_events_v1", "description": "create an incident using the v1 Events API" }, { "name": "incident_create_note", "description": "create a note for an incident by entity_id" }, { "name": "incident_create_rest_v2", "description": "create an incident using the v2 REST API (raw data input)" }, { "name": "incident_create_rest_v2_simple", "description": "create an incident using the v2 REST API (simplified)" }, { "name": "incident_find", "description": "find incident(s) by criteria" }, { "name": "incident_find_alerts", "description": "find alerts for an incident by entity_id" }, { "name": "incident_find_log_entries", "description": "find log_entries for an incident by entity_id" }, { "name": "incident_find_notes", "description": "find notes for an incident by entity_id" }, { "name": "incident_get", "description": "get incident by entity_id" }, { "name": "incident_merge", "description": "merge incidents into entity_id" }, { "name": "incident_reassign", "description": "reassign an incident to users" }, { "name": "incident_resolve", "description": "resolve an incident by entity_id" }, { "name": "incident_snooze", "description": "snooze an incident by entity_id" }, { "name": "integration_get", "description": "get integration for service by entity_id" }, { "name": "log_entry_find", "description": "find log_entry(s) by creiteria" }, { "name": "log_entry_get", "description": "get log_entry by entity_id" }, { "name": "maintenance_window_create", "description": "create an maintenance_window (raw data input)" }, { "name": "maintenance_window_create_simple", "description": "create an maintenance_window (simplified)" }, { "name": "maintenance_window_delete", "description": "delete (not started) or end (started / finished) a maintenance_window by id" }, { "name": "maintenance_window_find", "description": "find maintenance_window by criteria" }, { "name": "maintenance_window_get", "description": "get maintenance_window by id" }, { "name": "notification_find", "description": "find notifications by criteria" }, { "name": "on_call_find", "description": "find on_call(s) by criteria" }, { "name": "schedule_create", "description": "create a schedule" }, { "name": "schedule_delete", "description": "delete schedule by entity_id" }, { "name": "schedule_find", "description": "find schedule(s) by criteria" }, { "name": "schedule_get", "description": "get schedule by entity_id" }, { "name": "schedule_get_on_call", "description": "get a schedule's on_call users by entity_id" }, { "name": "service_create", "description": "create a service (raw data input)" }, { "name": "service_create_simple", "description": "create a service (simplified)" }, { "name": "service_delete", "description": "delete service by entity_id" }, { "name": "service_find", "description": "find service by criteria" }, { "name": "service_find_integrations", "description": "get a service's integrations by entity_id" }, { "name": "service_get", "description": "get service by entity_id" }, { "name": "service_get_integrations", "description": "get integration for service by entity_id" }, { "name": "team_add_escalation_policy", "description": "add escalation by id to a team by entity_id" }, { "name": "team_add_user", "description": "add user by id to a team by entity_id" }, { "name": "team_create", "description": "create a team (raw data input)" }, { "name": "team_create_simple", "description": "create a team (simplified)" }, { "name": "team_delete", "description": "delete a team by entity_id" }, { "name": "team_find", "description": "find teams by criteria" }, { "name": "team_get", "description": "get team by entity_id" }, { "name": "team_remove_escalation_policy", "description": "remove escalation by id from a team by entity_id" }, { "name": "team_remove_user", "description": "remove user by id from a team by entity_id" }, { "name": "user_create", "description": "create a user (raw data input)" }, { "name": "user_create_contact_method", "description": "create a contact_method for user by entity_id (raw data input)" }, { "name": "user_create_contact_method_simple", "description": "create a contact_method for user by entity_id (simplified)" }, { "name": "user_create_notification_rule", "description": "create a notification_rule for user by entity_id (raw data input)" }, { "name": "user_create_notification_rule_simple", "description": "create a notification_rule for user by entity_id (simplified)" }, { "name": "user_create_simple", "description": "create a user (simplified)" }, { "name": "user_delete", "description": "delete a user by entity_id" }, { "name": "user_delete_contact_method", "description": "delete a contact_method by id for entity_id" }, { "name": "user_delete_notification_rule", "description": "delete a notification_rule by id for entity_id" }, { "name": "user_find", "description": "find users by criteria" }, { "name": "user_find_contact_methods", "description": "find contact_methods for user by entity_id" }, { "name": "user_find_notification_rules", "description": "find notification_rules by entity_id" }, { "name": "user_get", "description": "get user by entity_id" }, { "name": "user_get_contact_method", "description": "get contact_methods for user by entity_id" }, { "name": "user_get_notification_rule", "description": "get a notification_rule by id for entity_id" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://developer.pagerduty.com/api-reference/", "repository_url": "https://github.com/attune-packs/pagerduty", "source_version": "2.0.0 (4555dfc3f5fdbc1486503149c86392a1d5bf24b8)", "license": "Apache-2.0", "default_branch": "main", "commit": "0819b35a2d0db68a944ccf71d4e4b362d575b7d9", "stars": 0, "repository_id": 1332364221 }, "repository": "https://github.com/attune-packs/pagerduty", "email": "support@attune.systems", "homepage": "https://developer.pagerduty.com/api-reference/", "dependencies": { "packs": [] } }, { "ref": "paloalto", "label": "Palo Alto Networks PAN-OS", "description": "Constrained PAN-OS and Panorama XML API configuration and commit actions", "version": "0.1.0", "author": "Attune; adapted from work by Irek Romaniuk, John Anderson, and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "firewall", "integration", "paloalto", "pan-os", "panorama", "security" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/paloalto.git", "ref": "f3e44199727c690fb25d9e4f4891ad8c2f46fa07", "checksum": "sha256:0ded938d8a90f73190e1976365919ba5a94e35f39284a4900319003bb15655fc" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/paloalto/tar.gz/f3e44199727c690fb25d9e4f4891ad8c2f46fa07", "checksum": "sha256:191ce88ff770921220c15e51cb124ed0b71885b6066bb8767bbe1f1011df1240" } ], "contents": { "actions": [ { "name": "address_group_create", "description": "Create one static or dynamic address group in candidate configuration" }, { "name": "address_group_delete", "description": "Delete one existing candidate-config address group after exact-name confirmation" }, { "name": "address_group_get", "description": "Get one static or dynamic address group from candidate configuration" }, { "name": "address_group_update", "description": "Replace one existing address group after exact-name confirmation" }, { "name": "address_object_create", "description": "Create one address object in candidate configuration; fails when it exists" }, { "name": "address_object_delete", "description": "Delete one existing candidate-config address object after exact-name confirmation" }, { "name": "address_object_get", "description": "Get one candidate-config address object from a firewall vsys or Panorama scope" }, { "name": "address_object_update", "description": "Replace one existing candidate-config address object after exact-name confirmation" }, { "name": "commit", "description": "Commit firewall or Panorama-local candidate configuration and optionally poll its job" }, { "name": "commit_all", "description": "Push shared policy for one Panorama device group, optionally limited to explicit serials" }, { "name": "dynamic_address_register", "description": "Register tags for validated IP hosts or IPv4 sets on a firewall, Panorama, or explicit managed serial" }, { "name": "dynamic_address_unregister", "description": "Unregister specified tags from validated IP hosts after explicit confirmation" }, { "name": "job_status", "description": "Get one numeric PAN-OS job status with a constrained operational command" }, { "name": "pending_changes", "description": "Run only the constrained show config list change-summary operational command" }, { "name": "security_rule_create", "description": "Create one safely representable security rule in candidate configuration" }, { "name": "security_rule_delete", "description": "Delete one security rule after exact-name confirmation" }, { "name": "security_rule_get", "description": "Get one constrained security rule from candidate configuration" }, { "name": "security_rule_update", "description": "Fully replace the supported fields of an existing rule after exact-name confirmation" }, { "name": "service_group_create", "description": "Create one service group in candidate configuration" }, { "name": "service_group_delete", "description": "Delete one existing candidate-config service group after exact-name confirmation" }, { "name": "service_group_get", "description": "Get one service group from candidate configuration" }, { "name": "service_group_update", "description": "Replace one existing service group after exact-name confirmation" }, { "name": "service_object_create", "description": "Create one TCP or UDP service object in candidate configuration" }, { "name": "service_object_delete", "description": "Delete one existing candidate-config service object after exact-name confirmation" }, { "name": "service_object_get", "description": "Get one TCP or UDP service object from candidate configuration" }, { "name": "service_object_update", "description": "Replace one existing service object after exact-name confirmation" }, { "name": "system_info", "description": "Run only the constrained show system info operational command" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://docs.paloaltonetworks.com/ngfw/api", "repository_url": "https://github.com/attune-packs/paloalto", "source_revision": "efdc0db1dc96f94c4288a9c2ff227f2c9d0ee05e", "source_version": "1.0.0", "license": "Apache-2.0", "default_branch": "main", "commit": "f3e44199727c690fb25d9e4f4891ad8c2f46fa07", "stars": 0, "repository_id": 1334732777 }, "repository": "https://github.com/attune-packs/paloalto", "email": "support@attune.systems", "homepage": "https://docs.paloaltonetworks.com/ngfw/api", "dependencies": { "packs": [] } }, { "ref": "powerdns", "label": "PowerDNS Authoritative", "description": "Safe PowerDNS Authoritative Server HTTP API actions for servers, zones, and RRsets", "version": "0.1.0", "author": "Attune; adapted from work by Carlos and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "authoritative", "dns", "integration", "powerdns" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/powerdns.git", "ref": "253b9ad41a0208cd339c03bfc464ad818ba900b7", "checksum": "sha256:a1db612b494d2836a2b060f8899fd3d3485859a303eefda3aed1e85b30785092" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/powerdns/tar.gz/253b9ad41a0208cd339c03bfc464ad818ba900b7", "checksum": "sha256:2a8cac1c079fb8ee880f6fd1ad8455c0dd5dcd93827fec5dff5811bc832afe1f" } ], "contents": { "actions": [ { "name": "rrset_delete", "description": "Idempotently delete the complete exact-name/exact-type RRset and all its comments" }, { "name": "rrset_get", "description": "Look up the exact RRset for one absolute owner name and record type" }, { "name": "rrset_upsert", "description": "Idempotently replace the complete record list and TTL for one RRset using PowerDNS REPLACE semantics" }, { "name": "server_get", "description": "Get one PowerDNS server and its authoritative version information" }, { "name": "server_list", "description": "Discover all servers exposed by the PowerDNS API (the Authoritative Server normally returns localhost)" }, { "name": "zone_backup", "description": "Backup alias for zone_export; returns BIND/AXFR text without writing an arbitrary runtime path" }, { "name": "zone_create", "description": "Create a zone only when its exact name does not exist; never updates an existing zone" }, { "name": "zone_delete", "description": "Delete a zone, all RRsets, and attached metadata after explicit ID and name confirmation" }, { "name": "zone_export", "description": "Export one zone through the current API as a BIND/AXFR-format string in structured JSON output" }, { "name": "zone_get", "description": "Get one zone by its opaque PowerDNS zone ID" }, { "name": "zone_import", "description": "Create a missing zone from BIND-format text; refuses to overwrite an existing exact zone name" }, { "name": "zone_list", "description": "Discover zones; PowerDNS returns the complete collection and does not paginate this endpoint" }, { "name": "zone_notify", "description": "Ask PowerDNS to send DNS NOTIFY for a primary zone (or renotify-enabled secondary zone)" }, { "name": "zone_rectify", "description": "Rectify DNSSEC ordering data; PowerDNS rejects secondary or unsigned zones" }, { "name": "zone_restore", "description": "Restore alias for zone_import; creates from BIND text only when the exact zone name is absent" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://doc.powerdns.com/authoritative/http-api/", "repository_url": "https://github.com/attune-packs/powerdns", "source_version": "2.0.2 (13879e0e66b29a466d82c1077a1d4abde69c0d3e)", "source_revision": "13879e0e66b29a466d82c1077a1d4abde69c0d3e", "license": "Apache-2.0", "python_dependencies": [ "attune-sdk>=0.1.0", "requests>=2.32.0,<3.0.0" ], "default_branch": "main", "commit": "253b9ad41a0208cd339c03bfc464ad818ba900b7", "stars": 0, "repository_id": 1334710639 }, "repository": "https://github.com/attune-packs/powerdns", "email": "support@attune.systems", "homepage": "https://doc.powerdns.com/authoritative/http-api/", "dependencies": { "packs": [] } }, { "ref": "prometheus", "label": "Prometheus", "description": "Read-only queries and operational status from the Prometheus HTTP API", "version": "0.1.0", "author": "Attune; adapted from work by Daniel Chamot and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "alerts", "integration", "metrics", "monitoring", "prometheus" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/prometheus.git", "ref": "f3c02373cbb9a9236cad6724fbfa4c44b05a2850", "checksum": "sha256:468973f8b8424e3a468247f8af13f1185a9f13d7a219f4d918a8b47091c6df18" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/prometheus/tar.gz/f3c02373cbb9a9236cad6724fbfa4c44b05a2850", "checksum": "sha256:2d85475a6c36d95d843af6d0de43ae9af10e40702d8b81852867a14317497167" } ], "contents": { "actions": [ { "name": "alerts", "description": "Retrieve all currently active alerts from Prometheus" }, { "name": "instant_query", "description": "Evaluate PromQL at one point in time" }, { "name": "range_query", "description": "Evaluate PromQL over a bounded time range" }, { "name": "rules", "description": "Retrieve one page of recording and alerting rule groups" }, { "name": "series", "description": "Find time series matching one or more selectors" }, { "name": "targets", "description": "Retrieve active and dropped scrape targets" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "monitoring", "documentation_url": "https://github.com/attune-packs/prometheus", "repository_url": "https://github.com/attune-packs/prometheus", "source_version": "2.0.0 (323c695862bde2512cbd304f9c77b35db056fcb4)", "license": "Apache-2.0", "default_branch": "main", "commit": "f3c02373cbb9a9236cad6724fbfa4c44b05a2850", "stars": 0, "repository_id": 1334708922 }, "repository": "https://github.com/attune-packs/prometheus", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/prometheus", "dependencies": { "packs": [] } }, { "ref": "python_example", "label": "Python Example Pack", "description": "Example pack demonstrating Python actions, work queues, and an SDK-based counter sensor with keystore integration", "version": "1.0.0", "author": "Attune Team", "license": "NOASSERTION", "keywords": [ "counter", "examples", "http", "python", "queue", "sensor" ], "runtime_deps": [ "python3" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/python_example.git", "ref": "2012bd0e16d078cd1d955bf84ee7100ece511341", "checksum": "sha256:3dd5241c5f61c387a0be2e9ddfca03bb76b6e0cf52b00b033fb716ad7cdf880e" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/python_example/tar.gz/2012bd0e16d078cd1d955bf84ee7100ece511341", "checksum": "sha256:48a8ea22bbd19b26ac488fb2058387ddf73e3e5be87e8161da75a79a887b7002" } ], "contents": { "actions": [ { "name": "artifact_demo", "description": "Creates a file artifact (written directly to the shared volume) and a progress artifact, updating progress over multiple iterations" }, { "name": "flaky_fail", "description": "An action that randomly fails with a configurable probability. Useful for testing error handling, retry logic, and workflow failure paths." }, { "name": "hello", "description": "A simple Python action that returns a greeting message" }, { "name": "http_example", "description": "Makes an HTTP GET request to example.com using Python's standard library" }, { "name": "list_numbers", "description": "Returns a list of sequential integers starting from a given value" }, { "name": "process_order_queue", "description": "Processes a batch of fulfillment-style queue items and returns per-item queue_ack outcomes for completed, retry, failed, and skipped items." }, { "name": "read_counter", "description": "Receives a counter value (typically from the counter trigger) and returns a formatted message containing it" }, { "name": "simulate_work", "description": "Simulates a unit of work that takes a configurable amount of time, returning structured JSON with timing info. Supports simulated failures for testing error-handling paths." } ], "sensors": [ { "name": "counter_sensor", "description": "Emits periodic counter events with per-rule state stored in the Attune keystore" } ], "triggers": [ { "name": "counter", "description": "Fires at regular intervals with an incrementing counter value scoped per rule" } ], "rules": [ { "name": "count_and_log", "description": "Fires on each counter tick and logs the current counter value" } ], "workflows": [ { "name": "timeline_demo", "description": "A comprehensive demo workflow that exercises every feature of the Workflow Timeline DAG visualizer: parallel branches with different durations, with_items fan-out, failure handling paths, publish directives, retries, timeouts, and custom edge styling.\n" } ] }, "meta": { "category": "examples", "keywords": [ "python", "examples", "queue", "work-queue", "counter", "sensor", "keystore", "http" ], "python_dependencies": [ "attune-sdk[sensor]>=0.1.0" ], "documentation_url": "https://github.com/attune-automation/pack-python-example", "repository_url": "https://github.com/attune-automation/pack-python-example", "default_branch": "main", "commit": "2012bd0e16d078cd1d955bf84ee7100ece511341", "stars": 0, "repository_id": 1244962932 }, "repository": "https://github.com/attune-packs/python_example", "email": "support@attune.io", "homepage": "https://github.com/attune-automation/pack-python-example" }, { "ref": "rabbitmq", "label": "RabbitMQ", "description": "RabbitMQ AMQP publishing and consumption with Management HTTP API inspection", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "amqp", "integration", "messaging", "rabbitmq" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/rabbitmq.git", "ref": "14fa6e7d25fd7aacffa7be47238364b906b30c6e", "checksum": "sha256:0b7266205536647a74bd4dab93748226f796591183ce5e77228f62a18f5ef42f" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/rabbitmq/tar.gz/14fa6e7d25fd7aacffa7be47238364b906b30c6e", "checksum": "sha256:3544f197f39358feb96b800733c48a2f7b56b7940872c02f0693f2a7600f7c95" } ], "contents": { "actions": [ { "name": "list_bindings", "description": "Inspect virtual-host, exchange-source, queue-destination, or exchange-to-queue bindings" }, { "name": "list_exchanges", "description": "Inspect exchanges in a virtual host through the Management HTTP API" }, { "name": "list_queues", "description": "Inspect queues and optional statistics through the Management HTTP API" }, { "name": "publish_message", "description": "Publish one AMQP 0-9-1 message with a broker confirmation" } ], "sensors": [ { "name": "rabbitmq_message", "description": "Consumes AMQP messages with manual acknowledgement for each active rule" } ], "triggers": [ { "name": "message", "description": "Emitted after a message is delivered from a configured RabbitMQ queue" } ], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/attune-packs/rabbitmq", "repository_url": "https://github.com/attune-packs/rabbitmq", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-rabbitmq", "source_version": "1.1.1", "source_revision": "e79bcedf5cef611ff6088b79d9e5926a288fa951", "license": "Apache-2.0", "default_branch": "main", "commit": "14fa6e7d25fd7aacffa7be47238364b906b30c6e", "stars": 0, "repository_id": 1334711992 }, "repository": "https://github.com/attune-packs/rabbitmq", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/rabbitmq", "dependencies": { "packs": [] } }, { "ref": "salesforce", "label": "Salesforce Integration", "description": "Standard interface for the Salesforce REST/Streaming APIs \u2014 CRUD, composite (sObject Collections), Bulk API 2.0, anonymous Apex, SOQL polling sensor, and Change Data Capture sensor.", "version": "0.1.0", "author": "Attune Team", "license": "NOASSERTION", "keywords": [ "crm", "integration", "salesforce" ], "runtime_deps": [ "python", "shell" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/salesforce.git", "ref": "bbfac41db6b5f8c65ec639e9c2e32842ed4de7d3", "checksum": "sha256:b6e6155b6099b5e3e8b709f1d0fcce0c6aaab2ef4d260aa7f77984bfed3a35c6" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/salesforce/tar.gz/bbfac41db6b5f8c65ec639e9c2e32842ed4de7d3", "checksum": "sha256:cdeb7938a137cc1d50059d6cec4bbdd76edf0b2a702314a745835adfdeff12b0" } ], "contents": { "actions": [ { "name": "api_limits", "description": "Return Salesforce org API usage and limits (DailyApiRequests, DataStorageMB, etc.) for monitoring." }, { "name": "bulk_delete", "description": "Delete a large set of records via Bulk API 2.0. Records to delete can\nbe specified by:\n\n * `id_query` \u2014 a SOQL query whose result rows define the Ids to\n delete (e.g. `SELECT Id FROM Account WHERE LastModifiedDate < ...`).\n The query runs through the Bulk Query API and Ids are streamed\n directly into the delete job.\n * `ids[]` \u2014 an explicit array of Salesforce Ids.\n * `records[]` \u2014 inline record maps (each must contain `Id`).\n * `input_artifact_ref` / `input_artifact_id` \u2014 an Attune artifact\n whose CSV/JSON/JSONL rows contain `Id`.\n\nSet `hard_delete: true` to skip the Recycle Bin (requires the\n\"Bulk API Hard Delete\" user permission in the org).\n" }, { "name": "bulk_insert", "description": "Insert a large array of records via Bulk API 2.0 (async job; this\naction waits for completion). Records can be supplied inline via\n`records[]` for small batches, or by referencing an Attune artifact\n(`input_artifact_ref` or `input_artifact_id`) holding CSV, JSON, or\nJSONL \u2014 useful when the dataset is too large to fit in execution\nparameters or when chaining off of `salesforce.bulk_query`.\n" }, { "name": "bulk_query", "description": "Run a SOQL query via Bulk Query API 2.0 for very large result sets.\nCSV results are streamed page-by-page directly to a file-backed Attune\nartifact on the shared artifact volume \u2014 they are NOT returned inline\nin the execution result, to avoid bloating the execution row's JSONB.\nThe emit payload references the artifact by id/ref/version so\ndownstream tasks can read or post-process the file.\n" }, { "name": "bulk_update", "description": "Update a large array of records via Bulk API 2.0. Each record must\ninclude the `Id` field. Records can be supplied inline via `records[]`\nfor small batches, or by referencing an Attune artifact\n(`input_artifact_ref` or `input_artifact_id`) holding CSV, JSON, or\nJSONL \u2014 useful when the dataset is too large to fit in execution\nparameters.\n" }, { "name": "bulk_upsert", "description": "Upsert a large array of records via Bulk API 2.0 keyed on an external\nId field. Records can be supplied inline via `records[]` for small\nbatches, or by referencing an Attune artifact (`input_artifact_ref`\nor `input_artifact_id`) holding CSV, JSON, or JSONL.\n" }, { "name": "create_record", "description": "Create a single Salesforce record. Returns the new Id." }, { "name": "delete_list", "description": "Delete up to 200 records by Id in one call using the Composite sObject Collections API. Wraps sf-toolkit delete_list." }, { "name": "delete_record", "description": "Delete a Salesforce record by Id." }, { "name": "describe_sobject", "description": "Return field, relationship, and metadata describe info for a Salesforce sObject." }, { "name": "execute_apex", "description": "Execute anonymous Apex code via the Tooling API and return compile/execution results." }, { "name": "fetch_list", "description": "Read up to 2000 records by Id in one call using the Composite sObject Collections API. Wraps sf-toolkit fetch_list." }, { "name": "get_record", "description": "Fetch a single Salesforce record by Id, optionally selecting specific fields." }, { "name": "monitor_metadata_deploy", "description": "Poll a Salesforce Metadata API deployment until terminal status, emit meaningful status-change events, and store full result details in an Attune artifact." }, { "name": "process_queue_dml_batch", "description": "Apply many Salesforce DML queue items using the Composite sObject\nCollections API. Items are grouped by operation and endpoint and sent in\nchunks of up to 200 records, Salesforce's composite collection limit.\n\nAccepts items as `queue_items`, `items`, or `payload`. Each item has the\nsame shape as salesforce.process_queue_dml_item:\n {\n \"operation\": \"create\" | \"update\" | \"upsert\" | \"delete\",\n \"sobject\": \"Account\",\n \"record\": { \"Name\": \"Acme\" },\n \"id\": \"001...\",\n \"external_id_field\": \"External_Id__c\",\n \"external_id_value\": \"acme-1\"\n }\n\nResults are returned in the same order as the input items even though the\naction may issue multiple grouped Composite API calls.\n" }, { "name": "process_queue_dml_item", "description": "Apply one Salesforce DML operation described by an Attune queue item.\nThe queue item may be supplied as `queue_item`, `item`, or `payload`.\n\nQueue item shape:\n {\n \"operation\": \"create\" | \"update\" | \"upsert\" | \"delete\",\n \"sobject\": \"Account\",\n \"record\": { \"Name\": \"Acme\" },\n \"id\": \"001...\" ,\n \"external_id_field\": \"External_Id__c\",\n \"external_id_value\": \"acme-1\"\n }\n\n`fields` is accepted as an alias for `record`. `sobject` may be omitted\nwhen `record.attributes.type` is present. For upsert, the external id value\nmay be supplied directly or present in the record under `external_id_field`.\n" }, { "name": "query", "description": "Execute a SOQL query against Salesforce and return matching records. Supports Query All (includes deleted/archived rows) and pagination via nextRecordsUrl." }, { "name": "save_list", "description": "Create and/or update many records in one call via the Composite sObject\nCollections API (wraps sf-toolkit). Items without an Id are inserted;\nitems with an Id are updated. Pass `external_id_field` to switch to\nupsert semantics.\n\nRecords may be **heterogeneous** \u2014 i.e. a single batch can contain\nmultiple sObject types \u2014 as long as each record carries\n`attributes.type`. This makes the action a natural dispatch target for\na work queue that intakes raw SObject records and calls this action in\nbatches of up to 200 (the Salesforce composite-collection cap).\n\n- If `sobject` is provided, it is used as the default `attributes.type`\n for any record that doesn't already declare one.\n- If `sobject` is omitted, every record MUST already have\n `attributes.type` set.\n- For upsert (`external_id_field` set), the Salesforce endpoint is\n per-sObject-type; records with mixed types are grouped and dispatched\n per group. For predictable behavior, prefer queue-side grouping by\n `record.attributes.type` before calling.\n" }, { "name": "start_metadata_deploy", "description": "Submit a zipped Salesforce metadata package to the Metadata API and emit a deployment-requested Attune event." }, { "name": "update_record", "description": "Update fields on an existing Salesforce record by Id (PATCH)." }, { "name": "upsert_record", "description": "Upsert a Salesforce record using an external Id field. Creates the record if no match exists, otherwise updates it." } ], "sensors": [ { "name": "change_data_capture", "description": "Subscribes to one or more Salesforce Change Data Capture channels via CometD/Bayeux long-polling, and emits salesforce.change_event events for every CDC notification received. Supports replay_id-based resume (modern replacement for the legacy PushTopic Streaming API)." }, { "name": "soql_poll", "description": "Long-lived async sensor process. All configuration is supplied per-rule\non the bound triggers (salesforce.soql_record / salesforce.soql_batch):\ncredential_key, sobject / fields / where / order_by / limit (or a raw\nsoql), cursor_field, cursor_initial, lookback_seconds, poll_interval_seconds,\nquery_timeout_seconds, query_all, mode, etc. The sensor itself takes no\nparameters \u2014 see the trigger definitions for the full rule-config schema.\n" } ], "triggers": [ { "name": "change_event", "description": "Fires for every Salesforce Change Data Capture event received by the change_data_capture sensor (CREATE / UPDATE / DELETE / UNDELETE on subscribed channels)." }, { "name": "metadata_deploy_status", "description": "Emitted when a Salesforce metadata deployment is requested and whenever meaningful deployment status details change." }, { "name": "soql_batch", "description": "Fires once per salesforce.soql_poll sensor tick (batch mode) carrying all records returned by that tick." }, { "name": "soql_record", "description": "Fires once per record returned by a salesforce.soql_poll sensor tick (per_record mode)." } ], "rules": [], "workflows": [ { "name": "deploy_metadata_zip", "description": "Deploy a zipped Salesforce metadata package to an org and monitor until Salesforce reports terminal deployment status." } ] }, "meta": { "category": "integration", "keywords": [ "salesforce", "crm", "soql", "cdc", "streaming", "bulk-api" ], "python_dependencies": [ "attune-sdk[sensor]>=0.1.0", "sf-toolkit>=0.5", "httpx>=0.27", "PyJWT[crypto]>=2.8" ], "documentation_url": "https://androxxtraxxon.github.io/python-sf-toolkit/", "default_branch": "main", "commit": "bbfac41db6b5f8c65ec639e9c2e32842ed4de7d3", "stars": 0, "repository_id": 1244983821 }, "repository": "https://github.com/attune-packs/salesforce", "email": "integrations@attune.io", "homepage": "https://androxxtraxxon.github.io/python-sf-toolkit/", "dependencies": { "packs": [] } }, { "ref": "salt", "label": "Salt", "description": "Policy-enforced Salt NetAPI automation with curated minion operations and asynchronous job handling", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "configuration-management", "integration", "netapi", "salt", "saltstack" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/salt.git", "ref": "8148dae52dfd32bcaa3e0de9617aaa6655f2cf1a", "checksum": "sha256:0fe552605c869ac7fff0c4c30802989dce692e7561e3c7534fc5c508864dcb66" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/salt/tar.gz/8148dae52dfd32bcaa3e0de9617aaa6655f2cf1a", "checksum": "sha256:ca41c30e72cc2ca328292c469058e7d81f070aa254c4f388fd88ab2fccba7d87" } ], "contents": { "actions": [ { "name": "dispatch", "description": "Privileged generic NetAPI dispatch with mandatory Key opt-in and a non-bypassable dangerous-function denylist" }, { "name": "file_inspect", "description": "Check an absolute path's file/directory existence or SHA-256 hash without mutation" }, { "name": "grains_get", "description": "Read one grain key or all grains from selected minions" }, { "name": "job_lookup", "description": "Fetch one validated Salt JID through /jobs/" }, { "name": "jobs_list", "description": "List jobs visible in the Salt master job cache through /jobs" }, { "name": "minions", "description": "List minion data or inspect one percent-encoded exact minion ID through /minions" }, { "name": "package", "description": "Install or remove a bounded list of validated package names" }, { "name": "pillar_get", "description": "Read one pillar key or all pillar data; output may contain secrets and must be access-controlled" }, { "name": "service", "description": "Inspect or change one validated service name" }, { "name": "state_apply", "description": "Apply an explicitly named bounded list of SLS modules, asynchronously by default" }, { "name": "state_highstate", "description": "Apply highstate to selected minions, asynchronously by default" }, { "name": "test_ping", "description": "Run test.ping against a policy-validated minion target" }, { "name": "user_inspect", "description": "Read account information or group membership for one validated user name without mutation" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/attune-packs/salt", "repository_url": "https://github.com/attune-packs/salt", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-salt", "source_version": "3.0.1", "source_revision": "f053dcedea737c3632d88b7b7e7671ca93e81bd2", "source_tag": "v3.0.1", "license": "Apache-2.0", "salt_api_reviewed_version": "3008.1-2", "default_branch": "main", "commit": "8148dae52dfd32bcaa3e0de9617aaa6655f2cf1a", "stars": 0, "repository_id": 1334729429 }, "repository": "https://github.com/attune-packs/salt", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/salt", "dependencies": { "packs": [] } }, { "ref": "servicenow", "label": "ServiceNow", "description": "Restricted ServiceNow Table, incident, change, attachment, CMDB, and directory REST actions", "version": "0.1.0", "author": "Attune; adapted from work by James Fryman and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "change", "cmdb", "incident", "integration", "itsm", "servicenow" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/servicenow.git", "ref": "a1b019103bd6e9564bdb0a5d968de3d07cd7b437", "checksum": "sha256:942fdfa2e2a85b28bfb379082b7c73a39fe8f3561b901186cca9e242d277a769" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/servicenow/tar.gz/a1b019103bd6e9564bdb0a5d968de3d07cd7b437", "checksum": "sha256:22cdbbdbff72170f394cf15a8751869ad1e71927480cdb39d8cdf22e6b579a8c" } ], "contents": { "actions": [ { "name": "attachment_delete", "description": "Delete one allowed attachment by sys_id after metadata verification and exact confirmation" }, { "name": "attachment_download", "description": "Download one allowed attachment to a confined artifact path using an atomic file replacement" }, { "name": "attachment_list", "description": "List attachment metadata for one allowed record after verifying its sys_id" }, { "name": "attachment_upload", "description": "Upload one confined artifact file to an allowed, verified record" }, { "name": "change_create", "description": "Create a change request from curated fields; short_description is required" }, { "name": "change_get", "description": "Get one change request by sys_id" }, { "name": "change_list", "description": "List change requests with validated encoded queries, selected fields, and bounded pagination" }, { "name": "change_transition", "description": "Apply a named profile-allowlisted change state by sys_id after exact confirmation" }, { "name": "change_update", "description": "Patch curated non-lifecycle change fields by sys_id with optional conflict guards" }, { "name": "cmdb_ci_lookup", "description": "Look up a base cmdb_ci record by preferred sys_id or exact validated name" }, { "name": "cmdb_ci_update", "description": "Patch conservative fields on one base cmdb_ci record by sys_id with optional conflict guards" }, { "name": "group_lookup", "description": "Look up a ServiceNow group by preferred sys_id or exact validated name" }, { "name": "incident_close", "description": "Close one incident using the protected profile state mapping and exact transition confirmation" }, { "name": "incident_create", "description": "Create an incident from curated scalar fields; short_description is required" }, { "name": "incident_get", "description": "Get one incident by sys_id" }, { "name": "incident_list", "description": "List incidents with validated encoded queries, selected fields, and bounded offset pagination" }, { "name": "incident_resolve", "description": "Resolve one incident using the protected profile state mapping and exact transition confirmation" }, { "name": "incident_update", "description": "Patch curated non-lifecycle incident fields by sys_id with optional conflict guards" }, { "name": "table_create", "description": "Create one record using only credential-allowlisted scalar fields" }, { "name": "table_delete", "description": "Delete one credential-allowlisted record by sys_id after exact confirmation and preflight" }, { "name": "table_get", "description": "Get one credential-allowlisted table record by sys_id" }, { "name": "table_list", "description": "List fields from a credential-allowlisted ServiceNow table with bounded offset pagination" }, { "name": "table_update", "description": "Patch one record by sys_id using allowlisted non-lifecycle fields and optional conflict guards" }, { "name": "user_lookup", "description": "Look up a ServiceNow user by preferred sys_id or exact validated user_name" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://www.servicenow.com/docs/bundle/zurich-api-reference/page/integrate/inbound-rest/concept/c_RESTAPI.html", "repository_url": "https://github.com/attune-packs/servicenow", "source_revision": "15bc510dc05143562497b9974805ed1fba189885", "source_version": "1.0.0-4-g15bc510", "license": "Apache-2.0", "default_branch": "main", "commit": "a1b019103bd6e9564bdb0a5d968de3d07cd7b437", "stars": 0, "repository_id": 1334894435 }, "repository": "https://github.com/attune-packs/servicenow", "email": "support@attune.systems", "homepage": "https://www.servicenow.com/docs/bundle/zurich-api-reference/page/integrate/inbound-rest/concept/c_RESTAPI.html", "dependencies": { "packs": [] } }, { "ref": "slack", "label": "Slack", "description": "Slack Web API, incoming webhook, file upload, and Socket Mode integration", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "chat", "integration", "messaging", "slack" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/slack.git", "ref": "64db444b0926e56b996af66084e7e8ab6f4d3d81", "checksum": "sha256:36dc2af6af0bc0ed97ce413e5eee35c06d8bdd1bb65900eda14616aca7b28a58" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/slack/tar.gz/64db444b0926e56b996af66084e7e8ab6f4d3d81", "checksum": "sha256:8237d242209377cf0db582ad4da5a7b19a445593662894b1db0767cc37b86414" } ], "contents": { "actions": [ { "name": "api_call", "description": "Call a Slack Web API method using a structured payload" }, { "name": "filter_users", "description": "List all Slack users and filter attributes with case-sensitive shell wildcards" }, { "name": "post_attachment", "description": "Post one legacy attachment through a Slack incoming webhook" }, { "name": "post_message", "description": "Post a text message through a Slack incoming webhook" }, { "name": "upload_file", "description": "Upload content or an execution artifact with Slack's v2 upload flow" } ], "sensors": [ { "name": "slack_socket_mode", "description": "Receives Slack Events API message envelopes over Socket Mode for active rules" } ], "triggers": [ { "name": "message", "description": "Emitted for channel messages received through Slack Socket Mode" } ], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/attune-packs/slack", "repository_url": "https://github.com/attune-packs/slack", "source_version": "2.3.0", "license": "Apache-2.0", "default_branch": "main", "commit": "64db444b0926e56b996af66084e7e8ab6f4d3d81", "stars": 0, "repository_id": 1332364280 }, "repository": "https://github.com/attune-packs/slack", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/slack", "dependencies": { "packs": [] } }, { "ref": "splunk", "label": "Splunk", "description": "Bounded Splunk Enterprise and Splunk Cloud search, HEC ingestion, and narrowly scoped administration", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "hec", "observability", "search", "siem", "splunk" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/splunk.git", "ref": "2fc26a68ebda0ceb9dd6e4a72337b244267311b9", "checksum": "sha256:7f9cded50a45ac2d6ecce8afbe2b3d487d119d548b41373f597a1694cd6bc3a9" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/splunk/tar.gz/2fc26a68ebda0ceb9dd6e4a72337b244267311b9", "checksum": "sha256:e0b31b4946dfee7ea639f8619e3f5cd396fd2eaf8cb722313a0349b5a20178b1" } ], "contents": { "actions": [ { "name": "hec_event", "description": "Send one bounded JSON event through the independently configured HEC endpoint and token" }, { "name": "hec_token_list", "description": "List bounded HEC token metadata without returning token secrets (Splunk Enterprise administration)" }, { "name": "hec_token_set_enabled", "description": "Change one named application HEC token without exposing its secret or changing global HEC state" }, { "name": "search_cancel", "description": "Request cancellation of one search SID" }, { "name": "search_create", "description": "Create an asynchronous Splunk search job and return its SID" }, { "name": "search_results", "description": "Return one bounded page from the current search/v2 results endpoint" }, { "name": "search_status", "description": "Get normalized status and progress for one search SID" }, { "name": "search_sync", "description": "Create a search job, wait for bounded completion, and return one bounded result page" }, { "name": "user_lookup", "description": "Return an allowlisted profile for one Splunk user" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/attune-packs/splunk", "repository_url": "https://github.com/attune-packs/splunk", "source_revision": "6bc01ba4253e4372f829d77bba6350799a0fed31", "source_version": "2.3.0", "license": "Apache-2.0", "default_branch": "main", "commit": "2fc26a68ebda0ceb9dd6e4a72337b244267311b9", "stars": 0, "repository_id": 1334710085 }, "repository": "https://github.com/attune-packs/splunk", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/splunk", "dependencies": { "packs": [] } }, { "ref": "sql", "label": "SQL Databases", "description": "Transactional SQL actions for PostgreSQL, MySQL/MariaDB, SQL Server, Oracle, Firebird, and SQLite", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "database", "mssql", "mysql", "postgresql", "sql" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/sql.git", "ref": "68d5b783883a33aab850700258a5e6cccc314b75", "checksum": "sha256:bf83dfe62e35ec197c2e08e10d420876ac0227bfae842684f77093f1fd36fe4d" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/sql/tar.gz/68d5b783883a33aab850700258a5e6cccc314b75", "checksum": "sha256:d3ba774969315595af6fee76ae5d5bea9890d4226b0d06251f3c601badfaa35e" } ], "contents": { "actions": [ { "name": "delete", "description": "Delete rows matching equality predicates in one transaction" }, { "name": "insert", "description": "Insert one row using reflected table metadata and bound values" }, { "name": "insert_bulk", "description": "Insert multiple rows in one explicit transaction" }, { "name": "query", "description": "Execute one parameterized SQL statement and return bounded rows or an affected-row count" }, { "name": "update", "description": "Update rows matching equality predicates in one transaction" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/attune-packs/sql", "repository_url": "https://github.com/attune-packs/sql", "source_version": "1.1.2", "license": "Apache-2.0", "default_branch": "main", "commit": "68d5b783883a33aab850700258a5e6cccc314b75", "stars": 0, "repository_id": 1332364318 }, "repository": "https://github.com/attune-packs/sql", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/sql", "dependencies": { "packs": [] } }, { "ref": "terraform", "label": "HashiCorp Terraform", "description": "Confined, non-interactive Terraform CLI lifecycle and state actions", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "hashicorp", "infrastructure", "state", "terraform" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/terraform.git", "ref": "76bbfe3abfc74dd29a074ba8d28c75e32cf7a254", "checksum": "sha256:524674abeb3f153d95509b450a6d57389b7ca0f03299f931464d6d392bc01ffd" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/terraform/tar.gz/76bbfe3abfc74dd29a074ba8d28c75e32cf7a254", "checksum": "sha256:45f585be4400c1e076ba4757ffd91351a14002355c85a79a70f9f50a8a249a21" } ], "contents": { "actions": [ { "name": "apply_configuration", "description": "Generate and apply a new plan only after stronger exact confirmation" }, { "name": "apply_plan", "description": "Apply a hash, directory, workspace, and Terraform-version verified saved plan" }, { "name": "destroy", "description": "Destroy managed resources in an exact workspace after exact confirmation" }, { "name": "fmt", "description": "Recursively rewrite Terraform configuration to canonical format" }, { "name": "fmt_check", "description": "Check canonical formatting without modifying configuration" }, { "name": "import", "description": "Bind an existing remote object to a state address after exact confirmation" }, { "name": "init", "description": "Initialize modules, providers, dependency lock file, and backend non-interactively" }, { "name": "output", "description": "Return stable structured root outputs while redacting values marked sensitive" }, { "name": "plan", "description": "Create a private saved plan and continuity metadata for later verified apply" }, { "name": "show", "description": "Return bounded structured state or plan data with Terraform-marked sensitive values redacted" }, { "name": "state_list", "description": "List resource addresses in an exact selected workspace" }, { "name": "state_mv", "description": "Move one state address with an exact confirmation and private mandatory backup" }, { "name": "state_rm", "description": "Forget state addresses with exact confirmation and a private mandatory backup" }, { "name": "state_show", "description": "Return one structured state resource with Terraform-marked sensitive values redacted" }, { "name": "validate", "description": "Validate initialized configuration and parse Terraform's stable validation JSON" }, { "name": "version", "description": "Return structured Terraform CLI version information" }, { "name": "workspace_delete", "description": "Delete a non-current workspace after exact confirmation" }, { "name": "workspace_list", "description": "List backend workspaces and identify the selected workspace" }, { "name": "workspace_new", "description": "Create and select a new Terraform workspace" }, { "name": "workspace_select", "description": "Select an existing Terraform workspace" }, { "name": "workspace_show", "description": "Return the currently selected Terraform workspace" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "infrastructure", "documentation_url": "https://github.com/attune-packs/terraform", "repository_url": "https://github.com/attune-packs/terraform", "source_revision": "6e7beac21e4a5737cd1a3e726ed0c5ff71dd8cc9", "source_version": "2.0.2", "license": "Apache-2.0", "default_branch": "main", "commit": "76bbfe3abfc74dd29a074ba8d28c75e32cf7a254", "stars": 0, "repository_id": 1334896760 }, "repository": "https://github.com/attune-packs/terraform", "email": "support@attune.systems", "homepage": "https://github.com/attune-packs/terraform", "dependencies": { "packs": [] } }, { "ref": "vault", "label": "HashiCorp Vault", "description": "Security-focused HashiCorp Vault actions with pack-owned encrypted Attune Key credential and secret sinks.", "version": "1.0.0", "author": "Attune Team", "license": "Apache-2.0", "keywords": [ "hashicorp", "secrets", "security", "vault" ], "runtime_deps": [ "python3" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/vault.git", "ref": "6a73b3aecd2a8b0510477851e394722dcf8464f5", "checksum": "sha256:31b318be1dc0be6e52478e11c4ad0baa7c8f37dca3ab211f72813776554c8950" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/vault/tar.gz/6a73b3aecd2a8b0510477851e394722dcf8464f5", "checksum": "sha256:ee518da5bc90ac665fbe2d74c0947ee63bf1501f2eb776132e93f5c1a650c170" } ], "contents": { "actions": [ { "name": "approle_login", "description": "Log in with the AppRole profile and write the token or wrapping token directly to a pack-owned encrypted Attune Key. No token enters action output." }, { "name": "health", "description": "Read the root-namespace-only unauthenticated Vault health endpoint using the profile's endpoint and TLS settings." }, { "name": "kv_delete", "description": "Delete KV v1 data permanently or soft-delete KV v2 latest/specified versions. KV v1 requires DELETE KV V1: mount/path." }, { "name": "kv_destroy", "description": "Permanently destroy KV v2 versions. Requires exact DESTROY KV VERSIONS: mount/path#sorted,versions confirmation." }, { "name": "kv_list", "description": "List KV v1/v2 key names. Vault does not ACL-filter names; names and this action output are persisted by Attune." }, { "name": "kv_metadata", "description": "Read bounded KV v2 version metadata. Custom metadata is intentionally excluded from persisted action output." }, { "name": "kv_patch", "description": "Native KV v2 JSON merge patch with mandatory CAS; performs no preliminary secret read and no retry." }, { "name": "kv_read", "description": "Read KV v1/v2 secret data directly into a pack-owned encrypted Attune Key. Secret values never enter output; all returned metadata is persisted by Attune." }, { "name": "kv_undelete", "description": "Restore soft-deleted KV v2 versions once." }, { "name": "kv_write", "description": "Write secret data to KV v1/v2 once. Use CAS for concurrency-safe KV v2 writes." }, { "name": "policy_delete", "description": "Delete an ACL policy once. Requires exact DELETE POLICY: name confirmation." }, { "name": "policy_list", "description": "List ACL policy names. Names and action outputs are persisted by Attune." }, { "name": "policy_read", "description": "Read an ACL policy. Policy text and paths are persisted in Attune action output." }, { "name": "policy_write", "description": "Create or replace an ACL policy once. This can escalate privileges and requires exact WRITE POLICY: name confirmation." }, { "name": "token_create", "description": "Create a non-root child token with explicit policies and bounded TTL, then store it directly in a pack-owned encrypted Attune Key. Requires exact CREATE TOKEN: sorted,policies confirmation." }, { "name": "token_lookup_self", "description": "Return minimal metadata for the bootstrap token; never returns its token or accessor. Action outputs are persisted by Attune." }, { "name": "token_renew_self", "description": "Renew the bootstrap token once. Vault may cap or ignore the requested increment." }, { "name": "token_revoke_self", "description": "Revoke the bootstrap token and its children. Requires exact confirmation REVOKE SELF." }, { "name": "transit_decrypt", "description": "Decrypt Transit ciphertext directly into a pack-owned encrypted Attune Key. Plaintext never enters output." }, { "name": "transit_encrypt", "description": "Encrypt UTF-8 plaintext with an existing Transit key. Plaintext is secret input; ciphertext is persisted in Attune output." }, { "name": "transit_sign", "description": "Sign UTF-8 input with an existing Transit signing key. Input is treated as secret; signature is persisted in Attune output." }, { "name": "transit_verify", "description": "Verify a Transit signature over UTF-8 input. Input is treated as secret; validity is persisted in Attune output." } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "security", "keywords": [ "vault", "hashicorp", "secrets", "kv", "approle", "transit" ], "python_dependencies": [ "attune-sdk>=0.1.0", "hvac==2.4.0" ], "documentation_url": "https://github.com/attune-packs/vault", "repository_url": "https://github.com/attune-packs/vault", "default_branch": "main", "commit": "6a73b3aecd2a8b0510477851e394722dcf8464f5", "stars": 0, "repository_id": 1334894445 }, "repository": "https://github.com/attune-packs/vault", "email": "integrations@attune.io", "homepage": "https://github.com/attune-packs/vault", "dependencies": { "packs": [] } }, { "ref": "vsphere", "label": "VMware vSphere", "description": "Safe vCenter inventory, VM lifecycle, hardware, snapshot, tag, migration, and guest operations", "version": "0.1.0", "author": "Attune; adapted from work by Paul Mulvihill and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "infrastructure", "vcenter", "virtualization", "vmware", "vsphere" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/vsphere.git", "ref": "79c3837b9ae1fbc664ad20dbb0d5c4a70c373a2f", "checksum": "sha256:dbf21487d207304813af2072237f784df55ee280b20ebc6ca330df1f98f9a68e" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/vsphere/tar.gz/79c3837b9ae1fbc664ad20dbb0d5c4a70c373a2f", "checksum": "sha256:b11e6e639be8c41675392288df8418279cbb66955ea4d730dddd387d4b0a7799" } ], "contents": { "actions": [ { "name": "guest_file", "description": "Upload, download, or delete one guest file with separate credentials and confined local artifacts" }, { "name": "guest_process", "description": "Start or inspect one guest process using a separate guest credential Key" }, { "name": "guest_tools_get", "description": "Read power, guest, and VMware Tools state for one VM without guest credentials" }, { "name": "inventory_list", "description": "Discover datacenters, clusters, hosts, datastores, networks, or folders with MOIDs and explicit paths" }, { "name": "snapshot", "description": "List, create, revert, or delete a snapshot belonging to one VM MOID" }, { "name": "tag", "description": "List, create, or explicitly delete current vSphere Automation API tags" }, { "name": "tag_association", "description": "List, attach, or detach a tag using an explicit object type and stable object MOID" }, { "name": "tag_category", "description": "List, create, or explicitly delete current vSphere Automation API tag categories" }, { "name": "task_status", "description": "Inspect or bounded-poll one task MOID without a durable sensor or implicit retry" }, { "name": "vm_clone", "description": "Clone a non-template VM into explicit inventory and datastore placement without powering on" }, { "name": "vm_cpu_memory_set", "description": "Reconfigure VM CPU count and/or memory by stable VM MOID" }, { "name": "vm_create_from_template", "description": "Clone a template into an explicit folder, resource pool, datastore, and optional host without powering on" }, { "name": "vm_disk", "description": "Add, grow, detach, or permanently remove one VM disk using explicit device, controller, and datastore MOIDs" }, { "name": "vm_get", "description": "Get one VM by stable MOID with path, runtime, hardware, and VMware Tools details" }, { "name": "vm_list", "description": "List VMs with stable MOIDs, explicit inventory paths, power state, and template status" }, { "name": "vm_migrate", "description": "Compute-migrate a VM to an explicit host and resource pool after validating current datastore access" }, { "name": "vm_nic", "description": "Add, edit, or remove one VM NIC using explicit device and network MOIDs" }, { "name": "vm_power", "description": "Explicitly power on/off, guest shutdown/reboot, suspend, or hard reset one VM" }, { "name": "vm_relocate", "description": "Storage/compute relocate a VM to explicit datastore, resource pool, and optional host placement" } ], "sensors": [], "triggers": [], "rules": [], "workflows": [] }, "meta": { "category": "infrastructure", "documentation_url": "https://developer.broadcom.com/xapis/vsphere-web-services-api/latest/", "repository_url": "https://github.com/attune-packs/vsphere", "source_revision": "eed7a36730d4e3f3c9463b256e5009374acd6072", "source_version": "1.3.5", "license": "Apache-2.0", "default_branch": "main", "commit": "79c3837b9ae1fbc664ad20dbb0d5c4a70c373a2f", "stars": 0, "repository_id": 1334895454 }, "repository": "https://github.com/attune-packs/vsphere", "email": "support@attune.systems", "homepage": "https://developer.broadcom.com/xapis/vsphere-web-services-api/latest/", "dependencies": { "packs": [] } }, { "ref": "yt_dlp", "label": "yt-dlp Media", "description": "Media availability monitoring and downloads backed by the yt-dlp Python library", "version": "0.1.0", "author": "Attune", "license": "Apache-2.0", "keywords": [ "archive", "media", "streaming", "yt-dlp" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/yt_dlp.git", "ref": "35d2c67fcb14613c07b89393fccd94159a00df36", "checksum": "sha256:1612c6f946e105dcea95f0aaadc7041c8b5711875ad52a18cc808f857042549e" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/yt_dlp/tar.gz/35d2c67fcb14613c07b89393fccd94159a00df36", "checksum": "sha256:37d86804cf513bcafd6ef7f20a206c3733bf0b616f92a1c15f338b357f2beda4" } ], "contents": { "actions": [ { "name": "download", "description": "Downloads on-demand media or records a live stream through the yt-dlp Python library" } ], "sensors": [ { "name": "media_availability_sensor", "description": "Polls yt-dlp-supported media sources and emits availability changes" } ], "triggers": [ { "name": "media_available", "description": "Emitted when a media item first matches or changes to a configured availability state" } ], "rules": [], "workflows": [] }, "meta": { "category": "integration", "documentation_url": "https://github.com/yt-dlp/yt-dlp", "repository_url": "https://github.com/attune-packs/yt_dlp", "source_repository": "https://github.com/nexus9560/Auto-Archiver", "license": "Apache-2.0", "keywords": [ "media", "streaming", "archive", "yt-dlp" ], "default_branch": "main", "commit": "35d2c67fcb14613c07b89393fccd94159a00df36", "stars": 0, "repository_id": 1356718104 }, "repository": "https://github.com/attune-packs/yt_dlp", "email": "support@attune.systems", "homepage": "https://github.com/yt-dlp/yt-dlp", "dependencies": { "packs": [] } }, { "ref": "zabbix", "label": "Zabbix", "description": "Curated Zabbix 7.4 JSON-RPC integration with safe, Attune Key-backed operations", "version": "0.1.0", "author": "Attune; adapted from work by Hiroyasu OHYAMA, namachieli, and StackStorm Exchange contributors", "license": "Apache-2.0", "keywords": [ "events", "integration", "json-rpc", "monitoring", "zabbix" ], "runtime_deps": [ "python" ], "install_sources": [ { "type": "git", "url": "https://github.com/attune-packs/zabbix.git", "ref": "5b6936266456c9faf9ef6f7b60f6a3a781c49671", "checksum": "sha256:57f9b064b148d51df31d7cdf90bf61198ce71be6986ddcc0527d759bb9753f34" }, { "type": "archive", "url": "https://codeload.github.com/attune-packs/zabbix/tar.gz/5b6936266456c9faf9ef6f7b60f6a3a781c49671", "checksum": "sha256:08e179d5c4d9bb06619f25d070f4526d4ef6e36a0d3726b8cf9db15cf7e9fcc1" } ], "contents": { "actions": [ { "name": "alert_list", "description": "Retrieve alerts by event and bounded UTC epoch range" }, { "name": "api_version", "description": "Return the Zabbix API version without sending authentication to apiinfo.version" }, { "name": "event_acknowledge", "description": "Acknowledge one event and optionally close it when manual close is supported" }, { "name": "event_list", "description": "Retrieve trigger events with bounded ID, host, and UTC epoch filters" }, { "name": "history_get", "description": "Retrieve one Zabbix history value type for explicit item IDs and a bounded time range" }, { "name": "host_create", "description": "Create one host in explicit groups; templates must be linked separately" }, { "name": "host_delete", "description": "Delete exactly one host after an ID-bound confirmation" }, { "name": "host_get", "description": "Get one host by immutable ID with group, template, and interface context" }, { "name": "host_group_create", "description": "Create one host group" }, { "name": "host_group_delete", "description": "Delete exactly one host group after an ID-bound confirmation" }, { "name": "host_group_list", "description": "List or search host groups with a bounded result set" }, { "name": "host_group_update", "description": "Rename one host group by immutable ID" }, { "name": "host_list", "description": "List hosts with groups, templates, and interfaces using a bounded result set" }, { "name": "host_update", "description": "Update non-template, non-group host fields for exactly one host ID" }, { "name": "item_list", "description": "Discover items by host IDs and name search with a bounded result set" }, { "name": "maintenance_create", "description": "Create a time-bounded maintenance window scoped to explicit host or group IDs" }, { "name": "maintenance_delete", "description": "Delete one maintenance window after an ID-bound confirmation" }, { "name": "maintenance_list", "description": "List maintenance windows with scoped hosts, groups, and time periods" }, { "name": "maintenance_update", "description": "Replace the explicit scope and schedule of one maintenance window" }, { "name": "media_type_list", "description": "Read non-secret media type metadata" }, { "name": "monitoring_set", "description": "Enable or disable monitoring on one preflighted host ID" }, { "name": "problem_list", "description": "Retrieve current or recent problems with bounded time, host, and severity filters" }, { "name": "proxy_group_list", "description": "List proxy groups using the current Zabbix 7.4 proxygroup.get method" }, { "name": "proxy_list", "description": "List current Zabbix proxies with a bounded result set" }, { "name": "script_execute", "description": "Execute one preconfigured Zabbix script on one host after exact confirmation" }, { "name": "template_link", "description": "Add explicit templates to one host without replacing existing links" }, { "name": "template_list", "description": "List or search templates with a bounded result set" }, { "name": "template_unlink", "description": "Unlink explicit templates from one host without clearing inherited entities" }, { "name": "trigger_list", "description": "Discover triggers by host IDs and description with host and tag context" }, { "name": "user_list", "description": "Read non-secret user profile, group, and media assignment fields" } ], "sensors": [ { "name": "problem_poll", "description": "Polls trigger problem events with durable per-rule checkpoints and at-least-once delivery" } ], "triggers": [ { "name": "problem_event", "description": "Emitted by the managed polling sensor for each new trigger problem event" } ], "rules": [], "workflows": [] }, "meta": { "category": "monitoring", "documentation_url": "https://www.zabbix.com/documentation/current/en/manual/api", "repository_url": "https://github.com/attune-packs/zabbix", "source_repository": "https://github.com/StackStorm-Exchange/stackstorm-zabbix", "source_revision": "1b3ebdca44dab27c1a58ed11819a63d5b329d3f8", "source_version": "2.0.0", "api_baseline": "Zabbix 7.4.13", "api_baseline_revision": "3c95000629791258a59622e3e4e995df45c44453", "license": "Apache-2.0", "default_branch": "main", "commit": "5b6936266456c9faf9ef6f7b60f6a3a781c49671", "stars": 0, "repository_id": 1334895072 }, "repository": "https://github.com/attune-packs/zabbix", "email": "support@attune.systems", "homepage": "https://www.zabbix.com/documentation/current/en/manual/api", "dependencies": { "packs": [] } } ] }