
    k                     D    d Z ddlmZ dZdZdZg dZg dZg dZd	 Z	d
 Z
y)z9Utils for GKE Connect generate gateway RBAC policy names.    )invalid_args_errorzgateway-impersonate-{metadata}zgateway-permission-{metadata}z,gateway-anthos-support-permission-{metadata})z
principal: iam.googleapis.com	locationsworkforcePoolssubject)zprincipalSet:r   r   r   r   group) /%c                     t        ||      }|r|dz   |z   dz   |z   }n|dz   |z   }| dk(  rt        j                  |      S | dk(  rt        j                  |      S | dk(  rt        j                  |      S y)zGenerate RBAC policy name._impersonate)metadata
permissionanthosN)FormatIdentityForResourceNamingRBAC_IMPERSONATE_POLICY_NAMEformatRBAC_PERMISSION_POLICY_NAMERBAC_ANTHOS_SUPPORT_POLICY_NAME)policy_name
project_id
membershipidentityis_userformatted_identitymetadata_names          =lib/googlecloudsdk/command_lib/container/fleet/format_util.pyRbacPolicyNamer    )   s    6xI$'99C?*LM$'99MM!'...FFL &--}-EEH*11=1II     c                 X   |rt         }t        j                  }nt        }t        j                  }| j                  d      }t        |      dk\  r|dd |ddd   z   }||k(  ri| j                  d      d	   j                  d      d
   }| j                  dj                  |d               d	   }|j                  d      d
   }|dz   |z   }nBt        j                  |      d| vrt        j                  |      | j                  d      d
   }t        D ]  }	|j                  |	d      } |S )zFFormat user by removing disallowed characters for k8s resource naming.r   	   N            z/workforcePools/   r   z/{}/@r   r   )PRINCIPAL_USER_FORMATr   INVALID_ARGS_USER_MESSAGEPRINCIPAL_GROUP_FORMATINVALID_ARGS_GROUP_MESSAGEsplitlenr   InvalidArgsErrorUNWANTED_CHARSreplace)
r   r   desired_formaterror_messagepartscommon_partsworkforce_pool	principalresource_namechs
             r   r   r   9   s.    *N&@@M+N&AAM
..
%Z1_!9uQqU|+L~%~~&89!<BB3GJn..~b/A!BCAFi//#&q)i %s*Y6m//>>
(//>>nnS)!,m b!))"b1M  
r!   N)__doc__*googlecloudsdk.command_lib.container.fleetr   r   r   r   r+   r-   r2   r    r    r!   r   <module>r?      sB    @ I? = "P    !J !r!   