
    %"                         d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z
 ddlmZ dd	lmZ dd
Zd ZddZddZd Zd ZddZddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!y)zIFlags and helpers for the Cloud NetApp Files Active Directories commands.    )absolute_import)division)unicode_literals)arg_parsers)flags)util)labels_util)concept_parsersc                 6    | j                  dt        |d       y)z(Adds a --domain arg to the given parser.z--domainzThe Active Directory domain.typerequiredhelpNadd_argumentstrparserr   s     Alib/googlecloudsdk/command_lib/netapp/active_directories/flags.pyAddActiveDirectoryDomainArgr      s!    -	      c                 4    | j                  dt        d       y)z&Adds a --site arg to the given parser.z--sitezYThe Active Directory site the service          will limit Domain Controller discovery to.r   r   Nr   r   s    r   AddActiveDirectorySiteArgr   (   s     8  r   c                 6    | j                  dt        |d       y)z%Adds a --dns arg to the given parser.z--dnszRA comma separated list of DNS server IP addresses for the Active Directory domain.r   Nr   r   s     r   AddActiveDirectoryDnsArgr   2   s!    c	  r   c                 6    | j                  dt        |d       y)z1Adds a --net-bios-prefix arg to the given parser.z--net-bios-prefixz"NetBIOS prefix name of the server.r   Nr   r   s     r   AddActiveDirectoryNetBiosArgr   <   s!    3	  r   c                 4    | j                  dt        d       y)z5Adds a --organizational-unit arg to the given parser.z--organizational-unitzUThe Organizational Unit (OU) within the Windows Active Directory the user belongs to.r   Nr   r   s    r   'AddActiveDirectoryOrganizationalUnitArgr!   F   s    f  r   c                     | j                  dt        j                  t        j                  t        j
                        d       y)z,Adds a --enable-aes arg to the given parser.z--enable-aestruthy_stringsfalsey_stringsz[The Boolean value indiciating whether AES encryption will be enabled for SMB communication.r   Nr   r   
ArgBooleannetapp_utiltruthyfalseyr   s    r   "AddActiveDirectoryAesEncryptionArgr+   O   s;    !!1C1C1<1C1CEl	  r   c                 6    | j                  dt        |d       y)z*Adds a --username arg to the given parser.z
--usernamez6Username of the Active Directory domain administrator.r   Nr   r   s     r   AddActiveDirectoryUsernameArgr-   Y   !    G	  r   c                 6    | j                  dt        |d       y)z*Adds a --password arg to the given parser.z
--passwordz6Password of the Active Directory domain administrator.r   Nr   r   s     r   AddActiveDirectoryPasswordArgr0   c   r.   r   c                 ^    | j                  dt        j                  t              dd       y)z2Adds a --backup-operators arg to the given parser.z--backup-operatorselement_typeBACKUP_OPERATORzIUsers to be added to the Built-in Backup Operator Active Directory group.r   metavarr   Nr   r   ArgListr   r   s    r   $AddActiveDirectoryBackupOperatorsArgr9   m   s,    C0Z	  r   c                 ^    | j                  dt        j                  t              dd       y)z4Adds a --security-operators arg to the given parser.z--security-operatorsr2   SECURITY_OPERATORz0Domain users to be given the Security privilege.r5   Nr7   r   s    r   &AddActiveDirectorySecurityOperatorsArgr<   w   s,    C0!A	  r   c                 ^    | j                  dt        j                  t              dd       y)z0Adds a --administrators arg to the given parser.z--administratorsr2   ADMINISTRATORz>Members of the Active Directory built-in Administrators group.r5   Nr7   r   s    r   #AddActiveDirectoryAdministratorsArgr?      s,    C0O	  r   c                 4    | j                  dt        d       y)z.Adds a --kdc-hostname arg to the given parser.z--kdc-hostnamez%Name of the Active Directory machine.r   Nr   r   s    r   !AddActivevDirectoryKdcHostnameArgrA      s    6  r   c                 4    | j                  dt        d       y)z(Adds a --kdc-ip arg to the given parser.z--kdc-ipz7KDC server IP address for the Active Directory machine.r   Nr   r   s    r   AddActiveDirectoryKdcIpArgrC      s    H  r   c                     | j                  dt        j                  t        j                  t        j
                        d       y)z5Adds a --nfs-users-with-ldap arg to the given parser.z--nfs-users-with-ldapr#   z~Boolean flag that allows access to local users and LDAP users. If access is needed only for LDAP users, it has to be disabled.r   Nr&   r   s    r   %AddActiveDirectoryNfsUsersWithLdapArgrE      s>    !!1C1C1<1C1CE P	  r   c                     | j                  dt        j                  t        j                  t        j
                        d       y)z5Adds a --enable-ldap-signing arg to the given parser.z--enable-ldap-signingr#   zKBoolean flag that specifies whether or not LDAP traffic needs to be signed.r   Nr&   r   s    r    AddActiveDirectoryLdapSigningArgrG      s;    !!1C1C1<1C1CE\	  r   c                     | j                  dt        j                  t        j                  t        j
                        d       y)z8Adds a --encrypt-dc-connections arg to the given parser.z--encrypt-dc-connectionsr#   zkBoolean flag that specifies whether traffic between SMB server to Domain Controller (DC) will be encrypted.r   Nr&   r   s    r   )AddActiveDirectoryEncryptDcConnectionsArgrI      s;     !!1C1C1<1C1CE|	  r   c                 T   t        j                  t        j                  d      g      j	                  |        t        j
                  | d       t        j                  |        t        j                  |        t        |        t        |        t        |        t        |        t        |        t        |        t        |        t!        |        t#        |        t%        |        t'        |        t)        |        t+        |        t-        |        t/        |        t1        |        y)z*Add args for creating an Active Directory.zThe Active Directory to create.Active DirectoryN)r
   ConceptParserr   "GetActiveDirectoryPresentationSpecAddToParserAddResourceDescriptionArgAddResourceAsyncFlagr	   AddCreateLabelsFlagsr   r   r   r   r!   r+   r-   r0   r9   r<   r?   rA   rC   rE   rG   rI   r   s    r   AddActiveDirectoryCreateArgsrR          ..
