From f6dd3cb988f7c6e78278b55b726673b295efbb4c Mon Sep 17 00:00:00 2001 From: David Danielsson Date: Wed, 23 Aug 2023 14:16:06 -0500 Subject: [PATCH] Enforce mutually exclusive options in credential module of the collection (#14363) --- awx_collection/plugins/modules/credential.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/awx_collection/plugins/modules/credential.py b/awx_collection/plugins/modules/credential.py index 53f474af63..f55574a009 100644 --- a/awx_collection/plugins/modules/credential.py +++ b/awx_collection/plugins/modules/credential.py @@ -46,6 +46,7 @@ options: organization: description: - Organization name, ID, or named URL that should own the credential. + - This parameter is mutually exclusive with C(team) and C(user). type: str credential_type: description: @@ -93,10 +94,12 @@ options: user: description: - User name, ID, or named URL that should own this credential. + - This parameter is mutually exclusive with C(organization) and C(team). type: str team: description: - Team name, ID, or named URL that should own this credential. + - This parameter is mutually exclusive with C(organization) and C(user). type: str state: description: @@ -219,8 +222,13 @@ def main(): state=dict(choices=['present', 'absent', 'exists'], default='present'), ) + mutually_exclusive = [("organization", "user", "team")] + # Create a module for ourselves - module = ControllerAPIModule(argument_spec=argument_spec) + module = ControllerAPIModule( + argument_spec=argument_spec, + mutually_exclusive=mutually_exclusive + ) # Extract our parameters name = module.params.get('name')