
                         f    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  G d d	e      Zy
)z7Useful commands for interacting with the Cloud SCC API.    )	Generator)
list_pager)apis)util)log)$securitycentermanagement_v1_messagesc                   
   e Zd ZdZd Zdedej                  fdZde	dede	de
ej                  d	ej                  f   fd
Zdededej                  j                  dej                  j                  dedej                  fdZy	)SecurityCenterServicesClientzXClient for Security Center Services interaction with the Security Center Management API.c                 N    t        j                  dd      j                  | _        y )Nsecuritycentermanagementv1)r   GetClientInstance)projects_locations_securityCenterServices_client)selfs    9lib/googlecloudsdk/api_lib/scc/manage/services/clients.py__init__z%SecurityCenterServicesClient.__init__   s$     ))"D// 	L    namereturnc                 d    t        j                  |      }| j                  j                  |      S )zGet a Security Center Service.)r   )messagesISecuritycentermanagementProjectsLocationsSecurityCenterServicesGetRequestr   Get)r   r   reqs      r   r   z SecurityCenterServicesClient.Get$   s.     
\
\C <<C  r   	page_sizeparentlimitNc                 z    t        j                  ||      }t        j                  | j                  ||d|d      S )z/List the details of a Security Center Services.)pageSizer   securityCenterServicesr    )requestr   field
batch_sizebatch_size_attribute)r   JSecuritycentermanagementProjectsLocationsSecurityCenterServicesListRequestr   YieldFromListr   )r   r   r   r   r   s        r   Listz!SecurityCenterServicesClient.List,   sD     
]
]6C ##&' r   validate_onlymodule_configenablement_stateupdate_maskc                 4   t        j                  |||      }t        j                  ||t        j                  |      |      }| j
                  j                  |      }|r!t        j                  j                  d       |S t        j                  |       |S )z!Update a Security Center Service.)modulesintendedEnablementStater   )securityCenterServicer   
updateMaskvalidateOnlyzRequest is valid.)r   SecurityCenterServiceKSecuritycentermanagementProjectsLocationsSecurityCenterServicesPatchRequestscc_utilCleanUpUserMaskInputr   Patchr   statusPrintUpdatedResource)	r   r   r)   r*   r+   r,   security_center_servicer   responses	            r   Updatez#SecurityCenterServicesClient.Update?   s     '<< 0 
^
^500="	C ||!!#&H	jj*+oOr   )__name__
__module____qualname____doc__r   strr   r3   r   intr   "ListSecurityCenterServicesResponser(   boolModulesValue&IntendedEnablementStateValueValuesEnumr=    r   r   r
   r
      s    `0!c !h<< !C  S Y$$
113> &  33@@	
 !66]]  %%r   r
   N)rA   typingr   apitools.base.pyr   googlecloudsdk.api_lib.utilr   googlecloudsdk.command_lib.sccr   r5   googlecloudsdk.corer   Agooglecloudsdk.generated_clients.apis.securitycentermanagement.v1r   r   objectr
   rH   r   r   <module>rP      s*    >  ' , ; # ~@6 @r   