#!/usr/bin/python
# -*- coding: utf-8 -*-

# Copyright (c) 2021, Cisco Systems
# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)

DOCUMENTATION = r"""
---
module: network_devices_device_controllability_settings_v1
short_description: Resource module for Network Devices Device Controllability Settings V1
description:
- Manage operation update of the resource Network Devices Device Controllability Settings V1.
- >
   Device Controllability is a system-level process on Catalyst Center that enforces state synchronization for some
   device-layer features. Its purpose is to aid in the deployment of required network settings that Catalyst Center
   needs to manage devices. Changes are made on network devices during discovery, when adding a device to Inventory,
   or when assigning a device to a site. If changes are made to any settings that are under the scope of this
   process, these changes are applied to the network devices during the Provision and Update Telemetry Settings
   operations, even if Device Controllability is disabled. The following device settings will be enabled as part of
   Device Controllability when devices are discovered.
version_added: '6.15.0'
extends_documentation_fragment:
  - cisco.dnac.module
author: Rafael Campos (@racampos)
options:
  autocorrectTelemetryConfig:
    description: If it is true, autocorrect telemetry config is enabled. If it is false,
      autocorrect telemetry config is disabled. The autocorrect telemetry config feature
      is supported only when device controllability is enabled.
    type: bool
  deviceControllability:
    description: If it is true, device controllability is enabled. If it is false, device
      controllability is disabled.
    type: bool
requirements:
- dnacentersdk >= 2.4.9
- python >= 3.5
seealso:
- name: Cisco DNA Center documentation for Site Design UpdateDeviceControllabilitySettingsV1
  description: Complete reference of the UpdateDeviceControllabilitySettingsV1 API.
  link: https://developer.cisco.com/docs/dna-center/#!update-device-controllability-settings
notes:
  - SDK Method used are
    site_design.SiteDesign.update_device_controllability_settings_v1,

  - Paths used are
    put /dna/intent/api/v1/networkDevices/deviceControllability/settings,

"""

EXAMPLES = r"""
- name: Update all
  cisco.dnac.network_devices_device_controllability_settings_v1:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    state: present
    autocorrectTelemetryConfig: true
    deviceControllability: true

"""
RETURN = r"""
dnac_response:
  description: A dictionary or list with the response returned by the Cisco DNAC Python SDK
  returned: always
  type: dict
  sample: >
    {
      "version": "string",
      "response": {
        "url": "string",
        "taskId": "string"
      }
    }
"""
