From 0f858bf86470539e8028802512749ac0ff1fab48 Mon Sep 17 00:00:00 2001 From: content-bot <55035720+content-bot@users.noreply.github.com> Date: Sun, 29 Oct 2023 11:48:37 +0200 Subject: [PATCH] [Marketplace Contribution] Netskope v2 - Content Pack Update (#30485) * [Marketplace Contribution] Netskope v2 - Content Pack Update (#30476) * "contribution update to pack "Netskope v2"" * Added 'hidden: true' to encrypted parameter * Added periods to match formatting requirements * Update Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.yml Co-authored-by: Moshe Eichler <78307768+MosheEichler@users.noreply.github.com> * Update Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.py Co-authored-by: Moshe Eichler <78307768+MosheEichler@users.noreply.github.com> * Update Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.yml Co-authored-by: Moshe Eichler <78307768+MosheEichler@users.noreply.github.com> * Update Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.py Co-authored-by: Moshe Eichler <78307768+MosheEichler@users.noreply.github.com> * Update Packs/NetskopeV2/pack_metadata.json Co-authored-by: Moshe Eichler <78307768+MosheEichler@users.noreply.github.com> * Update Packs/NetskopeV2/ReleaseNotes/1_1_0.md Co-authored-by: Moshe Eichler <78307768+MosheEichler@users.noreply.github.com> * Rename 1_1_0.md to 1_0_2.md --------- Co-authored-by: Nicole Casartelli Co-authored-by: Moshe Eichler <78307768+MosheEichler@users.noreply.github.com> * RN --------- Co-authored-by: xsoar-bot <67315154+xsoar-bot@users.noreply.github.com> Co-authored-by: Nicole Casartelli Co-authored-by: Moshe Eichler <78307768+MosheEichler@users.noreply.github.com> Co-authored-by: MosheEichler --- .../Integrations/NetskopeV2/NetskopeV2.py | 4 ++- .../Integrations/NetskopeV2/NetskopeV2.yml | 30 +++++++++++------- .../NetskopeV2/NetskopeV2_description.md | 2 +- .../NetskopeV2/NetskopeV2_image.png | Bin 5914 -> 4376 bytes Packs/NetskopeV2/ReleaseNotes/1_0_2.md | 7 ++++ Packs/NetskopeV2/pack_metadata.json | 2 +- 6 files changed, 30 insertions(+), 15 deletions(-) create mode 100644 Packs/NetskopeV2/ReleaseNotes/1_0_2.md diff --git a/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.py b/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.py index 86787ac3aaf5..edf19b8b2bd4 100644 --- a/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.py +++ b/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.py @@ -228,7 +228,9 @@ def main() -> None: :rtype: """ - api_key = demisto.params().get('api_key') + api_key = demisto.params().get("api_key_credentials", {}).get("password") or demisto.params().get("api_key") + if not api_key: + return_error('Please provide a valid API Key') base_url = urljoin(demisto.params()['url'], '/api/v2/policy/urllist/') verify_certificate = not demisto.params().get('insecure', False) proxy = demisto.params().get('proxy', False) diff --git a/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.yml b/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.yml index 9e2db83d93bc..6af87c1314e6 100644 --- a/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.yml +++ b/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2.yml @@ -9,30 +9,36 @@ configuration: type: 0 - display: API Key name: api_key - required: true + required: false type: 4 + hidden: true +- name: api_key_credentials + type: 9 + required: false + displaypassword: API Key + hiddenusername: true - display: Trust any certificate (not secure) name: insecure type: 8 required: false - display: Use system proxy settings name: proxy - type: 8 required: false + type: 8 description: Block URLs, domains and file hashes. display: Netskope (API v2) name: Netskope (API v2) script: commands: - arguments: - - description: Name of the URL list + - description: Name of the URL list. name: list_name required: true - - description: URLs to add to the list + - description: URLs to add to the list. isArray: true name: url required: true - description: Add URLs to the Netskope URL block list + description: Add URLs to the Netskope URL block list. name: netskopev2-add-url outputs: - contextPath: Netskope.URLList.id @@ -61,14 +67,14 @@ script: description: URL List pending status ('1' if pending, '0' if not). type: number - arguments: - - description: Name of the URL list + - description: Name of the URL list. name: list_name required: true - - description: URLs to remove from the list + - description: URLs to remove from the list. isArray: true name: url required: true - description: Remove URLs from the Netskope URL block list + description: Remove URLs from the Netskope URL block list. name: netskopev2-remove-url outputs: - contextPath: Netskope.URLList.id @@ -97,7 +103,7 @@ script: description: URL List pending status ('1' if pending, '0' if not). type: number - arguments: [] - description: Get all applied and pending URL lists + description: Get all applied and pending URL lists. name: netskopev2-get-lists outputs: - contextPath: Netskope.List.id @@ -126,10 +132,10 @@ script: description: URL List pending status ('1' if pending, '0' if not). type: number - arguments: - - description: Name of the URL list + - description: Name of the URL list. name: list_name required: true - description: Get URL list by ID + description: Get URL list by ID. name: netskopev2-get-list outputs: - contextPath: Netskope.List.id @@ -157,7 +163,7 @@ script: - contextPath: Netskope.List.pending description: URL List pending status ('1' if pending, '0' if not). type: number - dockerimage: demisto/python3:3.10.12.63474 + dockerimage: demisto/python3:3.10.13.78960 runonce: false script: '' subtype: python3 diff --git a/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2_description.md b/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2_description.md index f10a398f97bf..bef15c5dc320 100644 --- a/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2_description.md +++ b/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2_description.md @@ -1 +1 @@ -## Netskope (API v2) +## Netskope (API v2) \ No newline at end of file diff --git a/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2_image.png b/Packs/NetskopeV2/Integrations/NetskopeV2/NetskopeV2_image.png index d543df9a3fe45b5be295c43607760a20d2ed1d33..3304bb1e6d878df4e2828dafd224e98ed7b2273f 100644 GIT binary patch literal 4376 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 S&A