+-!  [!!&*<=V$""6*f%F#6"v&)&1$V,''&v.(0%f-#F+V$'/"6*+F3r   c                     t        j                  t        j                  d      g      j	                  |        t        j
                  |        y)z*Add args for deleting an Active Directory.zThe Active Directory to delete.N)r
   rL   r   rM   rN   rP   r   s    r   AddActiveDirectoryDeleteArgsrU      s@    ..
+-!  [V$r   c                 T   t        j                  t        j                  d      g      j	                  |        t        j
                  | d       t        j                  |        t        j                  |        t        |        t        |        t        |        t        |        t        |        t        |        t        |        t!        |        t#        |        t%        |        t'        |        t)        |        t+        |        t-        |        t/        |        t1        |        y)z*Add args for updating an Active Directory.zThe Active Directory to update.rK   N)r
   rL   r   rM   rN   rO   rP   r	   AddUpdateLabelsFlagsr   r   r   r   r!   r+   r-   r0   r9   r<   r?   rA   rC   rE   rG   rI   r   s    r   AddActiveDirectoryUpdateArgsrX      rS   r   N)T)"__doc__
__future__r   r   r   googlecloudsdk.callioper   !googlecloudsdk.command_lib.netappr   r   r(   $googlecloudsdk.command_lib.util.argsr	   (googlecloudsdk.command_lib.util.conceptsr
   r   r   r   r   r!   r+   r-   r0   r9   r<   r?   rA   rC   rE   rG   rI   rR   rU   rX    r   r   <module>r`      s    P &  ' / 3 A < D
46%4r   