diff --git a/.github/workflows/generate-doc.yml b/.github/workflows/generate-doc.yml new file mode 100644 index 0000000..9284f9d --- /dev/null +++ b/.github/workflows/generate-doc.yml @@ -0,0 +1,20 @@ +name: Generate Readme Doc +on: + workflow_dispatch: + push: + paths: + - '*.json' + - 'readme.html' + - 'manual_readme_content.md' + tags-ignore: + - '**' + branches-ignore: + - next + - main +jobs: + generate-doc: + runs-on: ubuntu-latest + steps: + - uses: 'phantomcyber/dev-cicd-tools/github-actions/generate-doc@main' + with: + GITHUB_TOKEN: ${{ secrets.SOAR_APPS_TOKEN }} diff --git a/.github/workflows/review-release.yml b/.github/workflows/review-release.yml new file mode 100644 index 0000000..6f3bf31 --- /dev/null +++ b/.github/workflows/review-release.yml @@ -0,0 +1,22 @@ +name: Review Release +concurrency: + group: app-release + cancel-in-progress: true +permissions: + contents: read + id-token: write + statuses: write +on: + workflow_dispatch: + inputs: + task_token: + description: 'StepFunction task token' + required: true + +jobs: + review: + uses: 'phantomcyber/dev-cicd-tools/.github/workflows/review-release.yml@main' + with: + task_token: ${{ inputs.task_token }} + secrets: + resume_release_role_arn: ${{ secrets.RESUME_RELEASE_ROLE_ARN }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ded2996..b30f6a0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,11 +1,11 @@ repos: - repo: https://github.com/phantomcyber/dev-cicd-tools - rev: v1.9 + rev: v1.16 hooks: - id: org-hook - id: package-app-dependencies - repo: https://github.com/Yelp/detect-secrets - rev: v1.1.0 + rev: v1.4.0 hooks: - id: detect-secrets args: ['--no-verify', '--exclude-files', '^f5bigipltm.json$'] diff --git a/LICENSE b/LICENSE index f9b71ef..271de55 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright (c) 2019-2022 Splunk Inc. + Copyright (c) 2019-2024 Splunk Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/NOTICE b/NOTICE index db2ca2b..7ae0579 100644 --- a/NOTICE +++ b/NOTICE @@ -1,5 +1,5 @@ Splunk SOAR F5 BIG-IP LTM -Copyright (c) 2019-2022 Splunk Inc. +Copyright (c) 2019-2024 Splunk Inc. Third-party Software Attributions: diff --git a/README.md b/README.md index 3813181..d9a05a4 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,24 @@ [comment]: # "Auto-generated SOAR connector documentation" -# F5 BIG\-IP LTM +# F5 BIG-IP LTM Publisher: Splunk -Connector Version: 2\.1\.1 +Connector Version: 2.1.2 Product Vendor: F5 Product Name: Local Traffic Manager -Product Version Supported (regex): "\.\*" -Minimum Product Version: 5\.1\.0 +Product Version Supported (regex): ".\*" +Minimum Product Version: 6.1.1 -This app implements investigate and generic actions to integrate with an F5 BIG\-IP LTM instance to manage pools and nodes +This app implements investigate and generic actions to integrate with an F5 BIG-IP LTM instance to manage pools and nodes ### Configuration Variables The below configuration variables are required for this Connector to operate. These variables are specified when configuring a Local Traffic Manager asset in SOAR. VARIABLE | REQUIRED | TYPE | DESCRIPTION -------- | -------- | ---- | ----------- -**base\_url** | required | string | Base URL of F5 BIG\-IP LTM instance \(e\.g\. https\://10\.1\.16\.110\) +**base_url** | required | string | Base URL of F5 BIG-IP LTM instance (e.g. https://10.1.16.110) **username** | required | string | User name **password** | required | password | Password -**verify\_server\_cert** | optional | boolean | Verify Server SSL certificate +**verify_server_cert** | optional | boolean | Verify Server SSL certificate ### Supported Actions [test connectivity](#action-test-connectivity) - Validate the asset configuration for connectivity using the supplied configuration @@ -32,9 +32,9 @@ VARIABLE | REQUIRED | TYPE | DESCRIPTION [enable node](#action-enable-node) - Enable a node [describe node](#action-describe-node) - Get information about a node [get node stats](#action-get-node-stats) - Get stats of the node -[list nodes](#action-list-nodes) - Fetch a list of nodes \(if no value is provided, all nodes will be returned\) -[list pools](#action-list-pools) - Fetch a list of configured pools \(if no value is provided, all pools will be returned\) -[list members](#action-list-members) - Fetch a list of configured node members of a pool \(if no value is provided, all node members of a pool will be returned\) +[list nodes](#action-list-nodes) - Fetch a list of nodes (if no value is provided, all nodes will be returned) +[list pools](#action-list-pools) - Fetch a list of configured pools (if no value is provided, all pools will be returned) +[list members](#action-list-members) - Fetch a list of configured node members of a pool (if no value is provided, all node members of a pool will be returned) ## action: 'test connectivity' Validate the asset configuration for connectivity using the supplied configuration @@ -57,41 +57,41 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**node\_name** | required | Name of the node to create | string | `f5 node name` -**partition\_name** | required | Name of the partition | string | `f5 partition name` -**ip\_address** | required | IP address of the new node | string | `ip` `ipv6` +**node_name** | required | Name of the node to create | string | `f5 node name` +**partition_name** | required | Name of the partition | string | `f5 partition name` +**ip_address** | required | IP address of the new node | string | `ip` `ipv6` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.ip\_address | string | `ip` `ipv6` -action\_result\.parameter\.node\_name | string | `f5 node name` -action\_result\.parameter\.partition\_name | string | `f5 partition name` -action\_result\.data\.\*\.address | string | `ip` -action\_result\.data\.\*\.connectionLimit | numeric | -action\_result\.data\.\*\.dynamicRatio | numeric | -action\_result\.data\.\*\.ephemeral | string | -action\_result\.data\.\*\.fqdn\.addressFamily | string | -action\_result\.data\.\*\.fqdn\.autopopulate | string | -action\_result\.data\.\*\.fqdn\.downInterval | numeric | -action\_result\.data\.\*\.fqdn\.interval | string | -action\_result\.data\.\*\.fullPath | string | -action\_result\.data\.\*\.generation | numeric | -action\_result\.data\.\*\.kind | string | -action\_result\.data\.\*\.logging | string | -action\_result\.data\.\*\.monitor | string | -action\_result\.data\.\*\.name | string | `f5 node name` -action\_result\.data\.\*\.partition | string | `f5 partition name` -action\_result\.data\.\*\.rateLimit | string | -action\_result\.data\.\*\.ratio | numeric | -action\_result\.data\.\*\.selfLink | string | `url` -action\_result\.data\.\*\.session | string | -action\_result\.data\.\*\.state | string | -action\_result\.summary\.node\_name | string | `f5 node name` -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.ip_address | string | `ip` `ipv6` | 1.1.1.1 +action_result.parameter.node_name | string | `f5 node name` | test +action_result.parameter.partition_name | string | `f5 partition name` | Common +action_result.data.\*.address | string | `ip` | 1.1.1.1 +action_result.data.\*.connectionLimit | numeric | | 0 +action_result.data.\*.dynamicRatio | numeric | | 1 +action_result.data.\*.ephemeral | string | | false +action_result.data.\*.fqdn.addressFamily | string | | ipv4 +action_result.data.\*.fqdn.autopopulate | string | | disabled +action_result.data.\*.fqdn.downInterval | numeric | | 5 +action_result.data.\*.fqdn.interval | string | | 3600 +action_result.data.\*.fullPath | string | | /Common/test8 +action_result.data.\*.generation | numeric | | 138 +action_result.data.\*.kind | string | | tm:ltm:node:nodestate +action_result.data.\*.logging | string | | disabled +action_result.data.\*.monitor | string | | default +action_result.data.\*.name | string | `f5 node name` | test +action_result.data.\*.partition | string | `f5 partition name` | Common +action_result.data.\*.rateLimit | string | | disabled +action_result.data.\*.ratio | numeric | | 1 +action_result.data.\*.selfLink | string | `url` | https://localhost/mgmt/tm/ltm/node/~Common~test8?ver=15.0.0 +action_result.data.\*.session | string | | user-enabled +action_result.data.\*.state | string | | unchecked +action_result.summary.node_name | string | `f5 node name` | test8 +action_result.message | string | | Node successfully created +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'delete node' Delete a node @@ -102,18 +102,18 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**node\_name** | required | Name of the node to delete | string | `f5 node name` +**node_name** | required | Name of the node to delete | string | `f5 node name` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.node\_name | string | `f5 node name` -action\_result\.data | string | -action\_result\.summary\.node\_name | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.node_name | string | `f5 node name` | test8 +action_result.data | string | | +action_result.summary.node_name | string | | test8 +action_result.message | string | | Successfully deleted node +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'remove node' Remove a node from a pool @@ -124,24 +124,24 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**node\_name** | required | Name of the node to remove | string | `f5 node name` +**node_name** | required | Name of the node to remove | string | `f5 node name` **port** | required | Port number | string | `port` -**pool\_name** | required | Name of the pool to remove the node from | string | `f5 pool name` +**pool_name** | required | Name of the pool to remove the node from | string | `f5 pool name` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.node\_name | string | `f5 node name` -action\_result\.parameter\.pool\_name | string | `f5 pool name` -action\_result\.parameter\.port | string | `port` -action\_result\.data | string | -action\_result\.summary\.node\_name | string | `f5 node name` -action\_result\.summary\.pool\_name | string | `f5 pool name` -action\_result\.summary\.port | string | `port` -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.node_name | string | `f5 node name` | test8 +action_result.parameter.pool_name | string | `f5 pool name` | pool3 +action_result.parameter.port | string | `port` | 80 443 +action_result.data | string | | +action_result.summary.node_name | string | `f5 node name` | test pool +action_result.summary.pool_name | string | `f5 pool name` | pool3 +action_result.summary.port | string | `port` | 80 +action_result.message | string | | Node successfully removed from pool +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'create pool' Create a new pool @@ -152,49 +152,49 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**pool\_name** | required | Name of the pool to create | string | `f5 pool name` -**pool\_description** | optional | Description of the pool | string | -**partition\_name** | required | Name of the partition | string | `f5 partition name` +**pool_name** | required | Name of the pool to create | string | `f5 pool name` +**pool_description** | optional | Description of the pool | string | +**partition_name** | required | Name of the partition | string | `f5 partition name` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.partition\_name | string | `f5 partition name` -action\_result\.parameter\.pool\_description | string | -action\_result\.parameter\.pool\_name | string | `f5 pool name` -action\_result\.data\.\*\.allowNat | string | -action\_result\.data\.\*\.allowSnat | string | -action\_result\.data\.\*\.fullPath | string | -action\_result\.data\.\*\.generation | numeric | -action\_result\.data\.\*\.ignorePersistedWeight | string | -action\_result\.data\.\*\.ipTosToClient | string | -action\_result\.data\.\*\.ipTosToServer | string | -action\_result\.data\.\*\.kind | string | -action\_result\.data\.\*\.linkQosToClient | string | -action\_result\.data\.\*\.linkQosToServer | string | -action\_result\.data\.\*\.loadBalancingMode | string | -action\_result\.data\.\*\.membersReference\.isSubcollection | boolean | -action\_result\.data\.\*\.membersReference\.link | string | `url` -action\_result\.data\.\*\.minActiveMembers | numeric | -action\_result\.data\.\*\.minUpMembers | numeric | -action\_result\.data\.\*\.minUpMembersAction | string | -action\_result\.data\.\*\.minUpMembersChecking | string | -action\_result\.data\.\*\.name | string | `f5 pool name` -action\_result\.data\.\*\.partition | string | `f5 partition name` -action\_result\.data\.\*\.queueDepthLimit | numeric | -action\_result\.data\.\*\.queueOnConnectionLimit | string | -action\_result\.data\.\*\.queueTimeLimit | numeric | -action\_result\.data\.\*\.reselectTries | numeric | -action\_result\.data\.\*\.selfLink | string | `url` -action\_result\.data\.\*\.serviceDownAction | string | -action\_result\.data\.\*\.slowRampTime | numeric | -action\_result\.summary\.partition | string | `f5 partition name` -action\_result\.summary\.pool\_description | string | -action\_result\.summary\.pool\_name | string | `f5 pool name` -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.partition_name | string | `f5 partition name` | Common +action_result.parameter.pool_description | string | | test pool creation +action_result.parameter.pool_name | string | `f5 pool name` | pool3 +action_result.data.\*.allowNat | string | | yes +action_result.data.\*.allowSnat | string | | yes +action_result.data.\*.fullPath | string | | /Common/pool3 +action_result.data.\*.generation | numeric | | 118 +action_result.data.\*.ignorePersistedWeight | string | | disabled +action_result.data.\*.ipTosToClient | string | | pass-through +action_result.data.\*.ipTosToServer | string | | pass-through +action_result.data.\*.kind | string | | tm:ltm:pool:poolstate +action_result.data.\*.linkQosToClient | string | | pass-through +action_result.data.\*.linkQosToServer | string | | pass-through +action_result.data.\*.loadBalancingMode | string | | round-robin +action_result.data.\*.membersReference.isSubcollection | boolean | | True False +action_result.data.\*.membersReference.link | string | `url` | https://localhost/mgmt/tm/ltm/pool/~Common~pool3/members?ver=15.0.0 +action_result.data.\*.minActiveMembers | numeric | | 0 +action_result.data.\*.minUpMembers | numeric | | 0 +action_result.data.\*.minUpMembersAction | string | | failover +action_result.data.\*.minUpMembersChecking | string | | disabled +action_result.data.\*.name | string | `f5 pool name` | pool3 +action_result.data.\*.partition | string | `f5 partition name` | Common +action_result.data.\*.queueDepthLimit | numeric | | 0 +action_result.data.\*.queueOnConnectionLimit | string | | disabled +action_result.data.\*.queueTimeLimit | numeric | | 0 +action_result.data.\*.reselectTries | numeric | | 0 +action_result.data.\*.selfLink | string | `url` | https://localhost/mgmt/tm/ltm/pool/~Common~test1pool?ver=15.0.0 +action_result.data.\*.serviceDownAction | string | | none +action_result.data.\*.slowRampTime | numeric | | 10 +action_result.summary.partition | string | `f5 partition name` | Common +action_result.summary.pool_description | string | | test pool creation +action_result.summary.pool_name | string | `f5 pool name` | pool3 +action_result.message | string | | Successfully created pool +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'delete pool' Delete an existing pool @@ -205,18 +205,18 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**pool\_name** | required | Name of the pool to delete | string | `f5 pool name` +**pool_name** | required | Name of the pool to delete | string | `f5 pool name` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.pool\_name | string | `f5 pool name` -action\_result\.data | string | -action\_result\.summary\.pool\_name | string | `f5 pool name` -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.pool_name | string | `f5 pool name` | gonna-delete-this +action_result.data | string | | +action_result.summary.pool_name | string | `f5 pool name` | gonna-delete-this +action_result.message | string | | Successfully deleted pool +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'add node' Add an existing node to a pool @@ -227,44 +227,44 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**node\_name** | required | Name of the node to add | string | `f5 node name` -**partition\_name** | required | Name of the partition to add node | string | `f5 partition name` +**node_name** | required | Name of the node to add | string | `f5 node name` +**partition_name** | required | Name of the partition to add node | string | `f5 partition name` **port** | required | Port number | string | `port` -**pool\_name** | required | Name of the pool to add node member | string | `f5 pool name` +**pool_name** | required | Name of the pool to add node member | string | `f5 pool name` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.node\_name | string | `f5 node name` -action\_result\.parameter\.partition\_name | string | `f5 partition name` -action\_result\.parameter\.pool\_name | string | `f5 pool name` -action\_result\.parameter\.port | string | `port` -action\_result\.data\.\*\.address | string | `ip` -action\_result\.data\.\*\.connectionLimit | numeric | -action\_result\.data\.\*\.dynamicRatio | numeric | -action\_result\.data\.\*\.ephemeral | string | -action\_result\.data\.\*\.fqdn\.autopopulate | string | -action\_result\.data\.\*\.fullPath | string | -action\_result\.data\.\*\.generation | numeric | -action\_result\.data\.\*\.inheritProfile | string | -action\_result\.data\.\*\.kind | string | -action\_result\.data\.\*\.logging | string | -action\_result\.data\.\*\.monitor | string | -action\_result\.data\.\*\.name | string | `f5 node name` -action\_result\.data\.\*\.partition | string | `f5 partition name` -action\_result\.data\.\*\.priorityGroup | numeric | -action\_result\.data\.\*\.rateLimit | string | -action\_result\.data\.\*\.ratio | numeric | -action\_result\.data\.\*\.selfLink | string | `url` -action\_result\.data\.\*\.session | string | -action\_result\.data\.\*\.state | string | -action\_result\.summary\.node\_name | string | -action\_result\.summary\.pool\_name | string | `f5 pool name` -action\_result\.summary\.port | string | `port` -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.node_name | string | `f5 node name` | test8 +action_result.parameter.partition_name | string | `f5 partition name` | Common +action_result.parameter.pool_name | string | `f5 pool name` | pool3 +action_result.parameter.port | string | `port` | 80 443 +action_result.data.\*.address | string | `ip` | 4.4.4.4 1.1.1.1 +action_result.data.\*.connectionLimit | numeric | | 0 +action_result.data.\*.dynamicRatio | numeric | | 1 +action_result.data.\*.ephemeral | string | | false +action_result.data.\*.fqdn.autopopulate | string | | disabled +action_result.data.\*.fullPath | string | | /Common/test7:80 /Common/test8:443 +action_result.data.\*.generation | numeric | | 110 +action_result.data.\*.inheritProfile | string | | enabled +action_result.data.\*.kind | string | | tm:ltm:pool:members:membersstate +action_result.data.\*.logging | string | | disabled +action_result.data.\*.monitor | string | | default +action_result.data.\*.name | string | `f5 node name` | test7:80 test8:443 +action_result.data.\*.partition | string | `f5 partition name` | Common +action_result.data.\*.priorityGroup | numeric | | 0 +action_result.data.\*.rateLimit | string | | disabled +action_result.data.\*.ratio | numeric | | 1 +action_result.data.\*.selfLink | string | `url` | https://localhost/mgmt/tm/ltm/pool/pool1/members/~Common~test7:80?ver=15.0.0 +action_result.data.\*.session | string | | monitor-enabled user-enabled +action_result.data.\*.state | string | | checking unchecked +action_result.summary.node_name | string | | test8:443 +action_result.summary.pool_name | string | `f5 pool name` | pool3 +action_result.summary.port | string | `port` | 443 +action_result.message | string | | Node successfully added to pool +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'disable node' Disable a node @@ -275,37 +275,37 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**node\_name** | required | Name of the node to disable | string | `f5 node name` +**node_name** | required | Name of the node to disable | string | `f5 node name` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.node\_name | string | `f5 node name` -action\_result\.data\.\*\.address | string | `ip` -action\_result\.data\.\*\.connectionLimit | numeric | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.dynamicRatio | numeric | -action\_result\.data\.\*\.ephemeral | string | -action\_result\.data\.\*\.fqdn\.addressFamily | string | -action\_result\.data\.\*\.fqdn\.autopopulate | string | -action\_result\.data\.\*\.fqdn\.downInterval | numeric | -action\_result\.data\.\*\.fqdn\.interval | string | -action\_result\.data\.\*\.fullPath | string | -action\_result\.data\.\*\.generation | numeric | -action\_result\.data\.\*\.kind | string | -action\_result\.data\.\*\.logging | string | -action\_result\.data\.\*\.monitor | string | -action\_result\.data\.\*\.name | string | `f5 node name` -action\_result\.data\.\*\.rateLimit | string | -action\_result\.data\.\*\.ratio | numeric | -action\_result\.data\.\*\.selfLink | string | `url` -action\_result\.data\.\*\.session | string | -action\_result\.data\.\*\.state | string | -action\_result\.summary\.node\_name | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.node_name | string | `f5 node name` | test8 +action_result.data.\*.address | string | `ip` | 4.4.4.4 1.1.1.1 +action_result.data.\*.connectionLimit | numeric | | 0 +action_result.data.\*.description | string | | This node was created for testing +action_result.data.\*.dynamicRatio | numeric | | 1 +action_result.data.\*.ephemeral | string | | false +action_result.data.\*.fqdn.addressFamily | string | | ipv4 +action_result.data.\*.fqdn.autopopulate | string | | disabled +action_result.data.\*.fqdn.downInterval | numeric | | 5 +action_result.data.\*.fqdn.interval | string | | 3600 +action_result.data.\*.fullPath | string | | test7 test8 +action_result.data.\*.generation | numeric | | 115 +action_result.data.\*.kind | string | | tm:ltm:node:nodestate +action_result.data.\*.logging | string | | disabled +action_result.data.\*.monitor | string | | default +action_result.data.\*.name | string | `f5 node name` | test7 +action_result.data.\*.rateLimit | string | | disabled +action_result.data.\*.ratio | numeric | | 1 +action_result.data.\*.selfLink | string | `url` | https://localhost/mgmt/tm/ltm/node/test7?ver=15.0.0 +action_result.data.\*.session | string | | user-disabled +action_result.data.\*.state | string | | unchecked +action_result.summary.node_name | string | | test8 +action_result.message | string | | Successfully disabled node +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'enable node' Enable a node @@ -316,37 +316,37 @@ Read only: **False** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**node\_name** | required | Name of the node to enable | string | `f5 node name` +**node_name** | required | Name of the node to enable | string | `f5 node name` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.node\_name | string | `f5 node name` -action\_result\.data\.\*\.address | string | `ip` -action\_result\.data\.\*\.connectionLimit | numeric | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.dynamicRatio | numeric | -action\_result\.data\.\*\.ephemeral | string | -action\_result\.data\.\*\.fqdn\.addressFamily | string | -action\_result\.data\.\*\.fqdn\.autopopulate | string | -action\_result\.data\.\*\.fqdn\.downInterval | numeric | -action\_result\.data\.\*\.fqdn\.interval | string | -action\_result\.data\.\*\.fullPath | string | -action\_result\.data\.\*\.generation | numeric | -action\_result\.data\.\*\.kind | string | -action\_result\.data\.\*\.logging | string | -action\_result\.data\.\*\.monitor | string | -action\_result\.data\.\*\.name | string | `f5 node name` -action\_result\.data\.\*\.rateLimit | string | -action\_result\.data\.\*\.ratio | numeric | -action\_result\.data\.\*\.selfLink | string | `url` -action\_result\.data\.\*\.session | string | -action\_result\.data\.\*\.state | string | -action\_result\.summary\.node\_name | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.node_name | string | `f5 node name` | test8 +action_result.data.\*.address | string | `ip` | 1.1.1.1 +action_result.data.\*.connectionLimit | numeric | | 0 +action_result.data.\*.description | string | | This node was created for testing +action_result.data.\*.dynamicRatio | numeric | | 1 +action_result.data.\*.ephemeral | string | | false +action_result.data.\*.fqdn.addressFamily | string | | ipv4 +action_result.data.\*.fqdn.autopopulate | string | | disabled +action_result.data.\*.fqdn.downInterval | numeric | | 5 +action_result.data.\*.fqdn.interval | string | | 3600 +action_result.data.\*.fullPath | string | | test8 +action_result.data.\*.generation | numeric | | 46 +action_result.data.\*.kind | string | | tm:ltm:node:nodestate +action_result.data.\*.logging | string | | disabled +action_result.data.\*.monitor | string | | default +action_result.data.\*.name | string | `f5 node name` | test8 +action_result.data.\*.rateLimit | string | | disabled +action_result.data.\*.ratio | numeric | | 1 +action_result.data.\*.selfLink | string | `url` | https://localhost/mgmt/tm/ltm/node/nginx1?ver=15.0.0 +action_result.data.\*.session | string | | user-enabled +action_result.data.\*.state | string | | unchecked +action_result.summary.node_name | string | | test8 +action_result.message | string | | Successfully enabled node +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'describe node' Get information about a node @@ -357,36 +357,36 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**node\_name** | required | Name of the node to describe | string | `f5 node name` +**node_name** | required | Name of the node to describe | string | `f5 node name` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.node\_name | string | `f5 node name` -action\_result\.data\.\*\.address | string | `ip` -action\_result\.data\.\*\.connectionLimit | numeric | -action\_result\.data\.\*\.dynamicRatio | numeric | -action\_result\.data\.\*\.ephemeral | string | -action\_result\.data\.\*\.fqdn\.addressFamily | string | -action\_result\.data\.\*\.fqdn\.autopopulate | string | -action\_result\.data\.\*\.fqdn\.downInterval | numeric | -action\_result\.data\.\*\.fqdn\.interval | string | -action\_result\.data\.\*\.fullPath | string | -action\_result\.data\.\*\.generation | numeric | -action\_result\.data\.\*\.kind | string | -action\_result\.data\.\*\.logging | string | -action\_result\.data\.\*\.monitor | string | -action\_result\.data\.\*\.name | string | `f5 node name` -action\_result\.data\.\*\.rateLimit | string | -action\_result\.data\.\*\.ratio | numeric | -action\_result\.data\.\*\.selfLink | string | `url` -action\_result\.data\.\*\.session | string | -action\_result\.data\.\*\.state | string | -action\_result\.summary\.state | string | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.node_name | string | `f5 node name` | test8 +action_result.data.\*.address | string | `ip` | 1.1.1.1 +action_result.data.\*.connectionLimit | numeric | | 0 +action_result.data.\*.dynamicRatio | numeric | | 1 +action_result.data.\*.ephemeral | string | | false +action_result.data.\*.fqdn.addressFamily | string | | ipv4 +action_result.data.\*.fqdn.autopopulate | string | | disabled +action_result.data.\*.fqdn.downInterval | numeric | | 5 +action_result.data.\*.fqdn.interval | string | | 3600 +action_result.data.\*.fullPath | string | | testpath +action_result.data.\*.generation | numeric | | 45 78 +action_result.data.\*.kind | string | | tm:ltm:node:nodestate +action_result.data.\*.logging | string | | disabled +action_result.data.\*.monitor | string | | default +action_result.data.\*.name | string | `f5 node name` | test8 +action_result.data.\*.rateLimit | string | | disabled +action_result.data.\*.ratio | numeric | | 1 +action_result.data.\*.selfLink | string | `url` | https://localhost/mgmt/tm/ltm/node/nginx1?ver=15.0.0 +action_result.data.\*.session | string | | user-disabled user-enabled +action_result.data.\*.state | string | | unchecked +action_result.summary.state | string | | unchecked +action_result.message | string | | State: unchecked +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'get node stats' Get stats of the node @@ -397,37 +397,37 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**node\_name** | required | Name of the node | string | `f5 node name` +**node_name** | required | Name of the node | string | `f5 node name` #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.node\_name | string | `f5 node name` -action\_result\.data\.\*\.addr\.description | string | -action\_result\.data\.\*\.curSessions\.value | numeric | -action\_result\.data\.\*\.monitorRule\.description | string | -action\_result\.data\.\*\.monitorStatus\.description | string | -action\_result\.data\.\*\.serverside\_bitsIn\.value | numeric | -action\_result\.data\.\*\.serverside\_bitsOut\.value | numeric | -action\_result\.data\.\*\.serverside\_curConns\.value | numeric | -action\_result\.data\.\*\.serverside\_maxConns\.value | numeric | -action\_result\.data\.\*\.serverside\_pktsIn\.value | numeric | -action\_result\.data\.\*\.serverside\_pktsOut\.value | numeric | -action\_result\.data\.\*\.serverside\_totConns\.value | numeric | -action\_result\.data\.\*\.sessionStatus\.description | string | -action\_result\.data\.\*\.status\_availabilityState\.description | string | -action\_result\.data\.\*\.status\_enabledState\.description | string | -action\_result\.data\.\*\.status\_statusReason\.description | string | -action\_result\.data\.\*\.tmName\.description | string | -action\_result\.data\.\*\.totRequests\.value | numeric | -action\_result\.summary\.num\_connections | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.node_name | string | `f5 node name` | test8 +action_result.data.\*.addr.description | string | | 1.1.1.1 +action_result.data.\*.curSessions.value | numeric | | 0 +action_result.data.\*.monitorRule.description | string | | none +action_result.data.\*.monitorStatus.description | string | | unchecked +action_result.data.\*.serverside_bitsIn.value | numeric | | 0 +action_result.data.\*.serverside_bitsOut.value | numeric | | 0 +action_result.data.\*.serverside_curConns.value | numeric | | 0 +action_result.data.\*.serverside_maxConns.value | numeric | | 100 +action_result.data.\*.serverside_pktsIn.value | numeric | | 0 +action_result.data.\*.serverside_pktsOut.value | numeric | | 0 +action_result.data.\*.serverside_totConns.value | numeric | | 0 +action_result.data.\*.sessionStatus.description | string | | enabled +action_result.data.\*.status_availabilityState.description | string | | unknown +action_result.data.\*.status_enabledState.description | string | | enabled +action_result.data.\*.status_statusReason.description | string | | Node address does not have service checking enabled +action_result.data.\*.tmName.description | string | | /Common/IIS1 +action_result.data.\*.totRequests.value | numeric | | 0 +action_result.summary.num_connections | numeric | | 4 +action_result.message | string | | Successfully retrieved node stats +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list nodes' -Fetch a list of nodes \(if no value is provided, all nodes will be returned\) +Fetch a list of nodes (if no value is provided, all nodes will be returned) Type: **investigate** Read only: **True** @@ -435,42 +435,42 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**max\_results** | optional | Max number of nodes to return | numeric | +**max_results** | optional | Max number of nodes to return | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.max\_results | numeric | -action\_result\.data\.\*\.address | string | `ip` -action\_result\.data\.\*\.connectionLimit | numeric | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.dynamicRatio | numeric | -action\_result\.data\.\*\.ephemeral | string | -action\_result\.data\.\*\.fqdn\.addressFamily | string | -action\_result\.data\.\*\.fqdn\.autopopulate | string | -action\_result\.data\.\*\.fqdn\.downInterval | numeric | -action\_result\.data\.\*\.fqdn\.interval | string | -action\_result\.data\.\*\.fullPath | string | -action\_result\.data\.\*\.generation | numeric | -action\_result\.data\.\*\.kind | string | -action\_result\.data\.\*\.logging | string | -action\_result\.data\.\*\.monitor | string | -action\_result\.data\.\*\.name | string | `f5 node name` -action\_result\.data\.\*\.partition | string | `f5 partition name` -action\_result\.data\.\*\.rateLimit | string | -action\_result\.data\.\*\.ratio | numeric | -action\_result\.data\.\*\.selfLink | string | `url` -action\_result\.data\.\*\.session | string | -action\_result\.data\.\*\.state | string | -action\_result\.summary\.node\_names | string | -action\_result\.summary\.num\_nodes | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.max_results | numeric | | 10 +action_result.data.\*.address | string | `ip` | 10.1.1.1 +action_result.data.\*.connectionLimit | numeric | | 0 +action_result.data.\*.description | string | | IIS1 +action_result.data.\*.dynamicRatio | numeric | | 1 +action_result.data.\*.ephemeral | string | | false +action_result.data.\*.fqdn.addressFamily | string | | ipv4 +action_result.data.\*.fqdn.autopopulate | string | | disabled +action_result.data.\*.fqdn.downInterval | numeric | | 5 +action_result.data.\*.fqdn.interval | string | | 3600 +action_result.data.\*.fullPath | string | | /Common/test1 +action_result.data.\*.generation | numeric | | 68 +action_result.data.\*.kind | string | | tm:ltm:node:nodestate +action_result.data.\*.logging | string | | disabled +action_result.data.\*.monitor | string | | default +action_result.data.\*.name | string | `f5 node name` | test8 +action_result.data.\*.partition | string | `f5 partition name` | Common +action_result.data.\*.rateLimit | string | | disabled +action_result.data.\*.ratio | numeric | | 1 +action_result.data.\*.selfLink | string | `url` | https://localhost/mgmt/tm/ltm/node/~Common~nginx1?ver=15.0.0 +action_result.data.\*.session | string | | user-enabled +action_result.data.\*.state | string | | unchecked +action_result.summary.node_names | string | | 10.1.17.97, 10.1.17.98, a13 +action_result.summary.num_nodes | numeric | | 4 +action_result.message | string | | Node names: 10.1.17.97, 10.1.17.98, a13, Num nodes: 3 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list pools' -Fetch a list of configured pools \(if no value is provided, all pools will be returned\) +Fetch a list of configured pools (if no value is provided, all pools will be returned) Type: **investigate** Read only: **True** @@ -478,88 +478,88 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**max\_results** | optional | Max number of pools to return | numeric | +**max_results** | optional | Max number of pools to return | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.max\_results | numeric | -action\_result\.data\.\*\.allowNat | string | -action\_result\.data\.\*\.allowSnat | string | -action\_result\.data\.\*\.description | string | -action\_result\.data\.\*\.fullPath | string | -action\_result\.data\.\*\.generation | numeric | -action\_result\.data\.\*\.ignorePersistedWeight | string | -action\_result\.data\.\*\.ipTosToClient | string | -action\_result\.data\.\*\.ipTosToServer | string | -action\_result\.data\.\*\.items\.\*\.addressStatus | string | -action\_result\.data\.\*\.items\.\*\.autoLasthop | string | -action\_result\.data\.\*\.items\.\*\.cmpEnabled | string | -action\_result\.data\.\*\.items\.\*\.connectionLimit | numeric | -action\_result\.data\.\*\.items\.\*\.creationTime | string | -action\_result\.data\.\*\.items\.\*\.destination | string | -action\_result\.data\.\*\.items\.\*\.enabled | boolean | -action\_result\.data\.\*\.items\.\*\.evictionProtected | string | -action\_result\.data\.\*\.items\.\*\.fullPath | string | -action\_result\.data\.\*\.items\.\*\.generation | numeric | -action\_result\.data\.\*\.items\.\*\.gtmScore | numeric | -action\_result\.data\.\*\.items\.\*\.ipProtocol | string | -action\_result\.data\.\*\.items\.\*\.kind | string | -action\_result\.data\.\*\.items\.\*\.lastModifiedTime | string | -action\_result\.data\.\*\.items\.\*\.mask | string | `ip` -action\_result\.data\.\*\.items\.\*\.mirror | string | -action\_result\.data\.\*\.items\.\*\.mobileAppTunnel | string | -action\_result\.data\.\*\.items\.\*\.name | string | -action\_result\.data\.\*\.items\.\*\.nat64 | string | -action\_result\.data\.\*\.items\.\*\.partition | string | `f5 partition name` -action\_result\.data\.\*\.items\.\*\.policiesReference\.isSubcollection | boolean | -action\_result\.data\.\*\.items\.\*\.policiesReference\.link | string | `url` -action\_result\.data\.\*\.items\.\*\.pool | string | -action\_result\.data\.\*\.items\.\*\.poolReference\.link | string | `url` -action\_result\.data\.\*\.items\.\*\.profilesReference\.isSubcollection | boolean | -action\_result\.data\.\*\.items\.\*\.profilesReference\.link | string | `url` -action\_result\.data\.\*\.items\.\*\.rateLimit | string | -action\_result\.data\.\*\.items\.\*\.rateLimitDstMask | numeric | -action\_result\.data\.\*\.items\.\*\.rateLimitMode | string | -action\_result\.data\.\*\.items\.\*\.rateLimitSrcMask | numeric | -action\_result\.data\.\*\.items\.\*\.selfLink | string | `url` -action\_result\.data\.\*\.items\.\*\.serviceDownImmediateAction | string | -action\_result\.data\.\*\.items\.\*\.source | string | -action\_result\.data\.\*\.items\.\*\.sourceAddressTranslation\.type | string | -action\_result\.data\.\*\.items\.\*\.sourcePort | string | -action\_result\.data\.\*\.items\.\*\.synCookieStatus | string | -action\_result\.data\.\*\.items\.\*\.translateAddress | string | -action\_result\.data\.\*\.items\.\*\.translatePort | string | -action\_result\.data\.\*\.items\.\*\.vlansDisabled | boolean | -action\_result\.data\.\*\.items\.\*\.vsIndex | numeric | -action\_result\.data\.\*\.kind | string | -action\_result\.data\.\*\.linkQosToClient | string | -action\_result\.data\.\*\.linkQosToServer | string | -action\_result\.data\.\*\.loadBalancingMode | string | -action\_result\.data\.\*\.membersReference\.isSubcollection | boolean | -action\_result\.data\.\*\.membersReference\.link | string | `url` -action\_result\.data\.\*\.minActiveMembers | numeric | -action\_result\.data\.\*\.minUpMembers | numeric | -action\_result\.data\.\*\.minUpMembersAction | string | -action\_result\.data\.\*\.minUpMembersChecking | string | -action\_result\.data\.\*\.monitor | string | -action\_result\.data\.\*\.name | string | `f5 pool name` -action\_result\.data\.\*\.partition | string | `f5 partition name` -action\_result\.data\.\*\.queueDepthLimit | numeric | -action\_result\.data\.\*\.queueOnConnectionLimit | string | -action\_result\.data\.\*\.queueTimeLimit | numeric | -action\_result\.data\.\*\.reselectTries | numeric | -action\_result\.data\.\*\.selfLink | string | `url` -action\_result\.data\.\*\.serviceDownAction | string | -action\_result\.data\.\*\.slowRampTime | numeric | -action\_result\.summary\.num\_pools | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.max_results | numeric | | 10 +action_result.data.\*.allowNat | string | | yes +action_result.data.\*.allowSnat | string | | yes +action_result.data.\*.description | string | | Pool of IIS servers for IT Automation UC1a +action_result.data.\*.fullPath | string | | /Common/pool1 +action_result.data.\*.generation | numeric | | 66 +action_result.data.\*.ignorePersistedWeight | string | | disabled +action_result.data.\*.ipTosToClient | string | | pass-through +action_result.data.\*.ipTosToServer | string | | pass-through +action_result.data.\*.items.\*.addressStatus | string | | yes +action_result.data.\*.items.\*.autoLasthop | string | | default +action_result.data.\*.items.\*.cmpEnabled | string | | yes +action_result.data.\*.items.\*.connectionLimit | numeric | | 0 +action_result.data.\*.items.\*.creationTime | string | | 2019-08-30T00:04:17Z +action_result.data.\*.items.\*.destination | string | | /Common/10.1.16.148:80 +action_result.data.\*.items.\*.enabled | boolean | | True False +action_result.data.\*.items.\*.evictionProtected | string | | disabled +action_result.data.\*.items.\*.fullPath | string | | /Common/vip +action_result.data.\*.items.\*.generation | numeric | | 1 +action_result.data.\*.items.\*.gtmScore | numeric | | 0 +action_result.data.\*.items.\*.ipProtocol | string | | tcp +action_result.data.\*.items.\*.kind | string | | tm:ltm:virtual:virtualstate +action_result.data.\*.items.\*.lastModifiedTime | string | | 2019-08-30T00:05:23Z +action_result.data.\*.items.\*.mask | string | `ip` | 255.255.255.255 +action_result.data.\*.items.\*.mirror | string | | disabled +action_result.data.\*.items.\*.mobileAppTunnel | string | | disabled +action_result.data.\*.items.\*.name | string | | vip +action_result.data.\*.items.\*.nat64 | string | | disabled +action_result.data.\*.items.\*.partition | string | `f5 partition name` | Common +action_result.data.\*.items.\*.policiesReference.isSubcollection | boolean | | True False +action_result.data.\*.items.\*.policiesReference.link | string | `url` | https://localhost/mgmt/tm/ltm/virtual/~Common~vip/policies?ver=15.0.0 +action_result.data.\*.items.\*.pool | string | | /Common/pool1 +action_result.data.\*.items.\*.poolReference.link | string | `url` | https://localhost/mgmt/tm/ltm/pool/~Common~pool1?ver=15.0.0 +action_result.data.\*.items.\*.profilesReference.isSubcollection | boolean | | True False +action_result.data.\*.items.\*.profilesReference.link | string | `url` | https://localhost/mgmt/tm/ltm/virtual/~Common~vip/profiles?ver=15.0.0 +action_result.data.\*.items.\*.rateLimit | string | | disabled +action_result.data.\*.items.\*.rateLimitDstMask | numeric | | 0 +action_result.data.\*.items.\*.rateLimitMode | string | | object +action_result.data.\*.items.\*.rateLimitSrcMask | numeric | | 0 +action_result.data.\*.items.\*.selfLink | string | `url` | https://localhost/mgmt/tm/ltm/virtual/~Common~vip?ver=15.0.0 +action_result.data.\*.items.\*.serviceDownImmediateAction | string | | none +action_result.data.\*.items.\*.source | string | | 0.0.0.0/0 +action_result.data.\*.items.\*.sourceAddressTranslation.type | string | | none +action_result.data.\*.items.\*.sourcePort | string | | preserve +action_result.data.\*.items.\*.synCookieStatus | string | | not-activated +action_result.data.\*.items.\*.translateAddress | string | | enabled +action_result.data.\*.items.\*.translatePort | string | | enabled +action_result.data.\*.items.\*.vlansDisabled | boolean | | True False +action_result.data.\*.items.\*.vsIndex | numeric | | 2 +action_result.data.\*.kind | string | | tm:ltm:virtual:virtualcollectionstate tm:ltm:pool:poolstate +action_result.data.\*.linkQosToClient | string | | pass-through +action_result.data.\*.linkQosToServer | string | | pass-through +action_result.data.\*.loadBalancingMode | string | | round-robin +action_result.data.\*.membersReference.isSubcollection | boolean | | True False +action_result.data.\*.membersReference.link | string | `url` | https://localhost/mgmt/tm/ltm/pool/~Common~pool1/members?ver=15.0.0 +action_result.data.\*.minActiveMembers | numeric | | 0 +action_result.data.\*.minUpMembers | numeric | | 0 +action_result.data.\*.minUpMembersAction | string | | failover +action_result.data.\*.minUpMembersChecking | string | | disabled +action_result.data.\*.monitor | string | | /Common/http +action_result.data.\*.name | string | `f5 pool name` | pool1 +action_result.data.\*.partition | string | `f5 partition name` | Common +action_result.data.\*.queueDepthLimit | numeric | | 0 +action_result.data.\*.queueOnConnectionLimit | string | | disabled +action_result.data.\*.queueTimeLimit | numeric | | 0 +action_result.data.\*.reselectTries | numeric | | 0 +action_result.data.\*.selfLink | string | `url` | https://localhost/mgmt/tm/ltm/virtual?ver=15.0.0 https://localhost/mgmt/tm/ltm/pool/~Common~pool1?ver=15.0.0 +action_result.data.\*.serviceDownAction | string | | none +action_result.data.\*.slowRampTime | numeric | | 10 +action_result.summary.num_pools | numeric | | 2 +action_result.message | string | | Num pools: 2 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 ## action: 'list members' -Fetch a list of configured node members of a pool \(if no value is provided, all node members of a pool will be returned\) +Fetch a list of configured node members of a pool (if no value is provided, all node members of a pool will be returned) Type: **investigate** Read only: **True** @@ -567,38 +567,38 @@ Read only: **True** #### Action Parameters PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS --------- | -------- | ----------- | ---- | -------- -**pool\_name** | required | Name of the pool | string | `f5 pool name` -**partition\_name** | required | Name of the partition | string | `f5 partition name` -**max\_results** | optional | Max number of members to return | numeric | +**pool_name** | required | Name of the pool | string | `f5 pool name` +**partition_name** | required | Name of the partition | string | `f5 partition name` +**max_results** | optional | Max number of members to return | numeric | #### Action Output -DATA PATH | TYPE | CONTAINS ---------- | ---- | -------- -action\_result\.status | string | -action\_result\.parameter\.max\_results | numeric | -action\_result\.parameter\.partition\_name | string | `f5 partition name` -action\_result\.parameter\.pool\_name | string | `f5 pool name` -action\_result\.data\.\*\.address | string | `ip` -action\_result\.data\.\*\.connectionLimit | numeric | -action\_result\.data\.\*\.dynamicRatio | numeric | -action\_result\.data\.\*\.ephemeral | string | -action\_result\.data\.\*\.fqdn\.autopopulate | string | -action\_result\.data\.\*\.fullPath | string | -action\_result\.data\.\*\.generation | numeric | -action\_result\.data\.\*\.inheritProfile | string | -action\_result\.data\.\*\.kind | string | -action\_result\.data\.\*\.logging | string | -action\_result\.data\.\*\.monitor | string | -action\_result\.data\.\*\.name | string | `f5 node name` -action\_result\.data\.\*\.partition | string | `f5 partition name` -action\_result\.data\.\*\.priorityGroup | numeric | -action\_result\.data\.\*\.rateLimit | string | -action\_result\.data\.\*\.ratio | numeric | -action\_result\.data\.\*\.selfLink | string | `url` -action\_result\.data\.\*\.session | string | -action\_result\.data\.\*\.state | string | -action\_result\.summary\.members | string | -action\_result\.summary\.num\_members | numeric | -action\_result\.message | string | -summary\.total\_objects | numeric | -summary\.total\_objects\_successful | numeric | \ No newline at end of file +DATA PATH | TYPE | CONTAINS | EXAMPLE VALUES +--------- | ---- | -------- | -------------- +action_result.status | string | | success failed +action_result.parameter.max_results | numeric | | 10 +action_result.parameter.partition_name | string | `f5 partition name` | Common +action_result.parameter.pool_name | string | `f5 pool name` | pool1 +action_result.data.\*.address | string | `ip` | 10.1.17.76 +action_result.data.\*.connectionLimit | numeric | | 0 +action_result.data.\*.dynamicRatio | numeric | | 1 +action_result.data.\*.ephemeral | string | | false +action_result.data.\*.fqdn.autopopulate | string | | disabled +action_result.data.\*.fullPath | string | | /Common/test1:80 +action_result.data.\*.generation | numeric | | 1 +action_result.data.\*.inheritProfile | string | | enabled +action_result.data.\*.kind | string | | tm:ltm:pool:members:membersstate +action_result.data.\*.logging | string | | disabled +action_result.data.\*.monitor | string | | default +action_result.data.\*.name | string | `f5 node name` | nginx1:80 +action_result.data.\*.partition | string | `f5 partition name` | Common +action_result.data.\*.priorityGroup | numeric | | 0 +action_result.data.\*.rateLimit | string | | disabled +action_result.data.\*.ratio | numeric | | 1 +action_result.data.\*.selfLink | string | `url` | https://localhost/mgmt/tm/ltm/pool/~Common~pool1/members/~Common~nginx1:80?ver=15.0.0 +action_result.data.\*.session | string | | monitor-enabled +action_result.data.\*.state | string | | up +action_result.summary.members | string | | 10.1.17.97:8080, 10.1.17.98:8080, a13:8080 +action_result.summary.num_members | numeric | | 4 +action_result.message | string | | Num members: 3, Members: 10.1.17.97:8080, 10.1.17.98:8080, a13:8080 +summary.total_objects | numeric | | 1 +summary.total_objects_successful | numeric | | 1 \ No newline at end of file diff --git a/__init__.py b/__init__.py index f7ee2da..a21cc51 100644 --- a/__init__.py +++ b/__init__.py @@ -1,6 +1,6 @@ # File: __init__.py # -# Copyright (c) 2019-2022 Splunk Inc. +# Copyright (c) 2019-2024 Splunk Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/f5bigipltm.json b/f5bigipltm.json index 4ccda71..0c1ef14 100644 --- a/f5bigipltm.json +++ b/f5bigipltm.json @@ -9,14 +9,14 @@ "product_name": "Local Traffic Manager", "product_version_regex": ".*", "publisher": "Splunk", - "license": "Copyright (c) 2019-2022 Splunk Inc.", - "app_version": "2.1.1", + "license": "Copyright (c) 2019-2024 Splunk Inc.", + "app_version": "2.1.2", "python_version": "3", "fips_compliant": true, "utctime_updated": "2022-01-19T00:53:17.000000Z", "package_name": "phantom_f5bigipltm", "main_module": "f5bigipltm_connector.py", - "min_phantom_version": "5.1.0", + "min_phantom_version": "6.1.1", "app_wizard_version": "1.0.0", "latest_tested_versions": [ "BIG-IP 15.0.0 Build 0.0.39 Final" @@ -3252,32 +3252,24 @@ "wheel": [ { "module": "beautifulsoup4", - "input_file": "wheels/beautifulsoup4-4.9.1-py3-none-any.whl" + "input_file": "wheels/py3/beautifulsoup4-4.9.1-py3-none-any.whl" }, { - "module": "certifi", - "input_file": "wheels/certifi-2021.10.8-py2.py3-none-any.whl" - }, - { - "module": "chardet", - "input_file": "wheels/chardet-3.0.4-py2.py3-none-any.whl" - }, - { - "module": "idna", - "input_file": "wheels/idna-2.10-py2.py3-none-any.whl" - }, + "module": "soupsieve", + "input_file": "wheels/py3/soupsieve-2.3.2.post1-py3-none-any.whl" + } + ] + }, + "pip39_dependencies": { + "wheel": [ { - "module": "requests", - "input_file": "wheels/requests-2.25.0-py2.py3-none-any.whl" + "module": "beautifulsoup4", + "input_file": "wheels/py3/beautifulsoup4-4.9.1-py3-none-any.whl" }, { "module": "soupsieve", - "input_file": "wheels/soupsieve-2.3.1-py3-none-any.whl" - }, - { - "module": "urllib3", - "input_file": "wheels/urllib3-1.26.7-py2.py3-none-any.whl" + "input_file": "wheels/py3/soupsieve-2.5-py3-none-any.whl" } ] } -} \ No newline at end of file +} diff --git a/f5bigipltm_connector.py b/f5bigipltm_connector.py index b75bb26..f1832c4 100644 --- a/f5bigipltm_connector.py +++ b/f5bigipltm_connector.py @@ -1,6 +1,6 @@ # File: f5bigipltm_connector.py # -# Copyright (c) 2019-2022 Splunk Inc. +# Copyright (c) 2019-2024 Splunk Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -112,9 +112,9 @@ def _process_json_response(self, r, action_result): message = "Error from server. Status Code: {0} Data from server: {1}".format( r.status_code, error_msg) except Exception as e: - _, error_msg = self._get_error_message_from_exception(e) + _, error_message = self._get_error_message_from_exception(e) message = "Unknown error occurred while processing the output response from the server. " \ - "Status Code: {0}. Data from server: {1}".format(r.status_code, error_msg) + "Status Code: {0}. Data from server: {1}".format(r.status_code, error_message) return RetVal(action_result.set_status(phantom.APP_ERROR, message), None) @@ -213,9 +213,9 @@ def _make_rest_call(self, endpoint, action_result, method="get", data=None, **kw try: url = "{}{}".format(self._base_url, endpoint) except Exception as e: - error_code, error_msg = self._get_error_message_from_exception(e) + error_code, error_message = self._get_error_message_from_exception(e) return RetVal(action_result.set_status(phantom.APP_ERROR, "Error occurred while creating the REST URL for the API call. " - "Error Code: {0}. Error Message: {1}".format(error_code, error_msg)), None) + "Error Code: {0}. Error Message: {1}".format(error_code, error_message)), None) try: r = request_func( @@ -225,9 +225,9 @@ def _make_rest_call(self, endpoint, action_result, method="get", data=None, **kw data=data, **kwargs) except Exception as e: - error_code, error_msg = self._get_error_message_from_exception(e) + error_code, error_message = self._get_error_message_from_exception(e) return RetVal(action_result.set_status(phantom.APP_ERROR, "Error occurred while making the REST call to the F5 server. " - "Error Code: {0}. Error Message: {1}".format(error_code, error_msg)), None) + "Error Code: {0}. Error Message: {1}".format(error_code, error_message)), None) return self._process_response(r, action_result) diff --git a/release_notes/2.1.2.md b/release_notes/2.1.2.md new file mode 100644 index 0000000..c1080d7 --- /dev/null +++ b/release_notes/2.1.2.md @@ -0,0 +1 @@ +* Remove requests dependency and use the one built into the platform instead [PAPP-33443] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 523a0ce..e861161 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1 @@ beautifulsoup4==4.9.1 -requests==2.25.0 diff --git a/tox.ini b/tox.ini index 127a08b..c4644ad 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [flake8] max-line-length = 145 max-complexity = 28 -ignore = F403,E128,E126,E111,E121,E127,E731,E201,E202,F405,E722,D,W292 +extend-ignore = F403,E128,E126,E111,E121,E127,E731,E201,E202,F405,E722,D,W292 [isort] line_length = 145 diff --git a/wheels/certifi-2021.10.8-py2.py3-none-any.whl b/wheels/certifi-2021.10.8-py2.py3-none-any.whl deleted file mode 100644 index fbcb86b..0000000 Binary files a/wheels/certifi-2021.10.8-py2.py3-none-any.whl and /dev/null differ diff --git a/wheels/chardet-3.0.4-py2.py3-none-any.whl b/wheels/chardet-3.0.4-py2.py3-none-any.whl deleted file mode 100644 index d276977..0000000 Binary files a/wheels/chardet-3.0.4-py2.py3-none-any.whl and /dev/null differ diff --git a/wheels/idna-2.10-py2.py3-none-any.whl b/wheels/idna-2.10-py2.py3-none-any.whl deleted file mode 100644 index 41225cb..0000000 Binary files a/wheels/idna-2.10-py2.py3-none-any.whl and /dev/null differ diff --git a/wheels/beautifulsoup4-4.9.1-py3-none-any.whl b/wheels/py3/beautifulsoup4-4.9.1-py3-none-any.whl similarity index 100% rename from wheels/beautifulsoup4-4.9.1-py3-none-any.whl rename to wheels/py3/beautifulsoup4-4.9.1-py3-none-any.whl diff --git a/wheels/py3/soupsieve-2.3.2.post1-py3-none-any.whl b/wheels/py3/soupsieve-2.3.2.post1-py3-none-any.whl new file mode 100644 index 0000000..b363a9b Binary files /dev/null and b/wheels/py3/soupsieve-2.3.2.post1-py3-none-any.whl differ diff --git a/wheels/py3/soupsieve-2.5-py3-none-any.whl b/wheels/py3/soupsieve-2.5-py3-none-any.whl new file mode 100644 index 0000000..e1be128 Binary files /dev/null and b/wheels/py3/soupsieve-2.5-py3-none-any.whl differ diff --git a/wheels/requests-2.25.0-py2.py3-none-any.whl b/wheels/requests-2.25.0-py2.py3-none-any.whl deleted file mode 100644 index c3f28e5..0000000 Binary files a/wheels/requests-2.25.0-py2.py3-none-any.whl and /dev/null differ diff --git a/wheels/soupsieve-2.3.1-py3-none-any.whl b/wheels/soupsieve-2.3.1-py3-none-any.whl deleted file mode 100644 index 85d33de..0000000 Binary files a/wheels/soupsieve-2.3.1-py3-none-any.whl and /dev/null differ diff --git a/wheels/urllib3-1.26.7-py2.py3-none-any.whl b/wheels/urllib3-1.26.7-py2.py3-none-any.whl deleted file mode 100644 index 62189e6..0000000 Binary files a/wheels/urllib3-1.26.7-py2.py3-none-any.whl and /dev/null differ