
                             S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  \
R                  R                  S	0r\
R                  R                  4S
 jr " S S\5      rg)z5The Secure Source Manager repositories client module.    )absolute_import)division)unicode_literals)
list_pager)apis)base)	resourcesv1c                 Z    [         R                  U 5      n[        R                  " SU5      $ )Nsecuresourcemanager)VERSION_MAPgetr   GetClientInstance)release_trackapi_versions     >lib/googlecloudsdk/api_lib/securesourcemanager/repositories.pyr   r      s$    .+			 5{	CC    c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)RepositoriesClient"   z.Client for Secure Source Manager repositories.c                 ,   [        [        R                  R                  5      U l        U R                  R
                  U l        U R                  R                  U l        [        R                  " 5       U l        U R                  R                  SS5        g )Nr   r
   )r   r   ReleaseTrackALPHAclientMESSAGES_MODULEmessagesprojects_locations_repositories_servicer	   Registry_resource_parserRegisterApiByName)selfs    r   __init__RepositoriesClient.__init__%   sd    #D$5$5$;$;<DKKK//DMKK??DM%..0D++,A4Hr   c                    U R                   R                  UUUUS9nU R                  R                  SUR                  UR
                  US.SS9n	U R                   R                  UU	R                  5       US9n
U R                   R                  UR                  5       R                  5       U
UR                  S9nU R                  R                  U5      $ )a  Create a new Secure Source Manager repository.

Args:
  repository_ref: a resource reference to
    securesourcemanager.projects.locations.repositories.
  instance_id: a resource id for
    securesourcemanager.projects.locations.instances.
  description: description of the repository
  default_branch: default branch name of the repository
  gitignores: list of gitignore template names
  license_name: license template name
  readme: README template name

Returns:
  Created repository.
)defaultBranch
gitignoreslicensereadmeN
projectsIdlocationsIdinstancesId0securesourcemanager.projects.locations.instancesparams
collection)descriptioninstanceinitialConfig)parent
repositoryrepositoryId)r   InitialConfigr    Parser+   r,   
RepositoryRelativeName=SecuresourcemanagerProjectsLocationsRepositoriesCreateRequestParentrepositoriesIdr   Create)r"   repository_refinstance_idr2   default_branchr'   license_namer)   initial_configr3   r6   
create_reqs               r   r?   RepositoriesClient.Create,   s    4 ]]00$	 1 N $$**(33)55&

 F + H ))&&($ * J
 \\$$&335#22 ] J
 ==
++r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ )zGet metadata for a Secure Source Manager repository.

Args:
  repository_ref: a resource reference to
    securesourcemanager.projects.locations.repositories.

Returns:
Description of repository.
)name)r   :SecuresourcemanagerProjectsLocationsRepositoriesGetRequestr;   r   Get)r"   r@   get_reqs      r   DescribeRepositoriesClient.Describea   sA     mmVV((* W G ==W%%r   c                     U R                   R                  X!R                  5       S9nU R                  R	                  U5      $ )a[  Delete a Secure Source Manager repository.

Args:
  repository_ref: a Resource reference to a
    securesourcemanager.projects.locations.repositories resource.
  allow_missing: Optional. If set to true, and the repository is not found,
    the request will succeed but no action will be taken on the server.

Returns:
Deleted Repository Resource.
)allowMissingrH   )r   =SecuresourcemanagerProjectsLocationsRepositoriesDeleteRequestr;   r   Delete)r"   r@   allow_missing
delete_reqs       r   rQ   RepositoriesClient.Deletep   sA     \\")D)D)F ] J ==
++r   c                 ,   U R                   R                  SUR                  UR                  US.SS9nU R                  R                  UR                  5       UR                  5       S9n[        [        R                  " U R                  UUUSSS95      $ )	a  Lists repositories in a Secure Source Manager instance.

Args:
  location_ref: a Resource reference to a
    securesourcemanager.projects.locations resource.
  instance_id: a resource id for
    securesourcemanager.projects.locations.instances.
  page_size: Optional. Requested page size. Server may return fewer items
    than requested. If unspecified, server will pick an appropriate default.
  limit: Optional. The maximum number of items to return. If unspecified,
    treated as unlimited.

Returns:
List of repositories.
Nr*   r.   r/   )r5   r3   repositoriespageSize)limit
batch_sizefieldbatch_size_attribute)r    r9   r+   r,   r   ;SecuresourcemanagerProjectsLocationsRepositoriesListRequestr;   listr   YieldFromListr   )r"   location_refrA   	page_sizerX   r3   list_reqs          r   ListRepositoriesClient.List   s      $$**&11'33&

 F + H }}XX((*&&( Y H
   MM  !+	
	 	r   c                     U R                   R                  UR                  5       US9nU R                   R                  UR                  5       USR	                  U5      US9nU R
                  R                  U5      $ )a  Update a Secure Source Manager repository.

Args:
  repository_ref: a Resource reference to a
    securesourcemanager.projects.locations.repositories resource.
  update_mask: Field mask is used to specify the fields to be overwritten in
    the repository resource by the update.
  validate_only: Optional. If set to true, and the repository is not found,
    the request will succeed but no action will be taken on the server.
  description: Description of the repository.

Returns:
Updated Repository Resource.
)rH   r2   ,)rH   r6   
updateMaskvalidateOnly)r   r:   r;   <SecuresourcemanagerProjectsLocationsRepositoriesPatchRequestjoinr   Patch)r"   r@   update_maskvalidate_onlyr2   r6   
update_reqs          r   UpdateRepositoriesClient.Update   s}      ))((* * J [[((*88K("	 \ J ==z**r   )r    r   r   r   N)__name__
__module____qualname____firstlineno____doc__r#   r?   rL   rQ   rb   rn   __static_attributes__ r   r   r   r   "   s&    6I3,j&,$'R+r   r   N)rt   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   googlecloudsdk.corer	   r   r   r   r   objectr   rv   r   r   <module>r}      sZ    < &  ' ' , ( )  &&- %)$5$5$;$; D
c+ c+r   