
                         J    d Z ddlmZ ddlmZ ddlmZ ddlmZ d Zd Zd Z	y	)
z$Access approval settings API helper.    )absolute_import)division)unicode_literals)apisc                 x   t        j                  dd      }t        j                  dd      }d| v r-|j                  |       }|j                  j                  |      S d| v r-|j                  |       }|j                  j                  |      S |j                  |       }|j                  j                  |      S )z3Delete the access approval settings for a resource.accessapprovalv1organizations/namefolders/)
r   GetClientInstanceGetMessagesModule>AccessapprovalOrganizationsDeleteAccessApprovalSettingsRequestorganizationsDeleteAccessApprovalSettings8AccessapprovalFoldersDeleteAccessApprovalSettingsRequestfolders9AccessapprovalProjectsDeleteAccessApprovalSettingsRequestprojectsr   clientmsgsreqs       6lib/googlecloudsdk/api_lib/access_approval/settings.pyDeleter      s    !!"2D9&			 0$	7$

M
M N C <<SAA4

G
G H C >>66s;;FF 	G 	# 
	5	5c	::    c                 x   t        j                  dd      }t        j                  dd      }d| v r-|j                  |       }|j                  j                  |      S d| v r-|j                  |       }|j                  j                  |      S |j                  |       }|j                  j                  |      S )z0Get the access approval settings for a resource.r   r	   r
   r   r   )
r   r   r   ;AccessapprovalOrganizationsGetAccessApprovalSettingsRequestr   GetAccessApprovalSettings5AccessapprovalFoldersGetAccessApprovalSettingsRequestr   6AccessapprovalProjectsGetAccessApprovalSettingsRequestr   r   s       r   Getr#   .   s    !!"2D9&			 0$	7$

J
J K C 99#>>4

D
D$
D
OC>>33C88CCCN#		2	23	77r   c                    t        j                  dd      }t        j                  dd      }d}|D cg c]  }|j                  |       }}|j	                  | |||||||||	
      }d| v r/|j                  | ||
      }|j                  j                  |      S d| v r/|j                  | ||
      }|j                  j                  |      S |j                  | ||
      }|j                  j                  |      S c c}w )	a  Update the access approval settings for a resource.

  Args:
    name: the settings resource name (e.g. projects/123/accessApprovalSettings)
    notification_emails: list of email addresses
    enrolled_services: list of services
    active_key_version: KMS signing key version resource name
    preferred_request_expiration_days: the default expiration time for approval
      requests
    prefer_no_broad_approval_requests: communicates the preference to Google
      personnel to request access with as targeted a resource scope as possible
    notification_pubsub_topic: A pubsub topic to which notifications relating to
      approval requests should be sent
    request_scope_max_width_preference: specifies broadest scope of access for
      access requests without a specific method
    require_customer_visible_justification: to configure if a customer visible
      justification (i.e. Vector Case) is required for a Googler to create an
      Access Ticket to send to the customer when attempting to access customer
      resources.
    approval_policy: the policy for approving requests
    update_mask: which fields to update

  Returns:
    updated settings
  r   r	   N)cloudProduct)
r   enrolledServicesnotificationEmailsactiveKeyVersionpreferredRequestExpirationDayspreferNoBroadApprovalRequestsnotificationPubsubTopicrequestScopeMaxWidthPreference#requireCustomerVisibleJustificationapprovalPolicyr
   )r   accessApprovalSettings
updateMaskr   )r   r   r   EnrolledServiceAccessApprovalSettings>AccessapprovalOrganizationsUpdateAccessApprovalSettingsRequestr   UpdateAccessApprovalSettings8AccessapprovalFoldersUpdateAccessApprovalSettingsRequestr   9AccessapprovalProjectsUpdateAccessApprovalSettingsRequestr   )r   notification_emailsenrolled_servicesactive_key_version!preferred_request_expiration_days!prefer_no_broad_approval_requestsnotification_pubsub_topic"request_scope_max_width_preference&require_customer_visible_justificationapproval_policyupdate_maskr   r   settingssservices_protosr   s                    r   UpdaterD   @   sE   L !!"2D9&			 0$	7$(4E4Eqd*4E   ((&,)%F$E7%G*P$ ) ( 

M
M({ N C <<SAA4

G
G({ H C >>66s;;FF[ 	G 	# 
	5	5c	::=s   C>N)
__doc__
__future__r   r   r   googlecloudsdk.api_lib.utilr   r   r#   rD    r   r   <module>rI      s&    + &  ' ,;,8$H;r   