summaryrefslogtreecommitdiffstats
path: root/ansible_collections/fortinet/fortimanager/plugins/modules/fmgr_cloud_orchestawstemplate_autoscaletgwnewvpc.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 12:04:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 12:04:41 +0000
commit975f66f2eebe9dadba04f275774d4ab83f74cf25 (patch)
tree89bd26a93aaae6a25749145b7e4bca4a1e75b2be /ansible_collections/fortinet/fortimanager/plugins/modules/fmgr_cloud_orchestawstemplate_autoscaletgwnewvpc.py
parentInitial commit. (diff)
downloadansible-975f66f2eebe9dadba04f275774d4ab83f74cf25.tar.xz
ansible-975f66f2eebe9dadba04f275774d4ab83f74cf25.zip
Adding upstream version 7.7.0+dfsg.upstream/7.7.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/fortinet/fortimanager/plugins/modules/fmgr_cloud_orchestawstemplate_autoscaletgwnewvpc.py')
-rw-r--r--ansible_collections/fortinet/fortimanager/plugins/modules/fmgr_cloud_orchestawstemplate_autoscaletgwnewvpc.py864
1 files changed, 864 insertions, 0 deletions
diff --git a/ansible_collections/fortinet/fortimanager/plugins/modules/fmgr_cloud_orchestawstemplate_autoscaletgwnewvpc.py b/ansible_collections/fortinet/fortimanager/plugins/modules/fmgr_cloud_orchestawstemplate_autoscaletgwnewvpc.py
new file mode 100644
index 000000000..c59119a35
--- /dev/null
+++ b/ansible_collections/fortinet/fortimanager/plugins/modules/fmgr_cloud_orchestawstemplate_autoscaletgwnewvpc.py
@@ -0,0 +1,864 @@
+#!/usr/bin/python
+from __future__ import absolute_import, division, print_function
+# Copyright 2019-2023 Fortinet, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+__metaclass__ = type
+
+ANSIBLE_METADATA = {'status': ['preview'],
+ 'supported_by': 'community',
+ 'metadata_version': '1.1'}
+
+DOCUMENTATION = '''
+---
+module: fmgr_cloud_orchestawstemplate_autoscaletgwnewvpc
+short_description: no description
+description:
+ - This module is able to configure a FortiManager device.
+ - Examples include all parameters and values which need to be adjusted to data sources before usage.
+
+version_added: "2.2.0"
+author:
+ - Xinwei Du (@dux-fortinet)
+ - Xing Li (@lix-fortinet)
+ - Jie Xue (@JieX19)
+ - Link Zheng (@chillancezen)
+ - Frank Shen (@fshen01)
+ - Hongbin Lu (@fgtdev-hblu)
+notes:
+ - Running in workspace locking mode is supported in this FortiManager module, the top
+ level parameters workspace_locking_adom and workspace_locking_timeout help do the work.
+ - To create or update an object, use state present directive.
+ - To delete an object, use state absent directive.
+ - Normally, running one module can fail when a non-zero rc is returned. you can also override
+ the conditions to fail or succeed with parameters rc_failed and rc_succeeded
+
+options:
+ access_token:
+ description: The token to access FortiManager without using username and password.
+ required: false
+ type: str
+ bypass_validation:
+ description: Only set to True when module schema diffs with FortiManager API structure, module continues to execute without validating parameters.
+ required: false
+ type: bool
+ default: false
+ enable_log:
+ description: Enable/Disable logging for task.
+ required: false
+ type: bool
+ default: false
+ forticloud_access_token:
+ description: Authenticate Ansible client with forticloud API access token.
+ required: false
+ type: str
+ proposed_method:
+ description: The overridden method for the underlying Json RPC request.
+ required: false
+ type: str
+ choices:
+ - update
+ - set
+ - add
+ rc_succeeded:
+ description: The rc codes list with which the conditions to succeed will be overriden.
+ type: list
+ required: false
+ elements: int
+ rc_failed:
+ description: The rc codes list with which the conditions to fail will be overriden.
+ type: list
+ required: false
+ elements: int
+ state:
+ description: The directive to create, update or delete an object.
+ type: str
+ required: true
+ choices:
+ - present
+ - absent
+ workspace_locking_adom:
+ description: The adom to lock for FortiManager running in workspace mode, the value can be global and others including root.
+ required: false
+ type: str
+ workspace_locking_timeout:
+ description: The maximum time in seconds to wait for other user to release the workspace lock.
+ required: false
+ type: int
+ default: 300
+ adom:
+ description: the parameter (adom) in requested url
+ type: str
+ required: true
+ cloud_orchestawstemplate_autoscaletgwnewvpc:
+ description: the top level parameters set
+ required: false
+ type: dict
+ suboptions:
+ availability-zones:
+ type: str
+ description: no description
+ bgp-asn:
+ type: int
+ description: no description
+ custom-asset-container:
+ type: str
+ description: no description
+ custom-asset-directory:
+ type: str
+ description: no description
+ custom-identifier:
+ type: str
+ description: no description
+ faz-autoscale-admin-password:
+ description: description
+ type: str
+ faz-autoscale-admin-username:
+ type: str
+ description: no description
+ faz-custom-private-ipaddress:
+ type: str
+ description: no description
+ faz-instance-type:
+ type: str
+ description: no description
+ choices:
+ - 'h1.2xlarge'
+ - 'h1.4xlarge'
+ - 'h1.8xlarge'
+ - 'm5.large'
+ - 'm5.xlarge'
+ - 'm5.2xlarge'
+ - 'm5.4xlarge'
+ - 'm5.12xlarge'
+ - 't2.medium'
+ - 't2.large'
+ - 't2.xlarge'
+ faz-integration-options:
+ type: str
+ description: no description
+ choices:
+ - 'no'
+ - 'yes'
+ faz-version:
+ type: str
+ description: no description
+ fgt-admin-cidr:
+ type: str
+ description: no description
+ fgt-admin-port:
+ type: int
+ description: no description
+ fgt-instance-type:
+ type: str
+ description: no description
+ choices:
+ - 't2.small'
+ - 'c5.large'
+ - 'c5.xlarge'
+ - 'c5.2xlarge'
+ - 'c5.4xlarge'
+ - 'c5.9xlarge'
+ fgt-psk-secret:
+ type: str
+ description: no description
+ fgtasg-cool-down:
+ type: int
+ description: no description
+ fgtasg-desired-capacity-byol:
+ type: int
+ description: no description
+ fgtasg-desired-capacity-payg:
+ type: int
+ description: no description
+ fgtasg-health-check-grace-period:
+ type: int
+ description: no description
+ fgtasg-max-size-byol:
+ type: int
+ description: no description
+ fgtasg-max-size-payg:
+ type: int
+ description: no description
+ fgtasg-min-size-byol:
+ type: int
+ description: no description
+ fgtasg-min-size-payg:
+ type: int
+ description: no description
+ fgtasg-scale-in-threshold:
+ type: int
+ description: no description
+ fgtasg-scale-out-threshold:
+ type: int
+ description: no description
+ fos-version:
+ type: str
+ description: no description
+ get-license-grace-period:
+ type: int
+ description: no description
+ heartbeat-delay-allowance:
+ type: int
+ description: no description
+ heartbeat-interval:
+ type: int
+ description: no description
+ heartbeat-loss-count:
+ type: int
+ description: no description
+ key-pair-name:
+ type: str
+ description: no description
+ lifecycle-hook-timeout:
+ type: int
+ description: no description
+ name:
+ type: str
+ description: no description
+ notification-email:
+ type: str
+ description: no description
+ primary-election-timeout:
+ type: int
+ description: no description
+ public-subnet1-cidr:
+ type: str
+ description: no description
+ public-subnet2-cidr:
+ type: str
+ description: no description
+ resource-tag-prefix:
+ type: str
+ description: no description
+ s3-bucket-name:
+ type: str
+ description: no description
+ s3-key-prefix:
+ type: str
+ description: no description
+ sync-recovery-count:
+ type: int
+ description: no description
+ terminate-unhealthy-vm:
+ type: str
+ description: no description
+ choices:
+ - 'no'
+ - 'yes'
+ transit-gateway-id:
+ type: str
+ description: no description
+ transit-gateway-support-options:
+ type: str
+ description: no description
+ choices:
+ - 'create one'
+ - 'use an existing one'
+ use-custom-asset-location:
+ type: str
+ description: no description
+ choices:
+ - 'no'
+ - 'yes'
+ vpc-cidr:
+ type: str
+ description: no description
+
+'''
+
+EXAMPLES = '''
+ - hosts: fortimanager-inventory
+ collections:
+ - fortinet.fortimanager
+ connection: httpapi
+ vars:
+ ansible_httpapi_use_ssl: True
+ ansible_httpapi_validate_certs: False
+ ansible_httpapi_port: 443
+ tasks:
+ - name: no description
+ fmgr_cloud_orchestawstemplate_autoscaletgwnewvpc:
+ bypass_validation: False
+ workspace_locking_adom: <value in [global, custom adom including root]>
+ workspace_locking_timeout: 300
+ rc_succeeded: [0, -2, -3, ...]
+ rc_failed: [-2, -3, ...]
+ adom: <your own value>
+ state: <value in [present, absent]>
+ cloud_orchestawstemplate_autoscaletgwnewvpc:
+ availability-zones: <value of string>
+ bgp-asn: <value of integer>
+ custom-asset-container: <value of string>
+ custom-asset-directory: <value of string>
+ custom-identifier: <value of string>
+ faz-autoscale-admin-password: <value of string>
+ faz-autoscale-admin-username: <value of string>
+ faz-custom-private-ipaddress: <value of string>
+ faz-instance-type: <value in [h1.2xlarge, h1.4xlarge, h1.8xlarge, ...]>
+ faz-integration-options: <value in [no, yes]>
+ faz-version: <value of string>
+ fgt-admin-cidr: <value of string>
+ fgt-admin-port: <value of integer>
+ fgt-instance-type: <value in [t2.small, c5.large, c5.xlarge, ...]>
+ fgt-psk-secret: <value of string>
+ fgtasg-cool-down: <value of integer>
+ fgtasg-desired-capacity-byol: <value of integer>
+ fgtasg-desired-capacity-payg: <value of integer>
+ fgtasg-health-check-grace-period: <value of integer>
+ fgtasg-max-size-byol: <value of integer>
+ fgtasg-max-size-payg: <value of integer>
+ fgtasg-min-size-byol: <value of integer>
+ fgtasg-min-size-payg: <value of integer>
+ fgtasg-scale-in-threshold: <value of integer>
+ fgtasg-scale-out-threshold: <value of integer>
+ fos-version: <value of string>
+ get-license-grace-period: <value of integer>
+ heartbeat-delay-allowance: <value of integer>
+ heartbeat-interval: <value of integer>
+ heartbeat-loss-count: <value of integer>
+ key-pair-name: <value of string>
+ lifecycle-hook-timeout: <value of integer>
+ name: <value of string>
+ notification-email: <value of string>
+ primary-election-timeout: <value of integer>
+ public-subnet1-cidr: <value of string>
+ public-subnet2-cidr: <value of string>
+ resource-tag-prefix: <value of string>
+ s3-bucket-name: <value of string>
+ s3-key-prefix: <value of string>
+ sync-recovery-count: <value of integer>
+ terminate-unhealthy-vm: <value in [no, yes]>
+ transit-gateway-id: <value of string>
+ transit-gateway-support-options: <value in [create one, use an existing one]>
+ use-custom-asset-location: <value in [no, yes]>
+ vpc-cidr: <value of string>
+
+'''
+
+RETURN = '''
+meta:
+ description: The result of the request.
+ type: dict
+ returned: always
+ contains:
+ request_url:
+ description: The full url requested.
+ returned: always
+ type: str
+ sample: /sys/login/user
+ response_code:
+ description: The status of api request.
+ returned: always
+ type: int
+ sample: 0
+ response_data:
+ description: The api response.
+ type: list
+ returned: always
+ response_message:
+ description: The descriptive message of the api response.
+ type: str
+ returned: always
+ sample: OK.
+ system_information:
+ description: The information of the target system.
+ type: dict
+ returned: always
+rc:
+ description: The status the request.
+ type: int
+ returned: always
+ sample: 0
+version_check_warning:
+ description: Warning if the parameters used in the playbook are not supported by the current FortiManager version.
+ type: list
+ returned: complex
+'''
+from ansible.module_utils.basic import AnsibleModule
+from ansible.module_utils.connection import Connection
+from ansible_collections.fortinet.fortimanager.plugins.module_utils.napi import NAPIManager
+from ansible_collections.fortinet.fortimanager.plugins.module_utils.napi import check_galaxy_version
+from ansible_collections.fortinet.fortimanager.plugins.module_utils.napi import check_parameter_bypass
+
+
+def main():
+ jrpc_urls = [
+ '/pm/config/global/obj/cloud/orchest-awstemplate/autoscale-tgw-new-vpc',
+ '/pm/config/adom/{adom}/obj/cloud/orchest-awstemplate/autoscale-tgw-new-vpc'
+ ]
+
+ perobject_jrpc_urls = [
+ '/pm/config/global/obj/cloud/orchest-awstemplate/autoscale-tgw-new-vpc/{autoscale-tgw-new-vpc}',
+ '/pm/config/adom/{adom}/obj/cloud/orchest-awstemplate/autoscale-tgw-new-vpc/{autoscale-tgw-new-vpc}'
+ ]
+
+ url_params = ['adom']
+ module_primary_key = 'name'
+ module_arg_spec = {
+ 'access_token': {
+ 'type': 'str',
+ 'required': False,
+ 'no_log': True
+ },
+ 'bypass_validation': {
+ 'type': 'bool',
+ 'required': False,
+ 'default': False
+ },
+ 'enable_log': {
+ 'type': 'bool',
+ 'required': False,
+ 'default': False
+ },
+ 'forticloud_access_token': {
+ 'type': 'str',
+ 'required': False,
+ 'no_log': True
+ },
+ 'proposed_method': {
+ 'type': 'str',
+ 'required': False,
+ 'choices': [
+ 'set',
+ 'update',
+ 'add'
+ ]
+ },
+ 'rc_succeeded': {
+ 'required': False,
+ 'type': 'list',
+ 'elements': 'int'
+ },
+ 'rc_failed': {
+ 'required': False,
+ 'type': 'list',
+ 'elements': 'int'
+ },
+ 'state': {
+ 'type': 'str',
+ 'required': True,
+ 'choices': [
+ 'present',
+ 'absent'
+ ]
+ },
+ 'workspace_locking_adom': {
+ 'type': 'str',
+ 'required': False
+ },
+ 'workspace_locking_timeout': {
+ 'type': 'int',
+ 'required': False,
+ 'default': 300
+ },
+ 'adom': {
+ 'required': True,
+ 'type': 'str'
+ },
+ 'cloud_orchestawstemplate_autoscaletgwnewvpc': {
+ 'required': False,
+ 'type': 'dict',
+ 'revision': {
+ '7.4.0': True
+ },
+ 'options': {
+ 'availability-zones': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'bgp-asn': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'custom-asset-container': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'custom-asset-directory': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'custom-identifier': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'faz-autoscale-admin-password': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'no_log': True,
+ 'type': 'str'
+ },
+ 'faz-autoscale-admin-username': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'faz-custom-private-ipaddress': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'faz-instance-type': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'choices': [
+ 'h1.2xlarge',
+ 'h1.4xlarge',
+ 'h1.8xlarge',
+ 'm5.large',
+ 'm5.xlarge',
+ 'm5.2xlarge',
+ 'm5.4xlarge',
+ 'm5.12xlarge',
+ 't2.medium',
+ 't2.large',
+ 't2.xlarge'
+ ],
+ 'type': 'str'
+ },
+ 'faz-integration-options': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'choices': [
+ 'no',
+ 'yes'
+ ],
+ 'type': 'str'
+ },
+ 'faz-version': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'fgt-admin-cidr': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'fgt-admin-port': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fgt-instance-type': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'choices': [
+ 't2.small',
+ 'c5.large',
+ 'c5.xlarge',
+ 'c5.2xlarge',
+ 'c5.4xlarge',
+ 'c5.9xlarge'
+ ],
+ 'type': 'str'
+ },
+ 'fgt-psk-secret': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'fgtasg-cool-down': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fgtasg-desired-capacity-byol': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fgtasg-desired-capacity-payg': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fgtasg-health-check-grace-period': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fgtasg-max-size-byol': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fgtasg-max-size-payg': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fgtasg-min-size-byol': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fgtasg-min-size-payg': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fgtasg-scale-in-threshold': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fgtasg-scale-out-threshold': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'fos-version': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'get-license-grace-period': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'heartbeat-delay-allowance': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'heartbeat-interval': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'heartbeat-loss-count': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'key-pair-name': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'lifecycle-hook-timeout': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'name': {
+ 'required': True,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'notification-email': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'primary-election-timeout': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'public-subnet1-cidr': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'public-subnet2-cidr': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'resource-tag-prefix': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 's3-bucket-name': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 's3-key-prefix': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'sync-recovery-count': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'int'
+ },
+ 'terminate-unhealthy-vm': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'choices': [
+ 'no',
+ 'yes'
+ ],
+ 'type': 'str'
+ },
+ 'transit-gateway-id': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ },
+ 'transit-gateway-support-options': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'choices': [
+ 'create one',
+ 'use an existing one'
+ ],
+ 'type': 'str'
+ },
+ 'use-custom-asset-location': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'choices': [
+ 'no',
+ 'yes'
+ ],
+ 'type': 'str'
+ },
+ 'vpc-cidr': {
+ 'required': False,
+ 'revision': {
+ '7.4.0': True
+ },
+ 'type': 'str'
+ }
+ }
+
+ }
+ }
+
+ params_validation_blob = []
+ check_galaxy_version(module_arg_spec)
+ module = AnsibleModule(argument_spec=check_parameter_bypass(module_arg_spec, 'cloud_orchestawstemplate_autoscaletgwnewvpc'),
+ supports_check_mode=False)
+
+ fmgr = None
+ if module._socket_path:
+ connection = Connection(module._socket_path)
+ connection.set_option('access_token', module.params['access_token'] if 'access_token' in module.params else None)
+ connection.set_option('enable_log', module.params['enable_log'] if 'enable_log' in module.params else False)
+ connection.set_option('forticloud_access_token',
+ module.params['forticloud_access_token'] if 'forticloud_access_token' in module.params else None)
+ fmgr = NAPIManager(jrpc_urls, perobject_jrpc_urls, module_primary_key, url_params, module, connection, top_level_schema_name='data')
+ fmgr.validate_parameters(params_validation_blob)
+ fmgr.process_curd(argument_specs=module_arg_spec)
+ else:
+ module.fail_json(msg='MUST RUN IN HTTPAPI MODE')
+ module.exit_json(meta=module.params)
+
+
+if __name__ == '__main__':
+ main()