# coding: utf-8

"""
    Akeyless API

    The purpose of this application is to provide access to Akeyless API.  # noqa: E501

    The version of the OpenAPI document: 2.0
    Contact: support@akeyless.io
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six

from akeyless.configuration import Configuration


class GatewayCreateMigration(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    openapi_types = {
        '_1password_email': 'str',
        '_1password_password': 'str',
        '_1password_secret_key': 'str',
        '_1password_url': 'str',
        '_1password_vaults': 'list[str]',
        'ad_auto_rotate': 'str',
        'ad_computer_base_dn': 'str',
        'ad_discover_local_users': 'str',
        'ad_domain_name': 'str',
        'ad_domain_users_path_template': 'str',
        'ad_local_users_ignore': 'str',
        'ad_local_users_path_template': 'str',
        'ad_rotation_hour': 'int',
        'ad_rotation_interval': 'int',
        'ad_sra_enable_rdp': 'str',
        'ad_target_name': 'str',
        'ad_targets_path_template': 'str',
        'ad_user_base_dn': 'str',
        'ad_user_groups': 'str',
        'as_ssh_port': 'str',
        'aws_key': 'str',
        'aws_key_id': 'str',
        'aws_region': 'str',
        'azure_client_id': 'str',
        'azure_kv_name': 'str',
        'azure_secret': 'str',
        'azure_tenant_id': 'str',
        'gcp_key': 'str',
        'hashi_json': 'str',
        'hashi_ns': 'list[str]',
        'hashi_token': 'str',
        'hashi_url': 'str',
        'json': 'bool',
        'k8s_ca_certificate': 'list[int]',
        'k8s_client_certificate': 'list[int]',
        'k8s_client_key': 'list[int]',
        'k8s_namespace': 'str',
        'k8s_password': 'str',
        'k8s_skip_system': 'bool',
        'k8s_token': 'str',
        'k8s_url': 'str',
        'k8s_username': 'str',
        'name': 'str',
        'protection_key': 'str',
        'target_location': 'str',
        'token': 'str',
        'type': 'str',
        'uid_token': 'str'
    }

    attribute_map = {
        '_1password_email': '1password-email',
        '_1password_password': '1password-password',
        '_1password_secret_key': '1password-secret-key',
        '_1password_url': '1password-url',
        '_1password_vaults': '1password-vaults',
        'ad_auto_rotate': 'ad_auto_rotate',
        'ad_computer_base_dn': 'ad_computer_base_dn',
        'ad_discover_local_users': 'ad_discover_local_users',
        'ad_domain_name': 'ad_domain_name',
        'ad_domain_users_path_template': 'ad_domain_users_path_template',
        'ad_local_users_ignore': 'ad_local_users_ignore',
        'ad_local_users_path_template': 'ad_local_users_path_template',
        'ad_rotation_hour': 'ad_rotation_hour',
        'ad_rotation_interval': 'ad_rotation_interval',
        'ad_sra_enable_rdp': 'ad_sra_enable_rdp',
        'ad_target_name': 'ad_target_name',
        'ad_targets_path_template': 'ad_targets_path_template',
        'ad_user_base_dn': 'ad_user_base_dn',
        'ad_user_groups': 'ad_user_groups',
        'as_ssh_port': 'as_ssh_port',
        'aws_key': 'aws-key',
        'aws_key_id': 'aws-key-id',
        'aws_region': 'aws-region',
        'azure_client_id': 'azure-client-id',
        'azure_kv_name': 'azure-kv-name',
        'azure_secret': 'azure-secret',
        'azure_tenant_id': 'azure-tenant-id',
        'gcp_key': 'gcp-key',
        'hashi_json': 'hashi-json',
        'hashi_ns': 'hashi-ns',
        'hashi_token': 'hashi-token',
        'hashi_url': 'hashi-url',
        'json': 'json',
        'k8s_ca_certificate': 'k8s-ca-certificate',
        'k8s_client_certificate': 'k8s-client-certificate',
        'k8s_client_key': 'k8s-client-key',
        'k8s_namespace': 'k8s-namespace',
        'k8s_password': 'k8s-password',
        'k8s_skip_system': 'k8s-skip-system',
        'k8s_token': 'k8s-token',
        'k8s_url': 'k8s-url',
        'k8s_username': 'k8s-username',
        'name': 'name',
        'protection_key': 'protection-key',
        'target_location': 'target-location',
        'token': 'token',
        'type': 'type',
        'uid_token': 'uid-token'
    }

    def __init__(self, _1password_email=None, _1password_password=None, _1password_secret_key=None, _1password_url=None, _1password_vaults=None, ad_auto_rotate=None, ad_computer_base_dn=None, ad_discover_local_users=None, ad_domain_name=None, ad_domain_users_path_template=None, ad_local_users_ignore=None, ad_local_users_path_template=None, ad_rotation_hour=None, ad_rotation_interval=None, ad_sra_enable_rdp=None, ad_target_name=None, ad_targets_path_template=None, ad_user_base_dn=None, ad_user_groups=None, as_ssh_port=None, aws_key=None, aws_key_id=None, aws_region=None, azure_client_id=None, azure_kv_name=None, azure_secret=None, azure_tenant_id=None, gcp_key=None, hashi_json=None, hashi_ns=None, hashi_token=None, hashi_url=None, json=None, k8s_ca_certificate=None, k8s_client_certificate=None, k8s_client_key=None, k8s_namespace=None, k8s_password=None, k8s_skip_system=None, k8s_token=None, k8s_url=None, k8s_username=None, name=None, protection_key=None, target_location=None, token=None, type=None, uid_token=None, local_vars_configuration=None):  # noqa: E501
        """GatewayCreateMigration - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self.__1password_email = None
        self.__1password_password = None
        self.__1password_secret_key = None
        self.__1password_url = None
        self.__1password_vaults = None
        self._ad_auto_rotate = None
        self._ad_computer_base_dn = None
        self._ad_discover_local_users = None
        self._ad_domain_name = None
        self._ad_domain_users_path_template = None
        self._ad_local_users_ignore = None
        self._ad_local_users_path_template = None
        self._ad_rotation_hour = None
        self._ad_rotation_interval = None
        self._ad_sra_enable_rdp = None
        self._ad_target_name = None
        self._ad_targets_path_template = None
        self._ad_user_base_dn = None
        self._ad_user_groups = None
        self._as_ssh_port = None
        self._aws_key = None
        self._aws_key_id = None
        self._aws_region = None
        self._azure_client_id = None
        self._azure_kv_name = None
        self._azure_secret = None
        self._azure_tenant_id = None
        self._gcp_key = None
        self._hashi_json = None
        self._hashi_ns = None
        self._hashi_token = None
        self._hashi_url = None
        self._json = None
        self._k8s_ca_certificate = None
        self._k8s_client_certificate = None
        self._k8s_client_key = None
        self._k8s_namespace = None
        self._k8s_password = None
        self._k8s_skip_system = None
        self._k8s_token = None
        self._k8s_url = None
        self._k8s_username = None
        self._name = None
        self._protection_key = None
        self._target_location = None
        self._token = None
        self._type = None
        self._uid_token = None
        self.discriminator = None

        if _1password_email is not None:
            self._1password_email = _1password_email
        if _1password_password is not None:
            self._1password_password = _1password_password
        if _1password_secret_key is not None:
            self._1password_secret_key = _1password_secret_key
        if _1password_url is not None:
            self._1password_url = _1password_url
        if _1password_vaults is not None:
            self._1password_vaults = _1password_vaults
        if ad_auto_rotate is not None:
            self.ad_auto_rotate = ad_auto_rotate
        if ad_computer_base_dn is not None:
            self.ad_computer_base_dn = ad_computer_base_dn
        if ad_discover_local_users is not None:
            self.ad_discover_local_users = ad_discover_local_users
        if ad_domain_name is not None:
            self.ad_domain_name = ad_domain_name
        if ad_domain_users_path_template is not None:
            self.ad_domain_users_path_template = ad_domain_users_path_template
        if ad_local_users_ignore is not None:
            self.ad_local_users_ignore = ad_local_users_ignore
        if ad_local_users_path_template is not None:
            self.ad_local_users_path_template = ad_local_users_path_template
        if ad_rotation_hour is not None:
            self.ad_rotation_hour = ad_rotation_hour
        if ad_rotation_interval is not None:
            self.ad_rotation_interval = ad_rotation_interval
        if ad_sra_enable_rdp is not None:
            self.ad_sra_enable_rdp = ad_sra_enable_rdp
        if ad_target_name is not None:
            self.ad_target_name = ad_target_name
        if ad_targets_path_template is not None:
            self.ad_targets_path_template = ad_targets_path_template
        if ad_user_base_dn is not None:
            self.ad_user_base_dn = ad_user_base_dn
        if ad_user_groups is not None:
            self.ad_user_groups = ad_user_groups
        if as_ssh_port is not None:
            self.as_ssh_port = as_ssh_port
        if aws_key is not None:
            self.aws_key = aws_key
        if aws_key_id is not None:
            self.aws_key_id = aws_key_id
        if aws_region is not None:
            self.aws_region = aws_region
        if azure_client_id is not None:
            self.azure_client_id = azure_client_id
        if azure_kv_name is not None:
            self.azure_kv_name = azure_kv_name
        if azure_secret is not None:
            self.azure_secret = azure_secret
        if azure_tenant_id is not None:
            self.azure_tenant_id = azure_tenant_id
        if gcp_key is not None:
            self.gcp_key = gcp_key
        if hashi_json is not None:
            self.hashi_json = hashi_json
        if hashi_ns is not None:
            self.hashi_ns = hashi_ns
        if hashi_token is not None:
            self.hashi_token = hashi_token
        if hashi_url is not None:
            self.hashi_url = hashi_url
        if json is not None:
            self.json = json
        if k8s_ca_certificate is not None:
            self.k8s_ca_certificate = k8s_ca_certificate
        if k8s_client_certificate is not None:
            self.k8s_client_certificate = k8s_client_certificate
        if k8s_client_key is not None:
            self.k8s_client_key = k8s_client_key
        if k8s_namespace is not None:
            self.k8s_namespace = k8s_namespace
        if k8s_password is not None:
            self.k8s_password = k8s_password
        if k8s_skip_system is not None:
            self.k8s_skip_system = k8s_skip_system
        if k8s_token is not None:
            self.k8s_token = k8s_token
        if k8s_url is not None:
            self.k8s_url = k8s_url
        if k8s_username is not None:
            self.k8s_username = k8s_username
        self.name = name
        if protection_key is not None:
            self.protection_key = protection_key
        self.target_location = target_location
        if token is not None:
            self.token = token
        if type is not None:
            self.type = type
        if uid_token is not None:
            self.uid_token = uid_token

    @property
    def _1password_email(self):
        """Gets the _1password_email of this GatewayCreateMigration.  # noqa: E501

        1Password user email to connect to the API  # noqa: E501

        :return: The _1password_email of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self.__1password_email

    @_1password_email.setter
    def _1password_email(self, _1password_email):
        """Sets the _1password_email of this GatewayCreateMigration.

        1Password user email to connect to the API  # noqa: E501

        :param _1password_email: The _1password_email of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self.__1password_email = _1password_email

    @property
    def _1password_password(self):
        """Gets the _1password_password of this GatewayCreateMigration.  # noqa: E501

        1Password user password to connect to the API  # noqa: E501

        :return: The _1password_password of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self.__1password_password

    @_1password_password.setter
    def _1password_password(self, _1password_password):
        """Sets the _1password_password of this GatewayCreateMigration.

        1Password user password to connect to the API  # noqa: E501

        :param _1password_password: The _1password_password of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self.__1password_password = _1password_password

    @property
    def _1password_secret_key(self):
        """Gets the _1password_secret_key of this GatewayCreateMigration.  # noqa: E501

        1Password user secret key to connect to the API  # noqa: E501

        :return: The _1password_secret_key of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self.__1password_secret_key

    @_1password_secret_key.setter
    def _1password_secret_key(self, _1password_secret_key):
        """Sets the _1password_secret_key of this GatewayCreateMigration.

        1Password user secret key to connect to the API  # noqa: E501

        :param _1password_secret_key: The _1password_secret_key of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self.__1password_secret_key = _1password_secret_key

    @property
    def _1password_url(self):
        """Gets the _1password_url of this GatewayCreateMigration.  # noqa: E501

        1Password api container url  # noqa: E501

        :return: The _1password_url of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self.__1password_url

    @_1password_url.setter
    def _1password_url(self, _1password_url):
        """Sets the _1password_url of this GatewayCreateMigration.

        1Password api container url  # noqa: E501

        :param _1password_url: The _1password_url of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self.__1password_url = _1password_url

    @property
    def _1password_vaults(self):
        """Gets the _1password_vaults of this GatewayCreateMigration.  # noqa: E501

        1Password list of vault to get the items from  # noqa: E501

        :return: The _1password_vaults of this GatewayCreateMigration.  # noqa: E501
        :rtype: list[str]
        """
        return self.__1password_vaults

    @_1password_vaults.setter
    def _1password_vaults(self, _1password_vaults):
        """Sets the _1password_vaults of this GatewayCreateMigration.

        1Password list of vault to get the items from  # noqa: E501

        :param _1password_vaults: The _1password_vaults of this GatewayCreateMigration.  # noqa: E501
        :type: list[str]
        """

        self.__1password_vaults = _1password_vaults

    @property
    def ad_auto_rotate(self):
        """Gets the ad_auto_rotate of this GatewayCreateMigration.  # noqa: E501

        Enable/Disable automatic/recurrent rotation for migrated secrets. Default is false: only manual rotation is allowed for migrated secrets. If set to true, this command should be combined with --ad-rotation-interval and --ad-rotation-hour parameters (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_auto_rotate of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_auto_rotate

    @ad_auto_rotate.setter
    def ad_auto_rotate(self, ad_auto_rotate):
        """Sets the ad_auto_rotate of this GatewayCreateMigration.

        Enable/Disable automatic/recurrent rotation for migrated secrets. Default is false: only manual rotation is allowed for migrated secrets. If set to true, this command should be combined with --ad-rotation-interval and --ad-rotation-hour parameters (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_auto_rotate: The ad_auto_rotate of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_auto_rotate = ad_auto_rotate

    @property
    def ad_computer_base_dn(self):
        """Gets the ad_computer_base_dn of this GatewayCreateMigration.  # noqa: E501

        Distinguished Name of Computer objects (servers) to search in Active Directory e.g.: CN=Computers,DC=example,DC=com (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_computer_base_dn of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_computer_base_dn

    @ad_computer_base_dn.setter
    def ad_computer_base_dn(self, ad_computer_base_dn):
        """Sets the ad_computer_base_dn of this GatewayCreateMigration.

        Distinguished Name of Computer objects (servers) to search in Active Directory e.g.: CN=Computers,DC=example,DC=com (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_computer_base_dn: The ad_computer_base_dn of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_computer_base_dn = ad_computer_base_dn

    @property
    def ad_discover_local_users(self):
        """Gets the ad_discover_local_users of this GatewayCreateMigration.  # noqa: E501

        Enable/Disable discovery of local users from each domain server and migrate them as SSH Rotated Secrets. Default is false: only domain users will be migrated. Discovery of local users might require further installation of SSH on the servers, based on the supplied computer base DN. This will be implemented automatically as part of the migration process (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_discover_local_users of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_discover_local_users

    @ad_discover_local_users.setter
    def ad_discover_local_users(self, ad_discover_local_users):
        """Sets the ad_discover_local_users of this GatewayCreateMigration.

        Enable/Disable discovery of local users from each domain server and migrate them as SSH Rotated Secrets. Default is false: only domain users will be migrated. Discovery of local users might require further installation of SSH on the servers, based on the supplied computer base DN. This will be implemented automatically as part of the migration process (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_discover_local_users: The ad_discover_local_users of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_discover_local_users = ad_discover_local_users

    @property
    def ad_domain_name(self):
        """Gets the ad_domain_name of this GatewayCreateMigration.  # noqa: E501

        Active Directory Domain Name (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_domain_name of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_domain_name

    @ad_domain_name.setter
    def ad_domain_name(self, ad_domain_name):
        """Sets the ad_domain_name of this GatewayCreateMigration.

        Active Directory Domain Name (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_domain_name: The ad_domain_name of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_domain_name = ad_domain_name

    @property
    def ad_domain_users_path_template(self):
        """Gets the ad_domain_users_path_template of this GatewayCreateMigration.  # noqa: E501

        Path location template for migrating domain users as Rotated Secrets e.g.: .../DomainUsers/{{USERNAME}} (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_domain_users_path_template of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_domain_users_path_template

    @ad_domain_users_path_template.setter
    def ad_domain_users_path_template(self, ad_domain_users_path_template):
        """Sets the ad_domain_users_path_template of this GatewayCreateMigration.

        Path location template for migrating domain users as Rotated Secrets e.g.: .../DomainUsers/{{USERNAME}} (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_domain_users_path_template: The ad_domain_users_path_template of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_domain_users_path_template = ad_domain_users_path_template

    @property
    def ad_local_users_ignore(self):
        """Gets the ad_local_users_ignore of this GatewayCreateMigration.  # noqa: E501

        Comma-separated list of Local Users which should not be migrated (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_local_users_ignore of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_local_users_ignore

    @ad_local_users_ignore.setter
    def ad_local_users_ignore(self, ad_local_users_ignore):
        """Sets the ad_local_users_ignore of this GatewayCreateMigration.

        Comma-separated list of Local Users which should not be migrated (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_local_users_ignore: The ad_local_users_ignore of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_local_users_ignore = ad_local_users_ignore

    @property
    def ad_local_users_path_template(self):
        """Gets the ad_local_users_path_template of this GatewayCreateMigration.  # noqa: E501

        Path location template for migrating domain users as Rotated Secrets e.g.: .../LocalUsers/{{COMPUTER_NAME}}/{{USERNAME}} (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_local_users_path_template of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_local_users_path_template

    @ad_local_users_path_template.setter
    def ad_local_users_path_template(self, ad_local_users_path_template):
        """Sets the ad_local_users_path_template of this GatewayCreateMigration.

        Path location template for migrating domain users as Rotated Secrets e.g.: .../LocalUsers/{{COMPUTER_NAME}}/{{USERNAME}} (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_local_users_path_template: The ad_local_users_path_template of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_local_users_path_template = ad_local_users_path_template

    @property
    def ad_rotation_hour(self):
        """Gets the ad_rotation_hour of this GatewayCreateMigration.  # noqa: E501

        The hour of the scheduled rotation in UTC (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_rotation_hour of this GatewayCreateMigration.  # noqa: E501
        :rtype: int
        """
        return self._ad_rotation_hour

    @ad_rotation_hour.setter
    def ad_rotation_hour(self, ad_rotation_hour):
        """Sets the ad_rotation_hour of this GatewayCreateMigration.

        The hour of the scheduled rotation in UTC (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_rotation_hour: The ad_rotation_hour of this GatewayCreateMigration.  # noqa: E501
        :type: int
        """

        self._ad_rotation_hour = ad_rotation_hour

    @property
    def ad_rotation_interval(self):
        """Gets the ad_rotation_interval of this GatewayCreateMigration.  # noqa: E501

        The number of days to wait between every automatic rotation [1-365] (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_rotation_interval of this GatewayCreateMigration.  # noqa: E501
        :rtype: int
        """
        return self._ad_rotation_interval

    @ad_rotation_interval.setter
    def ad_rotation_interval(self, ad_rotation_interval):
        """Sets the ad_rotation_interval of this GatewayCreateMigration.

        The number of days to wait between every automatic rotation [1-365] (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_rotation_interval: The ad_rotation_interval of this GatewayCreateMigration.  # noqa: E501
        :type: int
        """

        self._ad_rotation_interval = ad_rotation_interval

    @property
    def ad_sra_enable_rdp(self):
        """Gets the ad_sra_enable_rdp of this GatewayCreateMigration.  # noqa: E501

        Enable/Disable RDP Secure Remote Access for the migrated local users rotated secrets. Default is false: rotated secrets will not be created with SRA (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_sra_enable_rdp of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_sra_enable_rdp

    @ad_sra_enable_rdp.setter
    def ad_sra_enable_rdp(self, ad_sra_enable_rdp):
        """Sets the ad_sra_enable_rdp of this GatewayCreateMigration.

        Enable/Disable RDP Secure Remote Access for the migrated local users rotated secrets. Default is false: rotated secrets will not be created with SRA (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_sra_enable_rdp: The ad_sra_enable_rdp of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_sra_enable_rdp = ad_sra_enable_rdp

    @property
    def ad_target_name(self):
        """Gets the ad_target_name of this GatewayCreateMigration.  # noqa: E501

        Active Directory LDAP Target Name. Server type should be Active Directory (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_target_name of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_target_name

    @ad_target_name.setter
    def ad_target_name(self, ad_target_name):
        """Sets the ad_target_name of this GatewayCreateMigration.

        Active Directory LDAP Target Name. Server type should be Active Directory (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_target_name: The ad_target_name of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_target_name = ad_target_name

    @property
    def ad_targets_path_template(self):
        """Gets the ad_targets_path_template of this GatewayCreateMigration.  # noqa: E501

        Path location template for migrating domain servers as SSH Targets e.g.: .../Servers/{{COMPUTER_NAME}} (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_targets_path_template of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_targets_path_template

    @ad_targets_path_template.setter
    def ad_targets_path_template(self, ad_targets_path_template):
        """Sets the ad_targets_path_template of this GatewayCreateMigration.

        Path location template for migrating domain servers as SSH Targets e.g.: .../Servers/{{COMPUTER_NAME}} (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_targets_path_template: The ad_targets_path_template of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_targets_path_template = ad_targets_path_template

    @property
    def ad_user_base_dn(self):
        """Gets the ad_user_base_dn of this GatewayCreateMigration.  # noqa: E501

        Distinguished Name of User objects to search in Active Directory, e.g.: CN=Users,DC=example,DC=com (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_user_base_dn of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_user_base_dn

    @ad_user_base_dn.setter
    def ad_user_base_dn(self, ad_user_base_dn):
        """Sets the ad_user_base_dn of this GatewayCreateMigration.

        Distinguished Name of User objects to search in Active Directory, e.g.: CN=Users,DC=example,DC=com (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_user_base_dn: The ad_user_base_dn of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_user_base_dn = ad_user_base_dn

    @property
    def ad_user_groups(self):
        """Gets the ad_user_groups of this GatewayCreateMigration.  # noqa: E501

        Comma-separated list of domain groups from which privileged domain users will be migrated (Relevant only for Active Directory migration)  # noqa: E501

        :return: The ad_user_groups of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._ad_user_groups

    @ad_user_groups.setter
    def ad_user_groups(self, ad_user_groups):
        """Sets the ad_user_groups of this GatewayCreateMigration.

        Comma-separated list of domain groups from which privileged domain users will be migrated (Relevant only for Active Directory migration)  # noqa: E501

        :param ad_user_groups: The ad_user_groups of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._ad_user_groups = ad_user_groups

    @property
    def as_ssh_port(self):
        """Gets the as_ssh_port of this GatewayCreateMigration.  # noqa: E501

        Set the SSH Port for further connection to the domain servers. Default is port 22 (Relevant only for Active Directory migration)  # noqa: E501

        :return: The as_ssh_port of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._as_ssh_port

    @as_ssh_port.setter
    def as_ssh_port(self, as_ssh_port):
        """Sets the as_ssh_port of this GatewayCreateMigration.

        Set the SSH Port for further connection to the domain servers. Default is port 22 (Relevant only for Active Directory migration)  # noqa: E501

        :param as_ssh_port: The as_ssh_port of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._as_ssh_port = as_ssh_port

    @property
    def aws_key(self):
        """Gets the aws_key of this GatewayCreateMigration.  # noqa: E501

        AWS Secret Access Key (relevant only for AWS migration)  # noqa: E501

        :return: The aws_key of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._aws_key

    @aws_key.setter
    def aws_key(self, aws_key):
        """Sets the aws_key of this GatewayCreateMigration.

        AWS Secret Access Key (relevant only for AWS migration)  # noqa: E501

        :param aws_key: The aws_key of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._aws_key = aws_key

    @property
    def aws_key_id(self):
        """Gets the aws_key_id of this GatewayCreateMigration.  # noqa: E501

        AWS Access Key ID with sufficient permissions to get all secrets, e.g. 'arn:aws:secretsmanager:[Region]:[AccountId]:secret:[/path/to/secrets/*]' (relevant only for AWS migration)  # noqa: E501

        :return: The aws_key_id of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._aws_key_id

    @aws_key_id.setter
    def aws_key_id(self, aws_key_id):
        """Sets the aws_key_id of this GatewayCreateMigration.

        AWS Access Key ID with sufficient permissions to get all secrets, e.g. 'arn:aws:secretsmanager:[Region]:[AccountId]:secret:[/path/to/secrets/*]' (relevant only for AWS migration)  # noqa: E501

        :param aws_key_id: The aws_key_id of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._aws_key_id = aws_key_id

    @property
    def aws_region(self):
        """Gets the aws_region of this GatewayCreateMigration.  # noqa: E501

        AWS region of the required Secrets Manager (relevant only for AWS migration)  # noqa: E501

        :return: The aws_region of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._aws_region

    @aws_region.setter
    def aws_region(self, aws_region):
        """Sets the aws_region of this GatewayCreateMigration.

        AWS region of the required Secrets Manager (relevant only for AWS migration)  # noqa: E501

        :param aws_region: The aws_region of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._aws_region = aws_region

    @property
    def azure_client_id(self):
        """Gets the azure_client_id of this GatewayCreateMigration.  # noqa: E501

        Azure Key Vault Access client ID, should be Azure AD App with a service principal (relevant only for Azure Key Vault migration)  # noqa: E501

        :return: The azure_client_id of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._azure_client_id

    @azure_client_id.setter
    def azure_client_id(self, azure_client_id):
        """Sets the azure_client_id of this GatewayCreateMigration.

        Azure Key Vault Access client ID, should be Azure AD App with a service principal (relevant only for Azure Key Vault migration)  # noqa: E501

        :param azure_client_id: The azure_client_id of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._azure_client_id = azure_client_id

    @property
    def azure_kv_name(self):
        """Gets the azure_kv_name of this GatewayCreateMigration.  # noqa: E501

        Azure Key Vault Name (relevant only for Azure Key Vault migration)  # noqa: E501

        :return: The azure_kv_name of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._azure_kv_name

    @azure_kv_name.setter
    def azure_kv_name(self, azure_kv_name):
        """Sets the azure_kv_name of this GatewayCreateMigration.

        Azure Key Vault Name (relevant only for Azure Key Vault migration)  # noqa: E501

        :param azure_kv_name: The azure_kv_name of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._azure_kv_name = azure_kv_name

    @property
    def azure_secret(self):
        """Gets the azure_secret of this GatewayCreateMigration.  # noqa: E501

        Azure Key Vault secret (relevant only for Azure Key Vault migration)  # noqa: E501

        :return: The azure_secret of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._azure_secret

    @azure_secret.setter
    def azure_secret(self, azure_secret):
        """Sets the azure_secret of this GatewayCreateMigration.

        Azure Key Vault secret (relevant only for Azure Key Vault migration)  # noqa: E501

        :param azure_secret: The azure_secret of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._azure_secret = azure_secret

    @property
    def azure_tenant_id(self):
        """Gets the azure_tenant_id of this GatewayCreateMigration.  # noqa: E501

        Azure Key Vault Access tenant ID (relevant only for Azure Key Vault migration)  # noqa: E501

        :return: The azure_tenant_id of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._azure_tenant_id

    @azure_tenant_id.setter
    def azure_tenant_id(self, azure_tenant_id):
        """Sets the azure_tenant_id of this GatewayCreateMigration.

        Azure Key Vault Access tenant ID (relevant only for Azure Key Vault migration)  # noqa: E501

        :param azure_tenant_id: The azure_tenant_id of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._azure_tenant_id = azure_tenant_id

    @property
    def gcp_key(self):
        """Gets the gcp_key of this GatewayCreateMigration.  # noqa: E501

        Base64-encoded GCP Service Account private key text with sufficient permissions to Secrets Manager, Minimum required permission is Secret Manager Secret Accessor, e.g. 'roles/secretmanager.secretAccessor' (relevant only for GCP migration)  # noqa: E501

        :return: The gcp_key of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._gcp_key

    @gcp_key.setter
    def gcp_key(self, gcp_key):
        """Sets the gcp_key of this GatewayCreateMigration.

        Base64-encoded GCP Service Account private key text with sufficient permissions to Secrets Manager, Minimum required permission is Secret Manager Secret Accessor, e.g. 'roles/secretmanager.secretAccessor' (relevant only for GCP migration)  # noqa: E501

        :param gcp_key: The gcp_key of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._gcp_key = gcp_key

    @property
    def hashi_json(self):
        """Gets the hashi_json of this GatewayCreateMigration.  # noqa: E501

        Import secret key as json value or independent secrets (relevant only for HasiCorp Vault migration)  # noqa: E501

        :return: The hashi_json of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._hashi_json

    @hashi_json.setter
    def hashi_json(self, hashi_json):
        """Sets the hashi_json of this GatewayCreateMigration.

        Import secret key as json value or independent secrets (relevant only for HasiCorp Vault migration)  # noqa: E501

        :param hashi_json: The hashi_json of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._hashi_json = hashi_json

    @property
    def hashi_ns(self):
        """Gets the hashi_ns of this GatewayCreateMigration.  # noqa: E501

        HashiCorp Vault Namespaces is a comma-separated list of namespaces which need to be imported into Akeyless Vault. For every provided namespace, all its child namespaces are imported as well, e.g. nmsp/subnmsp1/subnmsp2,nmsp/anothernmsp. By default, import all namespaces (relevant only for HasiCorp Vault migration)  # noqa: E501

        :return: The hashi_ns of this GatewayCreateMigration.  # noqa: E501
        :rtype: list[str]
        """
        return self._hashi_ns

    @hashi_ns.setter
    def hashi_ns(self, hashi_ns):
        """Sets the hashi_ns of this GatewayCreateMigration.

        HashiCorp Vault Namespaces is a comma-separated list of namespaces which need to be imported into Akeyless Vault. For every provided namespace, all its child namespaces are imported as well, e.g. nmsp/subnmsp1/subnmsp2,nmsp/anothernmsp. By default, import all namespaces (relevant only for HasiCorp Vault migration)  # noqa: E501

        :param hashi_ns: The hashi_ns of this GatewayCreateMigration.  # noqa: E501
        :type: list[str]
        """

        self._hashi_ns = hashi_ns

    @property
    def hashi_token(self):
        """Gets the hashi_token of this GatewayCreateMigration.  # noqa: E501

        HashiCorp Vault access token with sufficient permissions to preform list & read operations on secrets objects (relevant only for HasiCorp Vault migration)  # noqa: E501

        :return: The hashi_token of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._hashi_token

    @hashi_token.setter
    def hashi_token(self, hashi_token):
        """Sets the hashi_token of this GatewayCreateMigration.

        HashiCorp Vault access token with sufficient permissions to preform list & read operations on secrets objects (relevant only for HasiCorp Vault migration)  # noqa: E501

        :param hashi_token: The hashi_token of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._hashi_token = hashi_token

    @property
    def hashi_url(self):
        """Gets the hashi_url of this GatewayCreateMigration.  # noqa: E501

        HashiCorp Vault API URL, e.g. https://vault-mgr01:8200 (relevant only for HasiCorp Vault migration)  # noqa: E501

        :return: The hashi_url of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._hashi_url

    @hashi_url.setter
    def hashi_url(self, hashi_url):
        """Sets the hashi_url of this GatewayCreateMigration.

        HashiCorp Vault API URL, e.g. https://vault-mgr01:8200 (relevant only for HasiCorp Vault migration)  # noqa: E501

        :param hashi_url: The hashi_url of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._hashi_url = hashi_url

    @property
    def json(self):
        """Gets the json of this GatewayCreateMigration.  # noqa: E501

        Set output format to JSON  # noqa: E501

        :return: The json of this GatewayCreateMigration.  # noqa: E501
        :rtype: bool
        """
        return self._json

    @json.setter
    def json(self, json):
        """Sets the json of this GatewayCreateMigration.

        Set output format to JSON  # noqa: E501

        :param json: The json of this GatewayCreateMigration.  # noqa: E501
        :type: bool
        """

        self._json = json

    @property
    def k8s_ca_certificate(self):
        """Gets the k8s_ca_certificate of this GatewayCreateMigration.  # noqa: E501

        For Certificate Authentication method K8s Cluster CA certificate (relevant only for K8s migration with Certificate Authentication method)  # noqa: E501

        :return: The k8s_ca_certificate of this GatewayCreateMigration.  # noqa: E501
        :rtype: list[int]
        """
        return self._k8s_ca_certificate

    @k8s_ca_certificate.setter
    def k8s_ca_certificate(self, k8s_ca_certificate):
        """Sets the k8s_ca_certificate of this GatewayCreateMigration.

        For Certificate Authentication method K8s Cluster CA certificate (relevant only for K8s migration with Certificate Authentication method)  # noqa: E501

        :param k8s_ca_certificate: The k8s_ca_certificate of this GatewayCreateMigration.  # noqa: E501
        :type: list[int]
        """

        self._k8s_ca_certificate = k8s_ca_certificate

    @property
    def k8s_client_certificate(self):
        """Gets the k8s_client_certificate of this GatewayCreateMigration.  # noqa: E501

        K8s Client certificate with sufficient permission to list and get secrets in the namespace(s) you selected (relevant only for K8s migration with Certificate Authentication method)  # noqa: E501

        :return: The k8s_client_certificate of this GatewayCreateMigration.  # noqa: E501
        :rtype: list[int]
        """
        return self._k8s_client_certificate

    @k8s_client_certificate.setter
    def k8s_client_certificate(self, k8s_client_certificate):
        """Sets the k8s_client_certificate of this GatewayCreateMigration.

        K8s Client certificate with sufficient permission to list and get secrets in the namespace(s) you selected (relevant only for K8s migration with Certificate Authentication method)  # noqa: E501

        :param k8s_client_certificate: The k8s_client_certificate of this GatewayCreateMigration.  # noqa: E501
        :type: list[int]
        """

        self._k8s_client_certificate = k8s_client_certificate

    @property
    def k8s_client_key(self):
        """Gets the k8s_client_key of this GatewayCreateMigration.  # noqa: E501

        K8s Client key (relevant only for K8s migration with Certificate Authentication method)  # noqa: E501

        :return: The k8s_client_key of this GatewayCreateMigration.  # noqa: E501
        :rtype: list[int]
        """
        return self._k8s_client_key

    @k8s_client_key.setter
    def k8s_client_key(self, k8s_client_key):
        """Sets the k8s_client_key of this GatewayCreateMigration.

        K8s Client key (relevant only for K8s migration with Certificate Authentication method)  # noqa: E501

        :param k8s_client_key: The k8s_client_key of this GatewayCreateMigration.  # noqa: E501
        :type: list[int]
        """

        self._k8s_client_key = k8s_client_key

    @property
    def k8s_namespace(self):
        """Gets the k8s_namespace of this GatewayCreateMigration.  # noqa: E501

        K8s Namespace, Use this field to import secrets from a particular namespace only. By default, the secrets are imported from all namespaces (relevant only for K8s migration)  # noqa: E501

        :return: The k8s_namespace of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._k8s_namespace

    @k8s_namespace.setter
    def k8s_namespace(self, k8s_namespace):
        """Sets the k8s_namespace of this GatewayCreateMigration.

        K8s Namespace, Use this field to import secrets from a particular namespace only. By default, the secrets are imported from all namespaces (relevant only for K8s migration)  # noqa: E501

        :param k8s_namespace: The k8s_namespace of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._k8s_namespace = k8s_namespace

    @property
    def k8s_password(self):
        """Gets the k8s_password of this GatewayCreateMigration.  # noqa: E501

        K8s Client password (relevant only for K8s migration with Password Authentication method)  # noqa: E501

        :return: The k8s_password of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._k8s_password

    @k8s_password.setter
    def k8s_password(self, k8s_password):
        """Sets the k8s_password of this GatewayCreateMigration.

        K8s Client password (relevant only for K8s migration with Password Authentication method)  # noqa: E501

        :param k8s_password: The k8s_password of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._k8s_password = k8s_password

    @property
    def k8s_skip_system(self):
        """Gets the k8s_skip_system of this GatewayCreateMigration.  # noqa: E501

        K8s Skip Control Plane Secrets, This option allows to avoid importing secrets from system namespaces (relevant only for K8s migration)  # noqa: E501

        :return: The k8s_skip_system of this GatewayCreateMigration.  # noqa: E501
        :rtype: bool
        """
        return self._k8s_skip_system

    @k8s_skip_system.setter
    def k8s_skip_system(self, k8s_skip_system):
        """Sets the k8s_skip_system of this GatewayCreateMigration.

        K8s Skip Control Plane Secrets, This option allows to avoid importing secrets from system namespaces (relevant only for K8s migration)  # noqa: E501

        :param k8s_skip_system: The k8s_skip_system of this GatewayCreateMigration.  # noqa: E501
        :type: bool
        """

        self._k8s_skip_system = k8s_skip_system

    @property
    def k8s_token(self):
        """Gets the k8s_token of this GatewayCreateMigration.  # noqa: E501

        For Token Authentication method K8s Bearer Token with sufficient permission to list and get secrets in the namespace(s) you selected (relevant only for K8s migration with Token Authentication method)  # noqa: E501

        :return: The k8s_token of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._k8s_token

    @k8s_token.setter
    def k8s_token(self, k8s_token):
        """Sets the k8s_token of this GatewayCreateMigration.

        For Token Authentication method K8s Bearer Token with sufficient permission to list and get secrets in the namespace(s) you selected (relevant only for K8s migration with Token Authentication method)  # noqa: E501

        :param k8s_token: The k8s_token of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._k8s_token = k8s_token

    @property
    def k8s_url(self):
        """Gets the k8s_url of this GatewayCreateMigration.  # noqa: E501

        K8s API Server URL, e.g. https://k8s-api.mycompany.com:6443 (relevant only for K8s migration)  # noqa: E501

        :return: The k8s_url of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._k8s_url

    @k8s_url.setter
    def k8s_url(self, k8s_url):
        """Sets the k8s_url of this GatewayCreateMigration.

        K8s API Server URL, e.g. https://k8s-api.mycompany.com:6443 (relevant only for K8s migration)  # noqa: E501

        :param k8s_url: The k8s_url of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._k8s_url = k8s_url

    @property
    def k8s_username(self):
        """Gets the k8s_username of this GatewayCreateMigration.  # noqa: E501

        For Password Authentication method K8s Client username with sufficient permission to list and get secrets in the namespace(s) you selected (relevant only for K8s migration with Password Authentication method)  # noqa: E501

        :return: The k8s_username of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._k8s_username

    @k8s_username.setter
    def k8s_username(self, k8s_username):
        """Sets the k8s_username of this GatewayCreateMigration.

        For Password Authentication method K8s Client username with sufficient permission to list and get secrets in the namespace(s) you selected (relevant only for K8s migration with Password Authentication method)  # noqa: E501

        :param k8s_username: The k8s_username of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._k8s_username = k8s_username

    @property
    def name(self):
        """Gets the name of this GatewayCreateMigration.  # noqa: E501

        Migration name  # noqa: E501

        :return: The name of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this GatewayCreateMigration.

        Migration name  # noqa: E501

        :param name: The name of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """
        if self.local_vars_configuration.client_side_validation and name is None:  # noqa: E501
            raise ValueError("Invalid value for `name`, must not be `None`")  # noqa: E501

        self._name = name

    @property
    def protection_key(self):
        """Gets the protection_key of this GatewayCreateMigration.  # noqa: E501

        The name of the key that protects the classic key value (if empty, the account default key will be used)  # noqa: E501

        :return: The protection_key of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._protection_key

    @protection_key.setter
    def protection_key(self, protection_key):
        """Sets the protection_key of this GatewayCreateMigration.

        The name of the key that protects the classic key value (if empty, the account default key will be used)  # noqa: E501

        :param protection_key: The protection_key of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._protection_key = protection_key

    @property
    def target_location(self):
        """Gets the target_location of this GatewayCreateMigration.  # noqa: E501

        Target location in Akeyless for imported secrets  # noqa: E501

        :return: The target_location of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._target_location

    @target_location.setter
    def target_location(self, target_location):
        """Sets the target_location of this GatewayCreateMigration.

        Target location in Akeyless for imported secrets  # noqa: E501

        :param target_location: The target_location of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """
        if self.local_vars_configuration.client_side_validation and target_location is None:  # noqa: E501
            raise ValueError("Invalid value for `target_location`, must not be `None`")  # noqa: E501

        self._target_location = target_location

    @property
    def token(self):
        """Gets the token of this GatewayCreateMigration.  # noqa: E501

        Authentication token (see `/auth` and `/configure`)  # noqa: E501

        :return: The token of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._token

    @token.setter
    def token(self, token):
        """Sets the token of this GatewayCreateMigration.

        Authentication token (see `/auth` and `/configure`)  # noqa: E501

        :param token: The token of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._token = token

    @property
    def type(self):
        """Gets the type of this GatewayCreateMigration.  # noqa: E501

        Migration type (hashi/aws/gcp/k8s/azure_kv/1password/active_directory)  # noqa: E501

        :return: The type of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._type

    @type.setter
    def type(self, type):
        """Sets the type of this GatewayCreateMigration.

        Migration type (hashi/aws/gcp/k8s/azure_kv/1password/active_directory)  # noqa: E501

        :param type: The type of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._type = type

    @property
    def uid_token(self):
        """Gets the uid_token of this GatewayCreateMigration.  # noqa: E501

        The universal identity token, Required only for universal_identity authentication  # noqa: E501

        :return: The uid_token of this GatewayCreateMigration.  # noqa: E501
        :rtype: str
        """
        return self._uid_token

    @uid_token.setter
    def uid_token(self, uid_token):
        """Sets the uid_token of this GatewayCreateMigration.

        The universal identity token, Required only for universal_identity authentication  # noqa: E501

        :param uid_token: The uid_token of this GatewayCreateMigration.  # noqa: E501
        :type: str
        """

        self._uid_token = uid_token

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, GatewayCreateMigration):
            return False

        return self.to_dict() == other.to_dict()

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        if not isinstance(other, GatewayCreateMigration):
            return True

        return self.to_dict() != other.to_dict()
