
    i>	                       S r SSKJr  SSKJr  SSKJrJrJr  SSKrSSK	J
r
Jr  SSKJr  SSKJr  SS	KJrJrJr  S
SKJr   " S S\
5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S  S!5      r  " S" S#5      r! " S$ S%5      r" " S& S'5      r# " S( S)5      r$ " S* S+5      r% " S, S-5      r& " S. S/5      r' " S0 S15      r( " S2 S35      r) " S4 S55      r* " S6 S75      r+ " S8 S95      r, " S: S;5      r- " S< S=5      r. " S> S?5      r/ " S@ SA5      r0 " SB SC5      r1 " SD SE5      r2 " SF SG5      r3 " SH SI5      r4 " SJ SK5      r5 " SL SM5      r6 " SN SO5      r7 " SP SQ5      r8 " SR SS5      r9 " ST SU5      r: " SV SW5      r; " SX SY5      r< " SZ S[5      r= " S\ S]5      r> " S^ S_5      r? " S` Sa5      r@ " Sb Sc5      rA " Sd Se5      rB " Sf Sg5      rC " Sh Si5      rD " Sj Sk5      rE " Sl Sm5      rF " Sn So5      rG " Sp Sq5      rH " Sr Ss5      rI " St Su5      rJ " Sv Sw5      rK " Sx Sy5      rL " Sz S{5      rM " S| S}5      rN " S~ S5      rO " S S5      rP " S S5      rQ " S S5      rR " S S5      rS " S S5      rT " S S5      rU " S S5      rV " S S5      rW " S S5      rX " S S5      rY " S S5      rZ " S S5      r[ " S S5      r\ " S S5      r] " S S5      r^ " S S5      r_ " S S5      r` " S S5      ra " S S5      rb " S S5      rc " S S5      rd " S S5      re " S S5      rfg)z
The IAM Identity Service API allows for the management of Account Settings and Identities
(Service IDs, ApiKeys).

API Version: 1.0.0
    )datetime)Enum)DictListOptionalN)BaseServiceDetailedResponse)Authenticator)"get_authenticator_from_environment)convert_modeldatetime_to_stringstring_to_datetime   )get_sdk_headersc                      \ rS rSrSrSrSr\\4S\SS 4S jj5       r	 SS	\
SS4S
 jjrSSSSSSSSSSS.
S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\4S jjrSSSSSSS.S\S\S\\   S\\   S\\\      S\S   S\\   S\\   S\4S jjrSSSS.S\S\\   S \\   S\\   S\4
S! jjrSSSSS".S\S#\S\\   S\\   S\\\      S\\   S\4S$ jjrS\S\4S% jrS\S\4S& jrS\S\4S' jrSS(.S\\   S\4S) jjrSS*.S\S\S\\   S\4S+ jjrS\S\4S, jrSS*.S\S#\S\S\\   S\4
S- jjrS\S\4S. jrSSSSSSSSSSSS/.S\\   S0\\   S\\   S\\   S1\\   S2\\   S\\   S\\   S\\   S\\   S\\   S\4S3 jjrSSSSSSSSS4.S\S0\S\\   S\\   S\\   S5\\   S6\\   S7\\   S\\   S8\\   S\4S9 jjrSSS:.S;\\   S\\   S\4S< jjrSSS=.S\S\\   S \\   S\4S> jjr SSSSS?.S\S#\S\\   S\\   S6\\   S7\\   S\4S@ jjr!S\S\4SA jr"S\S\4SB jr#S\S\4SC jr$S\S\4SD jr%S\S\4SE jr&SSSF.S\S\S\\   SG\\   S\4
SH jjr'SSSSSSSSI.S\S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\4SJ jjr(SSK.SL\S \\   S\4SM jjr)SSSSN.SL\S#\S\\   S\\   SG\\   S\4SO jjr*SL\S\4SP jr+SSSSSSQ.SL\S2\SR\SS   ST\SU   S\\   SV\\   SW\\   SX\\   S\4SY jjr,SL\S\4SZ jr-SL\S[\S\4S\ jr.SSSSSSQ.SL\S[\S#\S2\SR\SS   ST\SU   S\\   SV\\   SW\\   SX\\   S\4S] jjr/SL\S[\S\4S^ jr0SS_.SL\SW\S`SaS\\   S\4
Sb jjr1SL\S\4Sc jr2SSSSSSd.SL\S2\Se\\   Sf\\   S\\   Sg\\   Sh\\   S\4Si jjr3SL\Sj\S\4Sk jr4SL\Sj\S\4Sl jr5SL\S\4Sm jr6SSn.SL\S#\So\\Sp      S\4Sq jjr7SSSr.SL\Ss\St\S2\Su\\\      S\\   S\4Sv jjr8SL\Ss\Sw\S\4Sx jr9SL\Ss\Sw\S\4Sy jr:SSSz.S\S2\\   S{\\   S\4S| jjr;S\S}\S\4S~ jr<SSS.S\S\\   S\\   S\4S jjr=SSSSSSSSSSSSS.S#\S\S\\   S\\   S\\   S\\   S\\S      S\\   S\\   S\\   S\\   S\\   S\\   S\\S      S\4S jjr>SSS.S\S\\   S\\   S\4S jjr?S\S0\S\4S jr@SS.S\S2\\   S\4S jjrAS\S}\S\4S jrBSS.S\S0\S\S\S\S\\\      S\4S jjrCS\S0\S\S\S\4
S jrDS\S0\S\S\S\4
S jrES\S0\S\4S jrFSSSSSSS.S\\   S\\   S\\   S\\   S\\   S\\   S\4S jjrGSSSSSSS.S\\   S\\   S\\   S\S   S\\S      S\S   S\4S jjrHSS.S\S\\   S\4S jjrIS\S\4S jrJSSSSSS.S\S\\   S\\   S\\   S\\   S\\   S\4S jjrKSSSSSSS.S\S\\   S\\   S\\   S\S   S\\S      S\S   S\4S jjrLSS.S\S\S\\   S\4S jjrMSSSSSSS.S#\S\S\S\\   S\\   S\\   S\S   S\\S      S\S   S\4S jjrNS\S\S\4S jrOS\S\S\4S jrPSSSSSSSSSSS.
S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\4S jjrQS\S\S\S\S\4
S jrRSS.S\S\\   S\4S jjrSS\S\4S jrTS\S#\S\S\4S jrUSSSSSSS.S\\   S\\   S\\   S\\   S\\   S\\   S\4S jjrVSSSSS.S\\   S\\   S\\   S\S   S\4
S jjrWSS.S\S\\   S\4S jjrXS\S\4S jrYSSSSSS.S\S\\   S\\   S\\   S\\   S\\   S\4S jjrZSSSSS.S\S\\   S\\   S\\   S\S   S\4S jjr[SS.S\S\S\\   S\4S jjr\SSSSS.S#\S\S\S\\   S\\   S\\   S\S   S\4S jjr]S\S\S\4S jr^S\S\S\4S jr_SSSSSSSSSSS.
S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\4S jjr`S\S\S\S\S\4
S jraSS.S\S\\   S\4S jjrbS\S\4S jrcS\S#\S\S\4S jrdSreg)IamIdentityV1+   zThe iam_identity V1 service.zhttps://iam.cloud.ibm.comiam_identityservice_namereturnc                 N    [        U5      nU " U5      nUR                  U5        U$ )zt
Return a new client for the iam_identity service using the specified
       parameters and external configuration.
)r   configure_service)clsr   authenticatorservices       _/home/james-whalen/.local/lib/python3.13/site-packages/ibm_platform_services/iam_identity_v1.pynew_instanceIamIdentityV1.new_instance1   s+     ;<Hm$!!,/    Nr   c                 B    [         R                  " X R                  US9  g)a3  
Construct a new client for the iam_identity service.

:param Authenticator authenticator: The authenticator specifies the authentication mechanism.
       Get up to date information from https://github.com/IBM/python-sdk-core/blob/main/README.md
       about initializing the authenticator of your choice.
)service_urlr   N)r   __init__DEFAULT_SERVICE_URL)selfr   s     r   r"   IamIdentityV1.__init__?   s     	T/G/GWder   

account_idgroup_idnamepagesize	pagetokensortorderinclude_historyfiltershow_group_idr'   r(   r)   r*   r+   r,   r-   r.   r/   r0   c       
            0 n[        U R                  SSS9nUR                  U5        UUUUUUUUU	U
S.
nSU;   a#  UR                  UR                  S5      5        US	 SUS'   SnU R	                  S	UUUS
9nU R
                  " U40 UD6nU$ )a^  
List service IDs.

Returns a list of service IDs. Users can manage user API keys for themself, or
service ID API keys for service IDs they have access to. Note: apikey details are
only included in the response when creating a Service ID with an api key.

:param str account_id: (optional) Account ID of the service ID(s) to query.
       This parameter is required (unless using a pagetoken).
:param str group_id: (optional) Group ID of the service ID(s) to query. If
       this parameter is not provided the default group is applied.
:param str name: (optional) Name of the service ID(s) to query. Optional.20
       items per page. Valid range is 1 to 100.
:param int pagesize: (optional) Optional size of a single page. Default is
       20 items per page. Valid range is 1 to 100.
:param str pagetoken: (optional) Optional Prev or Next page token returned
       from a previous query execution. Default is start with first page.
:param str sort: (optional) Optional sort property, valid values are name,
       description, created_at and modified_at. If specified, the items are sorted
       by the value of this property.
:param str order: (optional) Optional sort order, valid values are asc and
       desc. Default: asc.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param str filter: (optional) An optional filter query parameter used to
       refine the results of the search operation. For more information see
       [Filtering list results](#filter-list-results) section.
:param str show_group_id: (optional) Defines if the service ID group ID is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ServiceIdList` object
V1list_service_idsr   service_versionoperation_idr&   headersapplication/jsonAccept/v1/serviceids/GETmethodurlr7   paramsr   DEFAULT_SERVICE_NAMEupdategetprepare_requestsend)r$   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   kwargsr7   sdk_headersr?   r>   requestresponses                     r   r3   IamIdentityV1.list_service_idsP   s    b %22 +

 	{# %  ".*
 NN6::i01y!.&&	 ' 
 99W//r   )r(   descriptionunique_instance_crnsapikeyr0   entity_lockrK   rL   rM   "ApiKeyInsideCreateServiceIdRequestrN   c                   Uc  [        S5      eUc  [        S5      eUb  [        U5      nSU0n
[        U R                  SSS9nU
R	                  U5        SU0nUUUUUUS.nUR                  5        VVs0 s H  u  pUc  M
  X_M     nnn[        R                  " U5      nS	U
S
'   SU	;   a#  U
R	                  U	R                  S5      5        U	S	 S	U
S'   SnU R                  SUU
UUS9nU R                  " U40 U	D6nU$ s  snnf )a  
Create a service ID.

Creates a service ID for an IBM Cloud account. Users can manage user API keys for
themself, or service ID API keys for service IDs they have access to.

:param str account_id: ID of the account the service ID belongs to.
:param str name: Name of the Service Id. The name is not checked for
       uniqueness. Therefore multiple names with the same value can exist. Access
       is done via the UUID of the Service Id.
:param str group_id: (optional) ID of the group to which the service ID
       belongs to. If the value is not set, the service ID is bound to the default
       group.
:param str description: (optional) The optional description of the Service
       Id. The 'description' property is only available if a description was
       provided during a create of a Service Id.
:param List[str] unique_instance_crns: (optional) Optional list of CRNs
       (string array) which point to the services connected to the service ID.
:param ApiKeyInsideCreateServiceIdRequest apikey: (optional) Parameters for
       the API key in the Create service Id V1 REST request.
:param str show_group_id: (optional) Defines if the service ID group ID is
       included in the response.
:param str entity_lock: (optional) Indicates if the service ID is locked
       for further write operations. False by default.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ServiceId` object
account_id must be providedname must be providedEntity-Lockr2   create_service_idr4   r0   )r'   r)   r(   rK   rL   rM   r8   content-typer7   r9   r:   POSTr=   r>   r7   r?   data)
ValueErrorr   r   rA   rB   itemsjsondumpsrC   rD   rE   )r$   r'   r)   r(   rK   rL   rM   r0   rN   rF   r7   rG   r?   rX   kvr>   rH   rI   s                      r   rT   IamIdentityV1.create_service_id   sJ   T :;;<455"6*F;
 &22 ,

 	{# ]

 % &$8
 $(::<A<!1<Azz$"4NN6::i01y!.&& ' 
 99W//' Bs   5	C>C>r.   include_activityr0   idra   c                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        UUUS.nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/n	U R                  U5      n
[        [        X5      5      nS
R                  " S0 UD6nU R                  SUUUS9nU R                  " U40 UD6nU$ )a  
Get details of a service ID.

Returns the details of a service ID. Users can manage user API keys for themself,
or service ID API keys for service IDs they have access to. Note: apikey details
are only included in the response when creating a Service ID with an api key.

:param str id: Unique ID of the service ID.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param bool include_activity: (optional) Defines if the entity's activity
       is included in the response. Retrieving activity data is an expensive
       operation, so only request this when needed.
:param str show_group_id: (optional) Defines if the service ID group ID is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ServiceId` object
id must be providedr2   get_service_idr4   r`   r7   r8   r9   rb   /v1/serviceids/{id}r;   r<    rY   r   rA   rB   rC   encode_path_varsdictzipformatrD   rE   )r$   rb   r.   ra   r0   rF   r7   rG   r?   path_param_keyspath_param_valuespath_param_dictr>   rH   rI   s                  r   re   IamIdentityV1.get_service_id  s    : 233%22 )

 	{#  / 0*
 NN6::i01y!.& 11"5s?FG#**=_=&&	 ' 
 99W//r   )r)   rK   rL   r0   if_matchc                f   U(       d  [        S5      eU(       d  [        S5      eSU0n[        U R                  SSS9n	UR                  U	5        SU0n
UUUS.nUR	                  5        VVs0 s H  u  pUc  M
  X_M     nnn[
        R                  " U5      nS	US
'   SU;   a#  UR                  UR                  S5      5        US	 S	US'   S/nU R                  U5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUU
US9nU R                  " U40 UD6nU$ s  snnf )a  
Update service ID.

Updates properties of a service ID. This does NOT affect existing access tokens.
Their token content will stay unchanged until the access token is refreshed. To
update a service ID, pass the property to be modified. To delete one property's
value, pass the property with an empty value "".Users can manage user API keys for
themself, or service ID API keys for service IDs they have access to. Note: apikey
details are only included in the response when creating a Service ID with an
apikey.

:param str id: Unique ID of the service ID to be updated.
:param str if_match: Version of the service ID to be updated. Specify the
       version that you retrieved as entity_tag (ETag header) when reading the
       service ID. This value helps identifying parallel usage of this API. Pass *
       to indicate to update any version available. This might result in stale
       updates.
:param str name: (optional) The name of the service ID to update. If
       specified in the request the parameter must not be empty. The name is not
       checked for uniqueness. Failure to this will result in an Error condition.
:param str description: (optional) The description of the service ID to
       update. If specified an empty description will clear the description of the
       service ID. If an non empty value is provided the service ID will be
       updated.
:param List[str] unique_instance_crns: (optional) List of CRNs which point
       to the services connected to this service ID. If specified an empty list
       will clear all existing unique instance crns of the service ID.
:param str show_group_id: (optional) Defines if the service ID group ID is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ServiceId` object
rd   if_match must be providedIf-Matchr2   update_service_idr4   r0   )r)   rK   rL   r8   rU   r7   r9   rb   rf   PUTrW   rg   rY   r   rA   rB   rZ   r[   r\   rC   ri   rj   rk   rl   rD   rE   )r$   rb   rq   r)   rK   rL   r0   rF   r7   rG   r?   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                       r   ru   IamIdentityV1.update_service_idA  sa   Z 233899
 &22 ,

 	{# ]

 &$8

 $(::<A<!1<Azz$"4NN6::i01y!.& 11"5s?FG#**=_=&& ' 
 99W//- Bs   ,	D-9D-c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )a  
Deletes a service ID and associated API keys.

Deletes a service ID and all API keys associated to it. Before deleting the
service ID, all associated API keys are deleted. In case a Delete Conflict (status
code 409) a retry of the request may help as the service ID is only deleted if the
associated API keys were successfully deleted before. Users can manage user API
keys for themself, or service ID API keys for service IDs they have access to.

:param str id: Unique ID of the service ID.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
rd   r2   delete_service_idr4   r7   rb   rf   DELETEr=   r>   r7   rg   rh   r$   rb   rF   r7   rG   rm   rn   ro   r>   rH   rI   s              r   rz   IamIdentityV1.delete_service_id  s    ( 233%22 ,

 	{#NN6::i01y!& 11"5s?FG#**=_=&& ' 
 99W//r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )ap  
Lock the service ID.

Locks a service ID by ID. Users can manage user API keys for themself, or service
ID API keys for service IDs they have access to.

:param str id: Unique ID of the service ID.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
rd   r2   lock_service_idr4   r7   rb   /v1/serviceids/{id}/lockrV   r|   rg   rh   r}   s              r   r   IamIdentityV1.lock_service_id      " 233%22 *

 	{#NN6::i01y!& 11"5s?FG(//B/B&& ' 
 99W//r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )at  
Unlock the service ID.

Unlocks a service ID by ID. Users can manage user API keys for themself, or
service ID API keys for service IDs they have access to.

:param str id: Unique ID of the service ID.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
rd   r2   unlock_service_idr4   r7   rb   r   r{   r|   rg   rh   r}   s              r   r   IamIdentityV1.unlock_service_id  s    " 233%22 ,

 	{#NN6::i01y!& 11"5s?FG(//B/B&& ' 
 99W//r   )r'   c                   0 n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR                  S5      5        US	 SUS'   SnU R	                  S	UUUS
9nU R
                  " U40 UD6nU$ )a  
List service ID groups.

Returns a list of all service ID groups for the given account ID.

:param str account_id: (optional) Account ID of the service ID groups to
       query.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ServiceIdGroupList` object
r2   list_service_id_groupr4   r'   r7   r8   r9   /v1/serviceid_groupsr;   r<   r@   )	r$   r'   rF   r7   rG   r?   r>   rH   rI   s	            r   r   #IamIdentityV1.list_service_id_group(  s    $ %22 0

 	{# *
 NN6::i01y!.$&&	 ' 
 99W//r   )rK   c                   Uc  [        S5      eUc  [        S5      e0 n[        U R                  SSS9nUR                  U5        UUUS.nUR	                  5        VV	s0 s H  u  pU	c  M
  X_M     nnn	[
        R                  " U5      nSUS'   S	U;   a#  UR                  UR                  S	5      5        US		 SUS
'   Sn
U R                  SU
UUS9nU R                  " U40 UD6nU$ s  sn	nf )a  
Create a service ID group.

Creates a service ID group for the given account ID.

:param str account_id: ID of the account the service ID group belongs to.
:param str name: Name of the service ID group. Unique in the account.
:param str description: (optional) Description of the service ID group.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ServiceIdGroup` object
rQ   rR   r2   create_service_id_groupr4   )r'   r)   rK   r8   rU   r7   r9   r   rV   r=   r>   r7   rX   
rY   r   rA   rB   rZ   r[   r\   rC   rD   rE   )r$   r'   r)   rK   rF   r7   rG   rX   r]   r^   r>   rH   rI   s                r   r   %IamIdentityV1.create_service_id_groupV  s   * :;;<455%22 2

 	{# %&

 $(::<A<!1<Azz$"4NN6::i01y!.$&&	 ' 
 99W//% Bs   	C&+C&c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S/nU R                  U5      n[        [        XV5      5      nS	R                  " S0 UD6nU R                  S
UUS9n	U R                  " U	40 UD6n
U
$ )af  
Get details of a service ID group.

Returns the details of a service ID group.

:param str id: Unique ID of the service ID group.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ServiceIdGroup` object
rd   r2   get_service_id_groupr4   r7   r8   r9   rb   /v1/serviceid_groups/{id}r;   r|   rg   rh   r}   s              r   r   "IamIdentityV1.get_service_id_group  s      233%22 /

 	{#NN6::i01y!.& 11"5s?FG)00C?C&& ' 
 99W//r   c                v   U(       d  [        S5      eU(       d  [        S5      eUc  [        S5      eSU0n[        U R                  SSS9nUR                  U5        UUS.nUR	                  5        V	V
s0 s H  u  pU
c  M
  X_M     nn	n
[
        R                  " U5      nS	US
'   SU;   a#  UR                  UR                  S5      5        US	 S	US'   S/nU R                  U5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUUS9nU R                  " U40 UD6nU$ s  sn
n	f )a  
Update a service ID group.

Update a service ID group.

:param str id: Unique ID of the service ID group to be updated.
:param str if_match: Version of the service ID gorup to be updated. Specify
       the version that you retrieved when reading service ID group. This value
       helps identifying parallel usage of this API. Pass * to indicate to update
       any version available. This might result in stale updates.
:param str name: Name of the service ID group. Unique in the account.
:param str description: (optional) Description of the service ID group.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ServiceIdGroup` object
rd   rs   rR   rt   r2   update_service_id_groupr4   )r)   rK   r8   rU   r7   r9   rb   r   rv   r   rg   rw   )r$   rb   rq   r)   rK   rF   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                    r   r   %IamIdentityV1.update_service_id_group  s]   4 233899<455
 &22 2

 	{# &
 $(::<A<!1<Azz$"4NN6::i01y!.& 11"5s?FG)00C?C&&	 ' 
 99W//+ Bs   5	D5D5c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )a  
Delete a service ID group.

Delete a service ID group.

:param str id: Unique ID of the service ID group.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
rd   r2   delete_service_id_groupr4   r7   rb   r   r{   r|   rg   rh   r}   s              r   r   %IamIdentityV1.delete_service_id_group  s      233%22 2

 	{#NN6::i01y!& 11"5s?FG)00C?C&& ' 
 99W//r   r'   iam_idr*   r+   scopetyper,   r-   r.   r/   r(   r   r   r   c                   0 n[        U R                  SSS9nUR                  U5        UUUUUUUUU	U
US.nSU;   a#  UR                  UR                  S5      5        US	 SUS'   SnU R	                  S	UUUS
9nU R
                  " U40 UD6nU$ )a	  
Get API keys for a given service or user IAM ID and account ID.

Returns the list of API key details for a given service or user IAM ID and account
ID. Users can manage user API keys for themself, or service ID API keys for
service IDs they have access to.

:param str account_id: (optional) Account ID of the API keys to query. If a
       service IAM ID is specified in iam_id then account_id must match the
       account of the IAM ID. If a user IAM ID is specified in iam_id then then
       account_id must match the account of the Authorization token.
:param str iam_id: (optional) IAM ID of the API keys to be queried. The IAM
       ID may be that of a user or a service. For a user IAM ID iam_id must match
       the Authorization token.
:param int pagesize: (optional) Optional size of a single page. Default is
       20 items per page. Valid range is 1 to 100.
:param str pagetoken: (optional) Optional Prev or Next page token returned
       from a previous query execution. Default is start with first page.
:param str scope: (optional) Optional parameter to define the scope of the
       queried API keys. Can be 'entity' (default) or 'account'.
:param str type: (optional) Optional parameter to filter the type of the
       queried API keys. Can be 'user' or 'serviceid'.
:param str sort: (optional) Optional sort property, valid values are name,
       description, created_at and created_by. If specified, the items are sorted
       by the value of this property.
:param str order: (optional) Optional sort order, valid values are asc and
       desc. Default: asc.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param str filter: (optional) An optional filter query parameter used to
       refine the results of the search operation. For more information see
       [Filtering list results](#filter-list-results) section.
:param str group_id: (optional) Optional group ID of the service ID(s) to
       which the searched API keys are bound. If this parameter is not provided
       the default group is applied on service ID API keys. For user API keys this
       parameter is ignored as they always belong to the default group.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ApiKeyList` object
r2   list_api_keysr4   r   r7   r8   r9   /v1/apikeysr;   r<   r@   )r$   r'   r   r*   r+   r   r   r,   r-   r.   r/   r(   rF   r7   rG   r?   r>   rH   rI   s                      r   r   IamIdentityV1.list_api_keys0  s    r %22 (

 	{# % ". 
 NN6::i01y!.&&	 ' 
 99W//r   )rK   r'   rM   store_valuesupport_sessionsaction_when_leakedrN   entity_disabler   r   r   r   c          	         Uc  [        S5      eUc  [        S5      eU	U
S.n[        U R                  SSS9nUR                  U5        UUUUUUUUS.nUR	                  5        VVs0 s H  u  nnUc  M  UU_M     nnn[
        R                  " U5      nSUS	'   S
U;   a#  UR                  UR                  S
5      5        US
	 SUS'   SnU R                  SUUUS9nU R                  " U40 UD6nU$ s  snnf )a	  
Create an API key.

Creates an API key for a UserID or service ID. Users can manage user API keys for
themself, or service ID API keys for service IDs they have access to.

:param str name: Name of the API key. The name is not checked for
       uniqueness. Therefore multiple names with the same value can exist. Access
       is done via the UUID of the API key.
:param str iam_id: The iam_id that this API key authenticates.
:param str description: (optional) The optional description of the API key.
       The 'description' property is only available if a description was provided
       during a create of an API key.
:param str account_id: (optional) The account ID of the API key.
:param str apikey: (optional) You can optionally passthrough the API key
       value for this API key. If passed, a minimum length validation of 32
       characters for that apiKey value is done, i.e. the value can contain any
       characters and can even be non-URL safe, but the minimum length requirement
       must be met. If omitted, the API key management will create an URL safe
       opaque API key value. The value of the API key is checked for uniqueness.
       Ensure enough variations when passing in this value.
:param bool store_value: (optional) Send true or false to set whether the
       API key value is retrievable in the future by using the Get details of an
       API key request. If you create an API key for a user, you must specify
       `false` or omit the value. We don't allow storing of API keys for users.
:param bool support_sessions: (optional) Defines whether you can manage CLI
       login sessions for the API key. When `true`, sessions are created and can
       be reviewed or revoked. When `false`, no sessions are tracked. To block
       access, delete or rotate the API key. Available only for user API keys.
:param str action_when_leaked: (optional) Defines the action to take when
       API key is leaked, valid values are 'none', 'disable' and 'delete'.
:param str entity_lock: (optional) Indicates if the API key is locked for
       further write operations. False by default.
:param str entity_disable: (optional) Indicates if the API key is disabled.
       False by default.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ApiKey` object
rR   iam_id must be provided)rS   zEntity-Disabler2   create_api_keyr4   )r)   r   rK   r'   rM   r   r   r   r8   rU   r7   r9   r   rV   r   r   )r$   r)   r   rK   r'   rM   r   r   r   rN   r   rF   r7   rG   rX   r]   r^   r>   rH   rI   s                       r   r   IamIdentityV1.create_api_key  s3   n <455>677&,
 &22 )

 	{# &$& 0"4	
 $(::<A<!Q11<Azz$"4NN6::i01y!.&&	 ' 
 99W//% Bs   &
C04C0)iam_api_keyr.   r   c                   SU0n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR                  S5      5        US	 SUS'   S	nU R	                  S
UUUS9nU R
                  " U40 UD6n	U	$ )a;  
Get details of an API key by its value.

Returns the details of an API key by its value. Users can manage user API keys for
themself, or service ID API keys for service IDs they have access to.

:param str iam_api_key: (optional) API key value.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ApiKey` object
z
IAM-ApiKeyr2   get_api_keys_detailsr4   r.   r7   r8   r9   z/v1/apikeys/detailsr;   r<   r@   )
r$   r   r.   rF   r7   rG   r?   r>   rH   rI   s
             r   r   "IamIdentityV1.get_api_keys_details  s    , +
 &22 /

 	{# 
 NN6::i01y!.#&&	 ' 
 99W//r   r.   ra   c                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        UUS.nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n	[        [        X5      5      n
S
R                  " S0 U
D6nU R                  SUUUS9nU R                  " U40 UD6nU$ )a  
Get details of an API key.

Returns the details of an API key. Users can manage user API keys for themself, or
service ID API keys for service IDs they have access to.

:param str id: Unique ID of the API key.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param bool include_activity: (optional) Defines if the entity's activity
       is included in the response. Retrieving activity data is an expensive
       operation, so only request this when needed.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ApiKey` object
rd   r2   get_api_keyr4   r   r7   r8   r9   rb   /v1/apikeys/{id}r;   r<   rg   rh   )r$   rb   r.   ra   rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                 r   r   IamIdentityV1.get_api_key&  s    2 233%22 &

 	{#  / 0

 NN6::i01y!.& 11"5s?FG '':/:&&	 ' 
 99W//r   r)   rK   r   r   c                ^   U(       d  [        S5      eU(       d  [        S5      eSU0n[        U R                  SSS9n	UR                  U	5        UUUUS.n
U
R	                  5        VVs0 s H  u  pUc  M
  X_M     n
nn[
        R                  " U
5      n
SUS	'   S
U;   a#  UR                  UR                  S
5      5        US
	 SUS'   S/nU R                  U5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUU
S9nU R                  " U40 UD6nU$ s  snnf )am  
Updates an API key.

Updates properties of an API key. This does NOT affect existing access tokens.
Their token content will stay unchanged until the access token is refreshed. To
update an API key, pass the property to be modified. To delete one property's
value, pass the property with an empty value "". Users can manage user API keys
for themself, or service ID API keys for service IDs they have access to.

:param str id: Unique ID of the API key to be updated.
:param str if_match: Version of the API key to be updated. Specify the
       version that you retrieved when reading the API key. This value helps
       identifying parallel usage of this API. Pass * to indicate to update any
       version available. This might result in stale updates.
:param str name: (optional) The name of the API key to update. If specified
       in the request the parameter must not be empty. The name is not checked for
       uniqueness. Failure to this will result in an Error condition.
:param str description: (optional) The description of the API key to
       update. If specified an empty description will clear the description of the
       API key. If a non empty value is provided the API key will be updated.
:param bool support_sessions: (optional) Defines whether you can manage CLI
       login sessions for the API key. When `true`, sessions are created and can
       be reviewed or revoked. When `false`, no sessions are tracked. To block
       access, delete or rotate the API key. Available only for user API keys.
:param str action_when_leaked: (optional) Defines the action to take when
       API key is leaked, valid values are 'none', 'disable' and 'delete'.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ApiKey` object
rd   rs   rt   r2   update_api_keyr4   r   r8   rU   r7   r9   rb   r   rv   r   rg   rw   )r$   rb   rq   r)   rK   r   r   rF   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                      r   r   IamIdentityV1.update_api_keya  sS   T 233899
 &22 )

 	{# & 0"4	
 $(::<A<!1<Azz$"4NN6::i01y!.& 11"5s?FG '':/:&&	 ' 
 99W//+ Bs   )	D)6D)c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )a  
Deletes an API key.

Deletes an API key. Existing tokens will remain valid until expired. Users can
manage user API keys for themself, or service ID API keys for service IDs they
have access to.

:param str id: Unique ID of the API key.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
rd   r2   delete_api_keyr4   r7   rb   r   r{   r|   rg   rh   r}   s              r   r   IamIdentityV1.delete_api_key  s    $ 233%22 )

 	{#NN6::i01y!& 11"5s?FG '':/:&& ' 
 99W//r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )ah  
Lock the API key.

Locks an API key by ID. Users can manage user API keys for themself, or service ID
API keys for service IDs they have access to.

:param str id: Unique ID of the API key.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
rd   r2   lock_api_keyr4   r7   rb   /v1/apikeys/{id}/lockrV   r|   rg   rh   r}   s              r   r   IamIdentityV1.lock_api_key  s    " 233%22 '

 	{#NN6::i01y!& 11"5s?FG%,,??&& ' 
 99W//r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )al  
Unlock the API key.

Unlocks an API key by ID. Users can manage user API keys for themself, or service
ID API keys for service IDs they have access to.

:param str id: Unique ID of the API key.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
rd   r2   unlock_api_keyr4   r7   rb   r   r{   r|   rg   rh   r}   s              r   r   IamIdentityV1.unlock_api_key  s    " 233%22 )

 	{#NN6::i01y!& 11"5s?FG%,,??&& ' 
 99W//r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )ag  
Disable the API key.

Disable an API key. Users can manage user API keys for themself, or service ID API
keys for service IDs they have access to.

:param str id: Unique ID of the API key.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
rd   r2   disable_api_keyr4   r7   rb   /v1/apikeys/{id}/disablerV   r|   rg   rh   r}   s              r   r   IamIdentityV1.disable_api_key;  r   r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )ae  
Enable the API key.

Enable an API key. Users can manage user API keys for themself, or service ID API
keys for service IDs they have access to.

:param str id: Unique ID of the API key.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
rd   r2   enable_api_keyr4   r7   rb   r   r{   r|   rg   rh   r}   s              r   r   IamIdentityV1.enable_api_keyg  s    " 233%22 )

 	{#NN6::i01y!& 11"5s?FG(//B/B&& ' 
 99W//r   )rK   emailr   c                   Uc  [        S5      eUc  [        S5      e0 n[        U R                  SSS9nUR                  U5        UUUUS.nUR	                  5        V	V
s0 s H  u  pU
c  M
  X_M     nn	n
[
        R                  " U5      nSUS'   S	U;   a#  UR                  UR                  S	5      5        US		 SUS
'   SnU R                  SUUUS9nU R                  " U40 UD6nU$ s  sn
n	f )a1  
Create a trusted profile.

Create a trusted profile for a given account ID.

:param str name: Name of the trusted profile. The name is checked for
       uniqueness. Therefore trusted profiles with the same names can not exist in
       the same account.
:param str account_id: The account ID of the trusted profile.
:param str description: (optional) The optional description of the trusted
       profile. The 'description' property is only available if a description was
       provided during creation of trusted profile.
:param str email: (optional) The email of the trusted profile.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfile` object
rR   rQ   r2   create_profiler4   )r)   r'   rK   r   r8   rU   r7   r9   /v1/profilesrV   r   r   )r$   r)   r'   rK   r   rF   r7   rG   rX   r]   r^   r>   rH   rI   s                 r   r   IamIdentityV1.create_profile  s   6 <455:;;%22 )

 	{# $&	
 $(::<A<!1<Azz$"4NN6::i01y!.&&	 ' 
 99W//% Bs   	C',C')r)   r*   r,   r-   r.   r+   r/   c          	      :   U(       d  [        S5      e0 n
[        U R                  SSS9nU
R                  U5        UUUUUUUUS.nSU	;   a#  U
R                  U	R	                  S5      5        U	S	 SU
S'   S	nU R                  S
UU
US9nU R                  " U40 U	D6nU$ )a  
List trusted profiles.

List the trusted profiles in an account. The `account_id` query parameter
determines the account from which to retrieve the list of trusted profiles.

:param str account_id: Account ID to query for trusted profiles.
:param str name: (optional) Name of the trusted profile to query.
:param int pagesize: (optional) Optional size of a single page. Default is
       20 items per page. Valid range is 1 to 100.
:param str sort: (optional) Optional sort property, valid values are name,
       description, created_at and modified_at. If specified, the items are sorted
       by the value of this property.
:param str order: (optional) Optional sort order, valid values are asc and
       desc. Default: asc.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param str pagetoken: (optional) Optional Prev or Next page token returned
       from a previous query execution. Default is start with first page.
:param str filter: (optional) An optional filter query parameter used to
       refine the results of the search operation. For more information see
       [Filtering list results](#filter-list-results) section.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfilesList` object
rQ   r2   list_profilesr4   )r'   r)   r*   r,   r-   r.   r+   r/   r7   r8   r9   r   r;   r<   )rY   r   rA   rB   rC   rD   rE   )r$   r'   r)   r*   r,   r-   r.   r+   r/   rF   r7   rG   r?   r>   rH   rI   s                   r   r   IamIdentityV1.list_profiles  s    P :;;%22 (

 	{# % ."	
 NN6::i01y!.&&	 ' 
 99W//r   )ra   
profile_idc                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n[        [        Xx5      5      n	S
R                  " S0 U	D6n
U R                  SU
UUS9nU R                  " U40 UD6nU$ )a  
Get a trusted profile.

Retrieve a trusted profile by its `profile-id`. Only the trusted profile's data is
returned (`name`, `description`, `iam_id`, etc.), not the federated users or
compute resources that qualify to apply the trusted profile.

:param str profile_id: ID of the trusted profile to get.
:param bool include_activity: (optional) Defines if the entity's activity
       is included in the response. Retrieving activity data is an expensive
       operation, so only request this when needed.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfile` object
profile_id must be providedr2   get_profiler4   ra   r7   r8   r9   
profile-id/v1/profiles/{profile-id}r;   r<   rg   rh   )r$   r   ra   rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                r   r   IamIdentityV1.get_profile%  s    . :;;%22 &

 	{#  0
 NN6::i01y!.'. 11*=s?FG)00C?C&&	 ' 
 99W//r   r)   rK   r   c                \   U(       d  [        S5      eU(       d  [        S5      eSU0n[        U R                  SSS9nUR                  U5        UUUS.n	U	R	                  5        V
Vs0 s H  u  pUc  M
  X_M     n	n
n[
        R                  " U	5      n	SUS	'   S
U;   a#  UR                  UR                  S
5      5        US
	 SUS'   S/nU R                  U5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUU	S9nU R                  " U40 UD6nU$ s  snn
f )a  
Update a trusted profile.

Update the name or description of an existing trusted profile.

:param str profile_id: ID of the trusted profile to be updated.
:param str if_match: Version of the trusted profile to be updated. Specify
       the version that you retrived when reading list of trusted profiles. This
       value helps to identify any parallel usage of trusted profile. Pass * to
       indicate to update any version available. This might result in stale
       updates.
:param str name: (optional) The name of the trusted profile to update. If
       specified in the request the parameter must not be empty. The name is
       checked for uniqueness. Failure to this will result in an Error condition.
:param str description: (optional) The description of the trusted profile
       to update. If specified an empty description will clear the description of
       the trusted profile. If a non empty value is provided the trusted profile
       will be updated.
:param str email: (optional) The email of the profile to update. If
       specified an empty email will clear the email of the profile. If an non
       empty value is provided the trusted profile will be updated.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfile` object
r   rs   rt   r2   update_profiler4   r   r8   rU   r7   r9   r   r   rv   r   rg   rw   )r$   r   rq   r)   rK   r   rF   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                     r   r   IamIdentityV1.update_profile]  sP   H :;;899
 &22 )

 	{# &

 $(::<A<!1<Azz$"4NN6::i01y!.'. 11*=s?FG)00C?C&&	 ' 
 99W//+ Bs   (	D(5D(c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )a  
Delete a trusted profile.

Delete a trusted profile. When you delete trusted profile, compute resources and
federated users are unlinked from the profile and can no longer apply the trusted
profile identity.

:param str profile_id: ID of the trusted profile.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r   r2   delete_profiler4   r7   r   r   r{   r|   rg   rh   r$   r   rF   r7   rG   rm   rn   ro   r>   rH   rI   s              r   r   IamIdentityV1.delete_profile  s    $ :;;%22 )

 	{#NN6::i01y!'. 11*=s?FG)00C?C&& ' 
 99W//r   )contextr)   
realm_namecr_type
expiration
conditionsProfileClaimRuleConditionsr   ResponseContextr   r   r   c                   U(       d  [        S5      eUc  [        S5      eUc  [        S5      eU V
s/ s H  n
[        U
5      PM     nn
Ub  [        U5      n0 n[        U R                  SSS9nUR	                  U5        UUUUUUUS.nUR                  5        VVs0 s H  u  pUc  M
  X_M     nnn[        R                  " U5      nSUS	'   S
U	;   a#  UR	                  U	R                  S
5      5        U	S
	 SUS'   S/nU R                  U5      n[        [        UU5      5      nSR                  " S0 UD6nU R                  SUUUS9nU R                  " U40 U	D6nU$ s  sn
f s  snnf )a  
Create claim rule for a trusted profile.

Create a claim rule for a trusted profile. There is a limit of 20 rules per
trusted profile.

:param str profile_id: ID of the trusted profile to create a claim rule.
:param str type: Type of the claim rule, either 'Profile-SAML' or
       'Profile-CR'.
:param List[ProfileClaimRuleConditions] conditions: Conditions of this
       claim rule.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param str name: (optional) Name of the claim rule to be created or
       updated.
:param str realm_name: (optional) The realm name of the Idp this claim rule
       applies to. This field is required only if the type is specified as
       'Profile-SAML'.
:param str cr_type: (optional) The compute resource type the rule applies
       to, required only if type is specified as 'Profile-CR'. Valid values are
       VSI, IKS_SA, ROKS_SA.
:param int expiration: (optional) Session expiration in seconds, only
       required if type is 'Profile-SAML'.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileClaimRule` object
r   type must be providedconditions must be providedr2   create_claim_ruler4   r   r   r   r)   r   r   r   r8   rU   r7   r9   r   /v1/profiles/{profile-id}/rulesrV   r   rg   rY   r   r   rA   rB   rZ   r[   r\   rC   ri   rj   rk   rl   rD   rE   )r$   r   r   r   r   r)   r   r   r   rF   xr7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                         r   r   IamIdentityV1.create_claim_rule  s   R :;;<455:;;0:;
1mA&

;#G,G%22 ,

 	{# $$$
 $(::<A<!1<Azz$"4NN6::i01y!.'. 11*=s?4EFG/66II&&	 ' 
 99W//S <( Bs   E	E#*E#c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S/nU R                  U5      n[        [        XV5      5      nS	R                  " S0 UD6nU R                  S
UUS9n	U R                  " U	40 UD6n
U
$ )a  
List claim rules for a trusted profile.

Get a list of all claim rules for a trusted profile. The `profile-id` query
parameter determines the profile from which to retrieve the list of claim rules.

:param str profile_id: ID of the trusted profile.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileClaimRuleList` object
r   r2   list_claim_rulesr4   r7   r8   r9   r   r   r;   r|   rg   rh   r   s              r   r   IamIdentityV1.list_claim_rules2  s    " :;;%22 +

 	{#NN6::i01y!.'. 11*=s?FG/66II&& ' 
 99W//r   rule_idc                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	S
/nU R                  X5      n[        [        Xg5      5      nSR                  " S0 UD6n	U R                  SU	US9n
U R                  " U
40 UD6nU$ )a  
Get a claim rule for a trusted profile.

A specific claim rule can be fetched for a given trusted profile ID and rule ID.

:param str profile_id: ID of the trusted profile.
:param str rule_id: ID of the claim rule to get.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileClaimRule` object
r   rule_id must be providedr2   get_claim_ruler4   r7   r8   r9   r   rule-id)/v1/profiles/{profile-id}/rules/{rule-id}r;   r|   rg   rh   r$   r   r   rF   r7   rG   rm   rn   ro   r>   rH   rI   s               r   r   IamIdentityV1.get_claim_rule_  s    $ :;;788%22 )

 	{#NN6::i01y!.'3 11*Fs?FG9@@S?S&& ' 
 99W//r   c                $   U(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      eUc  [        S5      eUc  [        S5      eU Vs/ s H  n[        U5      PM     nnUb  [        U5      nSU0n[        U R                  SSS	9nUR	                  U5        UUUUUU	U
S
.nUR                  5        VVs0 s H  u  nnUc  M  UU_M     nnn[        R                  " U5      nSUS'   SU;   a#  UR	                  UR                  S5      5        US	 SUS'   SS/nU R                  X5      n[        [        UU5      5      nSR                  " S0 UD6nU R                  SUUUS9nU R                  " U40 UD6nU$ s  snf s  snnf )a6  
Update claim rule for a trusted profile.

Update a specific claim rule for a given trusted profile ID and rule ID.

:param str profile_id: ID of the trusted profile.
:param str rule_id: ID of the claim rule to update.
:param str if_match: Version of the claim rule to be updated. Specify the
       version that you retrived when reading list of claim rules. This value
       helps to identify any parallel usage of claim rule. Pass * to indicate to
       update any version available. This might result in stale updates.
:param str type: Type of the claim rule, either 'Profile-SAML' or
       'Profile-CR'.
:param List[ProfileClaimRuleConditions] conditions: Conditions of this
       claim rule.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param str name: (optional) Name of the claim rule to be created or
       updated.
:param str realm_name: (optional) The realm name of the Idp this claim rule
       applies to. This field is required only if the type is specified as
       'Profile-SAML'.
:param str cr_type: (optional) The compute resource type the rule applies
       to, required only if type is specified as 'Profile-CR'. Valid values are
       VSI, IKS_SA, ROKS_SA.
:param int expiration: (optional) Session expiration in seconds, only
       required if type is 'Profile-SAML'.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileClaimRule` object
r   r   rs   r   r   rt   r2   update_claim_ruler4   r   r8   rU   r7   r9   r   r   r   rv   r   rg   r   )r$   r   r   rq   r   r   r   r)   r   r   r   rF   r   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                           r   r   IamIdentityV1.update_claim_rule  s   ^ :;;788899<455:;;0:;
1mA&

;#G,G
 &22 ,

 	{# $$$
 $(::<A<!Q11<Azz$"4NN6::i01y!.'3 11*Fs?4EFG9@@S?S&&	 ' 
 99W//W <, Bs   F
FFc                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SS/nU R                  X5      n[        [        Xg5      5      nS	R                  " S0 UD6n	U R                  S
U	US9n
U R                  " U
40 UD6nU$ )a  
Delete a claim rule.

Delete a claim rule. When you delete a claim rule, federated user or compute
resources are no longer required to meet the conditions of the claim rule in order
to apply the trusted profile.

:param str profile_id: ID of the trusted profile.
:param str rule_id: ID of the claim rule to delete.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r   r   r2   delete_claim_ruler4   r7   r   r   r   r{   r|   rg   rh   r   s               r   r   IamIdentityV1.delete_claim_rule  s    ( :;;788%22 ,

 	{#NN6::i01y!'3 11*Fs?FG9@@S?S&& ' 
 99W//r   r)   linkCreateProfileLinkRequestLinkc                   U(       d  [        S5      eUc  [        S5      eUc  [        S5      e[        U5      n0 n[        U R                  SSS9nUR	                  U5        UUUS.nUR                  5        V	V
s0 s H  u  pU
c  M
  X_M     nn	n
[        R                  " U5      nSUS	'   S
U;   a#  UR	                  UR                  S
5      5        US
	 SUS'   S/nU R                  U5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUUS9nU R                  " U40 UD6nU$ s  sn
n	f )a  
Create link to a trusted profile.

Create a direct link between a specific compute resource and a trusted profile,
rather than creating conditions that a compute resource must fulfill to apply a
trusted profile.

:param str profile_id: ID of the trusted profile.
:param str cr_type: The compute resource type. Valid values are VSI,
       IKS_SA, ROKS_SA.
:param CreateProfileLinkRequestLink link: Link details.
:param str name: (optional) Optional name of the Link.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileLink` object
r   zcr_type must be providedzlink must be providedr2   create_linkr4   )r   r  r)   r8   rU   r7   r9   r   /v1/profiles/{profile-id}/linksrV   r   rg   r   )r$   r   r   r  r)   rF   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                    r   r  IamIdentityV1.create_link&  sc   4 :;;?788<455T"%22 &

 	{# 

 $(::<A<!1<Azz$"4NN6::i01y!.'. 11*=s?FG/66II&&	 ' 
 99W//+ Bs   ;	D;D;c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S/nU R                  U5      n[        [        XV5      5      nS	R                  " S0 UD6nU R                  S
UUS9n	U R                  " U	40 UD6n
U
$ )ad  
List links to a trusted profile.

Get a list of links to a trusted profile.

:param str profile_id: ID of the trusted profile.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileLinkList` object
r   r2   
list_linksr4   r7   r8   r9   r   r  r;   r|   rg   rh   r   s              r   r  IamIdentityV1.list_linksk  s      :;;%22 %

 	{#NN6::i01y!.'. 11*=s?FG/66II&& ' 
 99W//r   crn	namespacer)   component_typecomponent_namer  r  r  r  c                   U(       d  [        S5      eU(       d  [        S5      e0 n	[        U R                  SSS9n
U	R                  U
5        UUUUUUS.nSU;   a#  U	R                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        X5      5      nS	R                  " S0 UD6nU R                  S
UU	US9nU R                  " U40 UD6nU$ )a  
Delete compute resource link to profile by given parameters.

Deletes compute resource link of a Trusted Profile matching the given parameters.

:param str profile_id: The unique ID of the Trusted Profile.
:param str type: The compute resource type. Valid values are VSI, BMS,
       IKS_SA, ROKS_SA, CE.
:param str crn: (optional) CRN of the compute resource (IKS/ROKS/VSI/BMS).
:param str namespace: (optional) Namespace of the compute resource
       (IKS/ROKS).
:param str name: (optional) Name of the compute resource (IKS/ROKS).
:param str component_type: (optional) Component type of the compute
       resource, only required if type is CE.
:param str component_name: (optional) Component name of the compute
       resource, only required if type is CE.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r   r   r2   delete_link_by_parametersr4   )r   r  r  r)   r  r  r7   r   r  r{   r<   rg   rh   )r$   r   r   r  r  r)   r  r  rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                     r   r  'IamIdentityV1.delete_link_by_parameters  s   B :;;455%22 4

 	{# ",,
 NN6::i01y!'. 11*=s?FG/66II&&	 ' 
 99W//r   link_idc                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	S
/nU R                  X5      n[        [        Xg5      5      nSR                  " S0 UD6n	U R                  SU	US9n
U R                  " U
40 UD6nU$ )a  
Get link to a trusted profile.

Get a specific link to a trusted profile by `link_id`.

:param str profile_id: ID of the trusted profile.
:param str link_id: ID of the link.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileLink` object
r   link_id must be providedr2   get_linkr4   r7   r8   r9   r   link-id)/v1/profiles/{profile-id}/links/{link-id}r;   r|   rg   rh   r$   r   r  rF   r7   rG   rm   rn   ro   r>   rH   rI   s               r   r  IamIdentityV1.get_link  s    $ :;;788%22 #

 	{#NN6::i01y!.'3 11*Fs?FG9@@S?S&& ' 
 99W//r   c                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SS/nU R                  X5      n[        [        Xg5      5      nS	R                  " S0 UD6n	U R                  S
U	US9n
U R                  " U
40 UD6nU$ )ad  
Delete link to a trusted profile.

Delete a link between a compute resource and a trusted profile.

:param str profile_id: ID of the trusted profile.
:param str link_id: ID of the link.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r   r  r2   delete_linkr4   r7   r   r  r  r{   r|   rg   rh   r  s               r   r  IamIdentityV1.delete_link	  s    $ :;;788%22 &

 	{#NN6::i01y!'3 11*Fs?FG9@@S?S&& ' 
 99W//r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S/nU R                  U5      n[        [        XV5      5      nS	R                  " S0 UD6nU R                  S
UUS9n	U R                  " U	40 UD6n
U
$ )a  
Get a list of identities that can assume the trusted profile.

Get a list of identities that can assume the trusted profile.

:param str profile_id: ID of the trusted profile.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileIdentitiesResponse` object
r   r2   get_profile_identitiesr4   r7   r8   r9   r   $/v1/profiles/{profile-id}/identitiesr;   r|   rg   rh   r   s              r   r  $IamIdentityV1.get_profile_identities>	  s      :;;%22 1

 	{#NN6::i01y!.'. 11*=s?FG4;;NoN&& ' 
 99W//r   
identitiesr"  ProfileIdentityRequestc                   U(       d  [        S5      eU(       d  [        S5      eUb  U Vs/ s H  n[        U5      PM     nnSU0n[        U R                  SSS9nUR	                  U5        SU0nUR                  5        V	V
s0 s H  u  pU
c  M
  X_M     nn	n
[        R                  " U5      nSUS	'   S
U;   a#  UR	                  UR                  S
5      5        US
	 SUS'   S/nU R                  U5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUUS9nU R                  " U40 UD6nU$ s  snf s  sn
n	f )aM  
Update the list of identities that can assume the trusted profile.

Update the list of identities that can assume the trusted profile.

:param str profile_id: ID of the trusted profile.
:param str if_match: Entity tag of the Identities to be updated. Specify
       the tag that you retrieved when reading the Profile Identities. This value
       helps identify parallel usage of this API. Pass * to indicate updating any
       available version, which may result in stale updates.
:param List[ProfileIdentityRequest] identities: (optional) List of
       identities that can assume the trusted profile.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileIdentitiesResponse` object
r   rs   rt   r2   set_profile_identitiesr4   r"  r8   rU   r7   r9   r   r  rv   r   rg   r   )r$   r   rq   r"  rF   r   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                    r   r%  $IamIdentityV1.set_profile_identitiesj	  sq   2 :;;899!4>?Jq-*JJ?
 &22 1

 	{# *
 $(::<A<!1<Azz$"4NN6::i01y!.'. 11*=s?FG4;;NoN&&	 ' 
 99W//G @ Bs   E	E	E	accountsrK   identity_type
identifierr(  c                   U(       d  [        S5      eU(       d  [        S5      eUc  [        S5      eUc  [        S5      e0 n[        U R                  SSS9n	UR                  U	5        UUUUS.n
U
R	                  5        VVs0 s H  u  pUc  M
  X_M     n
nn[
        R                  " U
5      n
S	US
'   SU;   a#  UR                  UR                  S5      5        US	 S	US'   SS/nU R                  X5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUU
S9nU R                  " U40 UD6nU$ s  snnf )aG  
Add a specific identity that can assume the trusted profile.

Add a specific identity that can assume the trusted profile.
**Note:** This API will update the trusted profile itself,  thus calling it
repeatedly for the same profile can lead to  conflicts responded with HTTP code
409. Make sure to call this  API only once in a few seconds for the same trusted
profile.

:param str profile_id: ID of the trusted profile.
:param str identity_type: Type of the identity.
:param str identifier: Identifier of the identity that can assume the
       trusted profiles. This can be a user identifier (IAM id), serviceid or crn.
       Internally it uses account id of the service id for the identifier
       'serviceid' and for the identifier 'crn' it uses account id contained in
       the CRN.
:param str type: Type of the identity.
:param List[str] accounts: (optional) Only valid for the type user.
       Accounts from which a user can assume the trusted profile.
:param str description: (optional) Description of the identity that can
       assume the trusted profile. This is optional field for all the types of
       identities. When this field is not set for the identity type 'serviceid'
       then the description of the service id is used. Description is recommended
       for the identity type 'crn' E.g. 'Instance 1234 of IBM Cloud Service
       project'.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileIdentityResponse` object
r   identity_type must be providedzidentifier must be providedr   r2   set_profile_identityr4   r*  r   r(  rK   r8   rU   r7   r9   r   identity-typez4/v1/profiles/{profile-id}/identities/{identity-type}rV   r   rg   rw   )r$   r   r)  r*  r   r(  rK   rF   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                      r   r-  "IamIdentityV1.set_profile_identity	  sp   R :;;=>>:;;<455%22 /

 	{# % &	
 $(::<A<!1<Azz$"4NN6::i01y!.'9 11*Ls?FGDKK^o^&&	 ' 
 99W//+ Bs   	EEidentifier_idc                    U(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS	'   / S
QnU R                  XU5      n[        [        Xx5      5      n	SR                  " S0 U	D6n
U R                  SU
US9nU R                  " U40 UD6nU$ )a  
Get the identity that can assume the trusted profile.

Get the identity that can assume the trusted profile.

:param str profile_id: ID of the trusted profile.
:param str identity_type: Type of the identity.
:param str identifier_id: Identifier of the identity that can assume the
       trusted profiles.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ProfileIdentityResponse` object
r   r,  identifier_id must be providedr2   get_profile_identityr4   r7   r8   r9   r   r/  zidentifier-idD/v1/profiles/{profile-id}/identities/{identity-type}/{identifier-id}r;   r|   rg   rh   r$   r   r)  r1  rF   r7   rG   rm   rn   ro   r>   rH   rI   s                r   r4  "IamIdentityV1.get_profile_identity
  s    * :;;=>>=>>%22 /

 	{#NN6::i01y!.J 11*][s?FGT[[n^mn&& ' 
 99W//r   c                    U(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 / SQnU R                  XU5      n[        [        Xx5      5      n	S	R                  " S0 U	D6n
U R                  S
U
US9nU R                  " U40 UD6nU$ )a  
Delete the identity that can assume the trusted profile.

Delete the identity that can assume the trusted profile.
**Note:** This API will update the trusted profile itself,  thus calling it
repeatedly for the same profile can lead to  conflicts responded with HTTP code
409. Make sure to call this  API only once in a few seconds for the same trusted
profile.

:param str profile_id: ID of the trusted profile.
:param str identity_type: Type of the identity.
:param str identifier_id: Identifier of the identity that can assume the
       trusted profiles.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r   r,  r3  r2   delete_profile_identityr4   r7   r5  r6  r{   r|   rg   rh   r7  s                r   r:  %IamIdentityV1.delete_profile_identity8
  s    2 :;;=>>=>>%22 2

 	{#NN6::i01y!J 11*][s?FGT[[n^mn&& ' 
 99W//r   r   durationr=  c                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        UUS.nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n	[        [        X5      5      n
S
R                  " S0 U
D6nU R                  SUUUS9nU R                  " U40 UD6nU$ )a  
Trigger activity report for the account.

Trigger activity report for the account by specifying the account ID. It can take
a few minutes to generate the report for retrieval.

:param str account_id: ID of the account.
:param str type: (optional) Optional report type. The supported value is
       'inactive'. List all identities that have not authenticated within the time
       indicated by duration.
:param str duration: (optional) Optional duration of the report. The
       supported unit of duration is hours.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ReportReference` object
rQ   r2   create_reportr4   r<  r7   r8   r9   r'   z)/v1/activity/accounts/{account_id}/reportrV   r<   rg   rh   )r$   r'   r   r=  rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                 r   r?  IamIdentityV1.create_reportt
  s    2 :;;%22 (

 	{#  

 NN6::i01y!.'. 11*=s?FG9@@S?S&&	 ' 
 99W//r   	referencec                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	S
/nU R                  X5      n[        [        Xg5      5      nSR                  " S0 UD6n	U R                  SU	US9n
U R                  " U
40 UD6nU$ )a{  
Get activity report for the account.

Get activity report for the account by specifying the account ID and the reference
that is generated by triggering the report. Reports older than a day are deleted
when generating a new report.

:param str account_id: ID of the account.
:param str reference: Reference for the report to be generated, You can use
       'latest' to get the latest report for the given account.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `Report` object
rQ   reference must be providedr2   
get_reportr4   r7   r8   r9   r'   rA  z5/v1/activity/accounts/{account_id}/report/{reference}r;   r|   rg   rh   r$   r'   rA  rF   r7   rG   rm   rn   ro   r>   rH   rI   s               r   rD  IamIdentityV1.get_report
  s    * :;;9::%22 %

 	{#NN6::i01y!.'5 11*Hs?FGELL__&& ' 
 99W//r   r.   resolve_user_mfarH  c                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        UUS.nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n	[        [        X5      5      n
S
R                  " S0 U
D6nU R                  SUUUS9nU R                  " U40 UD6nU$ )a-  
Get account configurations.

Returns the details of an account's configuration.

:param str account_id: Unique ID of the account.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param bool resolve_user_mfa: (optional) Enrich MFA exemptions with user
       PI.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `AccountSettingsResponse` object
rQ   r2   get_account_settingsr4   rG  r7   r8   r9   r'   +/v1/accounts/{account_id}/settings/identityr;   r<   rg   rh   r$   r'   r.   rH  rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                 r   rJ  "IamIdentityV1.get_account_settings
  s    . :;;%22 /

 	{#  / 0

 NN6::i01y!.'. 11*=s?FG;BBU_U&&	 ' 
 99W//r   restrict_create_service_idrestrict_create_platform_apikeyallowed_ip_addressesmfauser_mfasession_expiration_in_secondssession_invalidation_in_secondsmax_sessions_per_identity)system_access_token_expiration_in_seconds*system_refresh_token_expiration_in_secondsrestrict_user_list_visibilityrestrict_user_domainsrO  rP  rQ  rR  rS  UserMfarT  rU  rV  rW  rX  rY  rZ  $AccountSettingsUserDomainRestrictionc                    U(       d  [        S5      eU(       d  [        S5      eUb  U Vs/ s H  n[        U5      PM     nnUb  U Vs/ s H  n[        U5      PM     nnSU0n[        U R                  SSS9nUR	                  U5        UUUUUUU	U
UUUUS.nUR                  5        VVs0 s H  u  nnUc  M  UU_M     nnn[        R                  " U5      nSUS	'   S
U;   a#  UR	                  UR                  S
5      5        US
	 SUS'   S/nU R                  U5      n[        [        UU5      5      nSR                  " S0 UD6nU R                  SUUUS9nU R                  " U40 UD6nU$ s  snf s  snf s  snnf )a  
Update account configurations.

Allows a user to configure settings on their account with regards to MFA, MFA
excemption list, session lifetimes, access control for creating new identities,
and enforcing IP restrictions on token creation.

:param str if_match: Version of the account settings to be updated. Specify
       the version that you retrieved as entity_tag (ETag header) when reading the
       account. This value helps identifying parallel usage of this API. Pass * to
       indicate to update any version available. This might result in stale
       updates.
:param str account_id: The id of the account to update the settings for.
:param str restrict_create_service_id: (optional) Defines whether or not
       creating the resource is access controlled. Valid values:
         * RESTRICTED - only users assigned the 'Service ID creator' role on the
       IAM Identity Service can create service IDs, including the account owner
         * NOT_RESTRICTED - all members of an account can create service IDs
         * NOT_SET - to 'unset' a previous set value.
:param str restrict_create_platform_apikey: (optional) Defines whether or
       not creating the resource is access controlled. Valid values:
         * RESTRICTED - only users assigned the 'Service ID creator' role on the
       IAM Identity Service can create service IDs, including the account owner
         * NOT_RESTRICTED - all members of an account can create service IDs
         * NOT_SET - to 'unset' a previous set value.
:param str allowed_ip_addresses: (optional) Defines the IP addresses and
       subnets from which IAM tokens can be created for the account.
:param str mfa: (optional) MFA trait definitions as follows:
         * NONE - No MFA trait set
         * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
         * TOTP - For all non-federated IBMId users
         * TOTP4ALL - For all users
         * LEVEL1 - Email-based MFA for all users
         * LEVEL2 - TOTP-based MFA for all users
         * LEVEL3 - U2F MFA for all users.
:param List[UserMfa] user_mfa: (optional) List of users that are exempted
       from the MFA requirement of the account.
:param str session_expiration_in_seconds: (optional) Defines the session
       expiration in seconds for the account. Valid values:
         * Any whole number between between '900' and '86400'
         * NOT_SET - To unset account setting and use service default.
:param str session_invalidation_in_seconds: (optional) Defines the period
       of time in seconds in which a session will be invalidated due to
       inactivity. Valid values:
         * Any whole number between '900' and '7200'
         * NOT_SET - To unset account setting and use service default.
:param str max_sessions_per_identity: (optional) Defines the max allowed
       sessions per identity required by the account. Valid values:
         * Any whole number greater than 0
         * NOT_SET - To unset account setting and use service default.
:param str system_access_token_expiration_in_seconds: (optional) Defines
       the access token expiration in seconds. Valid values:
         * Any whole number between '900' and '3600'
         * NOT_SET - To unset account setting and use service default.
:param str system_refresh_token_expiration_in_seconds: (optional) Defines
       the refresh token expiration in seconds. Valid values:
         * Any whole number between '900' and '259200'
         * NOT_SET - To unset account setting and use service default.
:param str restrict_user_list_visibility: (optional) Defines whether or not
       user visibility is access controlled. Valid values:
         * RESTRICTED - users can view only specific types of users in the
       account, such as those the user has invited to the account, or descendants
       of those users based on the classic infrastructure hierarchy
         * NOT_RESTRICTED - any user in the account can view other users from the
       Users page in IBM Cloud console.
:param List[AccountSettingsUserDomainRestriction] restrict_user_domains:
       (optional) Defines if account invitations are restricted to specified
       domains. To remove an entry for a realm_id, perform an update (PUT) request
       with only the realm_id set.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `AccountSettingsResponse` object
rs   rQ   rt   r2   update_account_settingsr4   rN  r8   rU   r7   r9   r'   rK  rv   r   rg   r   )r$   rq   r'   rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  rF   r   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                               r   r^  %IamIdentityV1.update_account_settings  s   z 899:;;2:;(Qa((H; ,?T$U?T!]1%5?T!$U
 &22 2

 	{# +E/N$8 -J/N)B9b:d-J%:
 $(::<A<!Q11<Azz$"4NN6::i01y!.'. 11*=s?4EFG;BBU_U&&	 ' 
 99W//a <$U2 Bs   E0
E5-
E:;E:c                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        UUS.nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n	[        [        X5      5      n
S
R                  " S0 U
D6nU R                  SUUUS9nU R                  " U40 UD6nU$ )aW  
Get effective account settings configuration.

Returns effective account settings for given account ID.

:param str account_id: Unique ID of the account.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param bool resolve_user_mfa: (optional) Enrich MFA exemptions with user
       information.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `EffectiveAccountSettingsResponse` object
rQ   r2   get_effective_account_settingsr4   rG  r7   r8   r9   r'   z5/v1/accounts/{account_id}/effective_settings/identityr;   r<   rg   rh   rL  s                 r   ra  ,IamIdentityV1.get_effective_account_settings  s    . :;;%22 9

 	{#  / 0

 NN6::i01y!.'. 11*=s?FGELL__&&	 ' 
 99W//r   c                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR	                  S5      5        US	 SUS	'   S
/nU R                  U5      n[        [        Xx5      5      n	SR                  " S0 U	D6n
U R                  SU
UUS9nU R                  " U40 UD6nU$ )a  
Get MFA enrollment status for a single user in the account.

Get MFA enrollment status for a single user in the account.

:param str account_id: ID of the account.
:param str iam_id: iam_id of the user. This user must be the member of the
       account.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `UserMfaEnrollments` object
rQ   r   r2   get_mfa_statusr4   r   r7   r8   r9   r'   z$/v1/mfa/accounts/{account_id}/statusr;   r<   rg   rh   )r$   r'   r   rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                r   rd  IamIdentityV1.get_mfa_status  s   & :;;677%22 )

 	{# f
 NN6::i01y!.'. 11*=s?FG4;;NoN&&	 ' 
 99W//r   )r   c                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n[        [        Xx5      5      n	S
R                  " S0 U	D6n
U R                  SU
UUS9nU R                  " U40 UD6nU$ )ak  
Trigger MFA enrollment status report for the account.

Trigger MFA enrollment status report for the account by specifying the account ID.
It can take a few minutes to generate the report for retrieval.

:param str account_id: ID of the account.
:param str type: (optional) Optional report type. The supported value is
       'mfa_status'. List MFA enrollment status for all the identities.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ReportReference` object
rQ   r2   create_mfa_reportr4   r   r7   r8   r9   r'   z$/v1/mfa/accounts/{account_id}/reportrV   r<   rg   rh   )r$   r'   r   rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                r   rg  IamIdentityV1.create_mfa_report&  s    * :;;%22 ,

 	{# D
 NN6::i01y!.'. 11*=s?FG4;;NoN&&	 ' 
 99W//r   c                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	S
/nU R                  X5      n[        [        Xg5      5      nSR                  " S0 UD6n	U R                  SU	US9n
U R                  " U
40 UD6nU$ )a  
Get MFA enrollment status report for the account.

Get MFA enrollment status report for the account by specifying the account ID and
the reference that is generated by triggering the report. Reports older than a day
are deleted when generating a new report.

:param str account_id: ID of the account.
:param str reference: Reference for the report to be generated, You can use
       'latest' to get the latest report for the given account.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ReportMfaEnrollmentStatus` object
rQ   rC  r2   get_mfa_reportr4   r7   r8   r9   r'   rA  z0/v1/mfa/accounts/{account_id}/report/{reference}r;   r|   rg   rh   rE  s               r   rj  IamIdentityV1.get_mfa_report\  s    * :;;9::%22 )

 	{#NN6::i01y!.'5 11*Hs?FG@GGZ/Z&& ' 
 99W//r   )value_list_of_stringsr   preference_idvalue_stringrl  c                   U(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      eUc  [        S5      e0 n[        U R                  SSS9n	UR                  U	5        UUS	.n
U
R	                  5        VVs0 s H  u  pUc  M
  X_M     n
nn[
        R                  " U
5      n
S
US'   SU;   a#  UR                  UR                  S5      5        US	 S
US'   / SQnU R                  XX45      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUU
S9nU R                  " U40 UD6nU$ s  snnf )a 
  
Update Identity Preference on scope account.

Update one Identity Preference on scope `account`.
The following preferences are storing values for identities inside an account,
i.e. for each account that an identity is member of, the value stored might be
different. This means, **users** who might be member of multiple accounts can have
multiple preferences, one per account.  Identities like **Service Ids** or
**Trusted Profiles** can only exist in one account,  therefore they can only have
one preference inside their related account.
### Preferences
- **console/landing_page**
  service: `console`
  preference_id: `landing_page`
  supported identity types: `Trusted Profile`
  type: `string`
  validation: valid path for the IBM Cloud Console (without host part), e.g.
`/billing` or `/iam`
- **console/global_left_navigation**
  service: `console`
  preference_id: `global_left_navigation`
  supported identity types: `Trusted Profile`
  type: `list of strings`
  validation: each entry in the list of strings must match the identifier of one
navigation entry in the console;
  these identifiers are defined and interpreted by the IBM Cloud Console;
currently the following entries are supported:
`slash,projects,rex,containers,databases,is,logmet,automation,complianceAndSecurity,apis,cp4d,partner-center,sap,satellite,vmWare,watsonx`
### Authorization
To call this method for the identity type `Trusted Profile`, you must be assigned
one or more IAM access roles that include the following action on the target
resource `account` and resource type `preferences`:
- iam-identity.preferences.update
By default, the `Administrator` role on service `iam-identity` contains this
action.

:param str account_id: Account id to update preference for.
:param str iam_id: IAM id to update the preference for.
:param str service: Service of the preference to be updated.
:param str preference_id: Identifier of preference to be updated.
:param str value_string: contains a string value of the preference. only
       one value property is set, either 'value_string' or 'value_list_of_strings'
       is present.
:param List[str] value_list_of_strings: (optional) contains a list of
       string values of the preference. only one value property is set, either
       'value_string' or 'value_list_of_strings' is present.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `IdentityPreferenceResponse` object
rQ   r   service must be providedpreference_id must be providedzvalue_string must be providedr2   "update_preference_on_scope_accountr4   )rn  rl  r8   rU   r7   r9   r'   r   r   rm  S/v1/preferences/accounts/{account_id}/identities/{iam_id}/{service}/{preference_id}rv   r   rg   rw   )r$   r'   r   r   rm  rn  rl  rF   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                      r   rr  0IamIdentityV1.update_preference_on_scope_account  s{   | :;;677788=>><==%22 =

 	{# )%:
 $(::<A<!1<Azz$"4NN6::i01y!.N 11*g]s?FGcjj 

 &&	 ' 
 99W/// Bs   	E$Ec                    U(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 / S	QnU R                  XX45      n	[        [        X5      5      n
S
R                  " S0 U
D6nU R                  SUUS9nU R                  " U40 UD6nU$ )a  
Delete Identity Preference on scope account.

Delete one Identity Preference on scope `account`. For details about the
preferences supported  and how the method request is authorized, refer to the
description of operation
`Update Identity Preference on scope account`.

:param str account_id: Account id to delete preference for.
:param str iam_id: IAM id to delete the preference for.
:param str service: Service of the preference to be deleted.
:param str preference_id: Identifier of preference to be deleted.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
rQ   r   rp  rq  r2   #delete_preferences_on_scope_accountr4   r7   rs  rt  r{   r|   rg   rh   r$   r'   r   r   rm  rF   r7   rG   rm   rn   ro   r>   rH   rI   s                 r   rw  1IamIdentityV1.delete_preferences_on_scope_account   s
   2 :;;677788=>>%22 >

 	{#NN6::i01y!N 11*g]s?FGcjj 

 && ' 
 99W//r   c                    U(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S	US
'   / SQnU R                  XX45      n	[        [        X5      5      n
SR                  " S0 U
D6nU R                  SUUS9nU R                  " U40 UD6nU$ )a  
Get Identity Preference on scope account.

Get one Identity Preference on scope `account`. For details about the preferences
supported,  refer to the description of operation `Update Identity Preference on
scope account`.
### Authorization
To call this method for the identity type `Trusted Profile`, one of the following
conditions must be true:
- the Authorization token represents the trusted profile which is addressed by
this request
- you must be assigned one or more IAM access roles that include the following
action on the target resource `account` and resource type `preferences`:
  - iam-identity.preferences.update
  By default, the `Administrator` role on service `iam-identity` contains this
action.
- Services inside the IBM Cloud Console can call this method.

:param str account_id: Account id to get preference for.
:param str iam_id: IAM id to get the preference for.
:param str service: Service of the preference to be fetched.
:param str preference_id: Identifier of preference to be fetched.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `IdentityPreferenceResponse` object
rQ   r   rp  rq  r2    get_preferences_on_scope_accountr4   r7   r8   r9   rs  rt  r;   r|   rg   rh   rx  s                 r   r{  .IamIdentityV1.get_preferences_on_scope_account<  s   F :;;677788=>>%22 ;

 	{#NN6::i01y!.N 11*g]s?FGcjj 

 && ' 
 99W//r   c                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	S
/nU R                  X5      n[        [        Xg5      5      nSR                  " S0 UD6n	U R                  SU	US9n
U R                  " U
40 UD6nU$ )a  
Get all Identity Preferences on scope account.

Get all Identity Preferences for one account / identity combination. For details
about the preferences  supported and how the method request is authorized, refer
to the description of operation
`Get Identity Preference on scope account`.
If you are not allowed to read a preference, the call will not fail. Instead, this
preference is/ these preferences are not returned in the list call.

:param str account_id: Account id to get preferences for.
:param str iam_id: IAM id to get the preferences for.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `IdentityPreferencesResponse` object
rQ   r   r2   $get_all_preferences_on_scope_accountr4   r7   r8   r9   r'   r   z9/v1/preferences/accounts/{account_id}/identities/{iam_id}r;   r|   rg   rh   )r$   r'   r   rF   r7   rG   rm   rn   ro   r>   rH   rI   s               r   r~  2IamIdentityV1.get_all_preferences_on_scope_account  s    . :;;677%22 ?

 	{#NN6::i01y!.'2 11*Es?FGIPPcSbc&& ' 
 99W//r   r'   limitr+   r,   r-   r.   r  c                   0 n[        U R                  SSS9n	UR                  U	5        UUUUUUS.n
SU;   a#  UR                  UR                  S5      5        US	 SUS'   SnU R	                  S	UUU
S
9nU R
                  " U40 UD6nU$ )a  
List trusted profile templates.

List the trusted profile templates in an enterprise account.

:param str account_id: (optional) Account ID of the trusted profile
       templates to query. This parameter is required unless using a pagetoken.
:param str limit: (optional) Optional size of a single page.
:param str pagetoken: (optional) Optional Prev or Next page token returned
       from a previous query execution. Default is start with first page.
:param str sort: (optional) Optional sort property. If specified, the
       returned templates are sorted according to this property.
:param str order: (optional) Optional sort order.
:param str include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfileTemplateList` object
r2   list_profile_templatesr4   r  r7   r8   r9   /v1/profile_templatesr;   r<   r@   r$   r'   r  r+   r,   r-   r.   rF   r7   rG   r?   r>   rH   rI   s                 r   r  $IamIdentityV1.list_profile_templates  s    > %22 1

 	{# %".
 NN6::i01y!.%&&	 ' 
 99W//r   r'   r)   rK   profilepolicy_template_referencesaction_controlsr  TemplateProfileComponentRequestr  PolicyTemplateReferencer  ActionControlsc                $   Ub  [        U5      nUb  U Vs/ s H  n[        U5      PM     nnUb  [        U5      n0 n	[        U R                  SSS9n
U	R                  U
5        UUUUUUS.nUR	                  5        VVs0 s H  u  pUc  M
  X_M     nnn[
        R                  " U5      nSU	S'   SU;   a#  U	R                  UR                  S5      5        US	 SU	S'   S	nU R                  S
UU	US9nU R                  " U40 UD6nU$ s  snf s  snnf )a  
Create a trusted profile template.

Create a new trusted profile template in an enterprise account.

:param str account_id: (optional) ID of the account where the template
       resides.
:param str name: (optional) The name of the trusted profile template. This
       is visible only in the enterprise account. Required field when creating a
       new template. Otherwise this field is optional. If the field is included it
       will change the name value for all existing versions of the template.
:param str description: (optional) The description of the trusted profile
       template. Describe the template for enterprise account users.
:param TemplateProfileComponentRequest profile: (optional) Input body
       parameters for the TemplateProfileComponent.
:param List[PolicyTemplateReference] policy_template_references: (optional)
       Existing policy templates that you can reference to assign access in the
       trusted profile component.
:param ActionControls action_controls: (optional)
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfileTemplateResponse` object
r2   create_profile_templater4   r  r8   rU   r7   r9   r  rV   r   
r   r   rA   rB   rZ   r[   r\   rC   rD   rE   )r$   r'   r)   rK   r  r  r  rF   r   r7   rG   rX   r]   r^   r>   rH   rI   s                    r   r  %IamIdentityV1.create_profile_template  sF   F #G,G%1D^)_D^q-*:D^&)_&+O<O%22 2

 	{# %&*D.
 $(::<A<!1<Azz$"4NN6::i01y!.%&&	 ' 
 99W//K *`& Bs   D?	DD)r.   template_idc                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n[        [        Xx5      5      n	S
R                  " S0 U	D6n
U R                  SU
UUS9nU R                  " U40 UD6nU$ )a  
Get latest version of a trusted profile template.

Get the latest version of a trusted profile template in an enterprise account.

:param str template_id: ID of the trusted profile template.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfileTemplateResponse` object
template_id must be providedr2   #get_latest_profile_template_versionr4   r.   r7   r8   r9   r  #/v1/profile_templates/{template_id}r;   r<   rg   rh   r$   r  r.   rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                r   r  1IamIdentityV1.get_latest_profile_template_versionI  s    ( ;<<%22 >

 	{# 
 NN6::i01y!.(/ 11+>s?FG3::M_M&&	 ' 
 99W//r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )a  
Delete all versions of a trusted profile template.

Delete all versions of a trusted profile template in an enterprise account. If any
version is assigned to child accounts, you must first delete the assignment.

:param str template_id: ID of the trusted profile template.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r  r2   'delete_all_versions_of_profile_templater4   r7   r  r  r{   r|   rg   rh   r$   r  rF   r7   rG   rm   rn   ro   r>   rH   rI   s              r   r  5IamIdentityV1.delete_all_versions_of_profile_template~  s    " ;<<%22 B

 	{#NN6::i01y!(/ 11+>s?FG3::M_M&& ' 
 99W//r   r  r+   r,   r-   r.   c                   U(       d  [        S5      e0 n[        U R                  SSS9n	UR                  U	5        UUUUUS.n
SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n[        [        X5      5      nS
R                  " S0 UD6nU R                  SUUU
S9nU R                  " U40 UD6nU$ )a  
List trusted profile template versions.

List the versions of a trusted profile template in an enterprise account.

:param str template_id: ID of the trusted profile template.
:param str limit: (optional) Optional size of a single page.
:param str pagetoken: (optional) Optional Prev or Next page token returned
       from a previous query execution. Default is start with first page.
:param str sort: (optional) Optional sort property. If specified, the
       returned templated are sorted according to this property.
:param str order: (optional) Optional sort order.
:param str include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfileTemplateList` object
r  r2   !list_versions_of_profile_templater4   r  r7   r8   r9   r  ,/v1/profile_templates/{template_id}/versionsr;   r<   rg   rh   r$   r  r  r+   r,   r-   r.   rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                    r   r  /IamIdentityV1.list_versions_of_profile_template  s    < ;<<%22 <

 	{# ".
 NN6::i01y!.(/ 11+>s?FG<CCVoV&&	 ' 
 99W//r   c                   U(       d  [        S5      eUb  [        U5      nUb  U V	s/ s H  n	[        U	5      PM     nn	Ub  [        U5      n0 n
[        U R                  SSS9nU
R	                  U5        UUUUUUS.nUR                  5        VVs0 s H  u  pUc  M
  X_M     nnn[        R                  " U5      nSU
S'   SU;   a#  U
R	                  UR                  S5      5        US	 SU
S	'   S
/nU R                  U5      n[        [        UU5      5      nSR                  " S0 UD6nU R                  SUU
US9nU R                  " U40 UD6nU$ s  sn	f s  snnf )a=  
Create new version of a trusted profile template.

Create a new version of a trusted profile template in an enterprise account.

:param str template_id: ID of the trusted profile template.
:param str account_id: (optional) ID of the account where the template
       resides.
:param str name: (optional) The name of the trusted profile template. This
       is visible only in the enterprise account. Required field when creating a
       new template. Otherwise this field is optional. If the field is included it
       will change the name value for all existing versions of the template.
:param str description: (optional) The description of the trusted profile
       template. Describe the template for enterprise account users.
:param TemplateProfileComponentRequest profile: (optional) Input body
       parameters for the TemplateProfileComponent.
:param List[PolicyTemplateReference] policy_template_references: (optional)
       Existing policy templates that you can reference to assign access in the
       trusted profile component.
:param ActionControls action_controls: (optional)
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfileTemplateResponse` object
r  r2   create_profile_template_versionr4   r  r8   rU   r7   r9   r  r  rV   r   rg   r   )r$   r  r'   r)   rK   r  r  r  rF   r   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                        r   r  -IamIdentityV1.create_profile_template_version  s   J ;<<#G,G%1D^)_D^q-*:D^&)_&+O<O%22 :

 	{# %&*D.
 $(::<A<!1<Azz$"4NN6::i01y!.(/ 11+>s?4EFG<CCVoV&&	 ' 
 99W//Q *`& Bs   E	EEversionc                   U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR	                  S5      5        US	 SUS	'   S
S/nU R                  X5      n	[        [        X5      5      n
SR                  " S0 U
D6nU R                  SUUUS9nU R                  " U40 UD6nU$ )aI  
Get version of trusted profile template.

Get a specific version of a trusted profile template in an enterprise account.

:param str template_id: ID of the trusted profile template.
:param str version: Version of the Profile Template.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfileTemplateResponse` object
r  version must be providedr2   get_profile_template_versionr4   r.   r7   r8   r9   r  r  6/v1/profile_templates/{template_id}/versions/{version}r;   r<   rg   rh   r$   r  r  r.   rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                 r   r  *IamIdentityV1.get_profile_template_versionA  s   , ;<<788%22 7

 	{# 
 NN6::i01y!.()4 11+Gs?FGFMM`P_`&&	 ' 
 99W//r   c                   U(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      eUb  [        U5      nUb  U Vs/ s H  n[        U5      PM     nnU	b  [        U	5      n	SU0n[        U R                  SSS9nUR	                  U5        UUUUUU	S.nUR                  5        VVs0 s H  u  nnUc  M  UU_M     nnn[        R                  " U5      nS	US
'   SU
;   a#  UR	                  U
R                  S5      5        U
S	 S	US'   SS/nU R                  X#5      n[        [        UU5      5      nSR                  " S0 UD6nU R                  SUUUS9nU R                  " U40 U
D6nU$ s  snf s  snnf )a  
Update version of trusted profile template.

Update a specific version of a trusted profile template in an enterprise account.

:param str if_match: Entity tag of the Template to be updated. Specify the
       tag that you retrieved when reading the Profile Template. This value helps
       identifying parallel usage of this API. Pass * to indicate to update any
       version available. This might result in stale updates.
:param str template_id: ID of the trusted profile template.
:param str version: Version of the Profile Template.
:param str account_id: (optional) ID of the account where the template
       resides.
:param str name: (optional) The name of the trusted profile template. This
       is visible only in the enterprise account. Required field when creating a
       new template. Otherwise this field is optional. If the field is included it
       will change the name value for all existing versions of the template.
:param str description: (optional) The description of the trusted profile
       template. Describe the template for enterprise account users.
:param TemplateProfileComponentRequest profile: (optional) Input body
       parameters for the TemplateProfileComponent.
:param List[PolicyTemplateReference] policy_template_references: (optional)
       Existing policy templates that you can reference to assign access in the
       trusted profile component.
:param ActionControls action_controls: (optional)
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TrustedProfileTemplateResponse` object
rs   r  r  rt   r2   update_profile_template_versionr4   r  r8   rU   r7   r9   r  r  r  rv   r   rg   r   )r$   rq   r  r  r'   r)   rK   r  r  r  rF   r   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                          r   r  -IamIdentityV1.update_profile_template_versionz  s   X 899;<<788#G,G%1D^)_D^q-*:D^&)_&+O<O
 &22 :

 	{# %&*D.
 $(::<A<!Q11<Azz$"4NN6::i01y!.()4 11+Gs?4EFGFMM`P_`&&	 ' 
 99W//U *`* Bs   E;7
F F c                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SS/nU R                  X5      n[        [        Xg5      5      nS	R                  " S0 UD6n	U R                  S
U	US9n
U R                  " U
40 UD6nU$ )a  
Delete version of trusted profile template.

Delete a specific version of a trusted profile template in an enterprise account.
If the version is assigned to child accounts, you must first delete the
assignment.

:param str template_id: ID of the trusted profile template.
:param str version: Version of the Profile Template.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r  r  r2   delete_profile_template_versionr4   r7   r  r  r  r{   r|   rg   rh   r$   r  r  rF   r7   rG   rm   rn   ro   r>   rH   rI   s               r   r  -IamIdentityV1.delete_profile_template_version  s    ( ;<<788%22 :

 	{#NN6::i01y!()4 11+Gs?FGFMM`P_`&& ' 
 99W//r   c                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SS/nU R                  X5      n[        [        Xg5      5      nS	R                  " S0 UD6n	U R                  S
U	US9n
U R                  " U
40 UD6nU$ )a  
Commit a template version.

Commit a specific version of a trusted profile template in an enterprise account.
You must commit a template before you can assign it to child accounts. Once a
template is committed, you can no longer modify the template.

:param str template_id: ID of the trusted profile template.
:param str version: Version of the Profile Template.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r  r  r2   commit_profile_templater4   r7   r  r  z=/v1/profile_templates/{template_id}/versions/{version}/commitrV   r|   rg   rh   r  s               r   r  %IamIdentityV1.commit_profile_template  s    ( ;<<788%22 2

 	{#NN6::i01y!()4 11+Gs?FGMTTgWfg&& ' 
 99W//r   
r'   r  template_versiontargettarget_typer  r+   r,   r-   r.   r  r  r  c       
            0 n[        U R                  SSS9nUR                  U5        UUUUUUUUU	U
S.
nSU;   a#  UR                  UR                  S5      5        US	 SUS'   SnU R	                  S	UUUS
9nU R
                  " U40 UD6nU$ )a  
List assignments.

List trusted profile template assignments.

:param str account_id: (optional) Account ID of the Assignments to query.
       This parameter is required unless using a pagetoken.
:param str template_id: (optional) Filter results by Template Id.
:param str template_version: (optional) Filter results Template Version.
:param str target: (optional) Filter results by the assignment target.
:param str target_type: (optional) Filter results by the assignment's
       target type.
:param int limit: (optional) Optional size of a single page. Default is 20
       items per page. Valid range is 1 to 100.
:param str pagetoken: (optional) Optional Prev or Next page token returned
       from a previous query execution. Default is start with first page.
:param str sort: (optional) If specified, the items are sorted by the value
       of this property.
:param str order: (optional) Sort order.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TemplateAssignmentListResponse` object
r2    list_trusted_profile_assignmentsr4   r  r7   r8   r9   /v1/profile_assignments/r;   r<   r@   r$   r'   r  r  r  r  r  r+   r,   r-   r.   rF   r7   rG   r?   r>   rH   rI   s                     r   r  .IamIdentityV1.list_trusted_profile_assignmentsA  s    R %22 ;

 	{# %& 0&".
 NN6::i01y!.(&&	 ' 
 99W//r   c                    Uc  [        S5      eUc  [        S5      eUc  [        S5      eUc  [        S5      e0 n[        U R                  SSS9nUR                  U5        UUUUS.nUR	                  5        V	V
s0 s H  u  pU
c  M
  X_M     nn	n
[
        R                  " U5      nS	US
'   SU;   a#  UR                  UR                  S5      5        US	 S	US'   SnU R                  SUUUS9nU R                  " U40 UD6nU$ s  sn
n	f )a  
Create assignment.

Create an assigment for a trusted profile template.

:param str template_id: ID of the template to assign.
:param int template_version: Version of the template to assign.
:param str target_type: Type of target to deploy to.
:param str target: Identifier of target to deploy to.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TemplateAssignmentResponse` object
r  !template_version must be providedtarget_type must be providedtarget must be providedr2   !create_trusted_profile_assignmentr4   r  r  r  r  r8   rU   r7   r9   r  rV   r   r   r$   r  r  r  r  rF   r7   rG   rX   r]   r^   r>   rH   rI   s                 r   r  /IamIdentityV1.create_trusted_profile_assignment  s=   , ;<<#@AA;<<>677%22 <

 	{# ' 0&	
 $(::<A<!1<Azz$"4NN6::i01y!.(&&	 ' 
 99W//% B   ;	DDassignment_idc                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n[        [        Xx5      5      n	S
R                  " S0 U	D6n
U R                  SU
UUS9nU R                  " U40 UD6nU$ )a  
Get assignment.

Get an assigment for a trusted profile template.

:param str assignment_id: ID of the Assignment Record.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TemplateAssignmentResponse` object
assignment_id must be providedr2   get_trusted_profile_assignmentr4   r.   r7   r8   r9   r  '/v1/profile_assignments/{assignment_id}r;   r<   rg   rh   r$   r  r.   rF   r7   rG   r?   rm   rn   ro   r>   rH   rI   s                r   r  ,IamIdentityV1.get_trusted_profile_assignment  s    ( =>>%22 9

 	{# 
 NN6::i01y!.*+ 11-@s?FG7>>QQ&&	 ' 
 99W//r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S/nU R                  U5      n[        [        XV5      5      nS	R                  " S0 UD6nU R                  S
UUS9n	U R                  " U	40 UD6n
U
$ )a  
Delete assignment.

Delete a trusted profile assignment. This removes any IAM resources created by
this assignment in child accounts.

:param str assignment_id: ID of the Assignment Record.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ExceptionResponse` object
r  r2   !delete_trusted_profile_assignmentr4   r7   r8   r9   r  r  r{   r|   rg   rh   r$   r  rF   r7   rG   rm   rn   ro   r>   rH   rI   s              r   r  /IamIdentityV1.delete_trusted_profile_assignment  s    " =>>%22 <

 	{#NN6::i01y!.*+ 11-@s?FG7>>QQ&& ' 
 99W//r   c                 t   U(       d  [        S5      eU(       d  [        S5      eUc  [        S5      eSU0n[        U R                  SSS9nUR                  U5        SU0nUR	                  5        VV	s0 s H  u  pU	c  M
  X_M     nnn	[
        R                  " U5      nS	US
'   SU;   a#  UR                  UR                  S5      5        US	 S	US'   S/n
U R                  U5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUUS9nU R                  " U40 UD6nU$ s  sn	nf )a  
Update assignment.

Update a trusted profile assignment. Call this method to retry failed assignments
or migrate the trusted profile in child accounts to a new version.

:param str assignment_id: ID of the Assignment Record.
:param str if_match: Version of the Assignment to be updated. Specify the
       version that you retrieved when reading the Assignment. This value  helps
       identifying parallel usage of this API. Pass * to indicate to update any
       version available. This might result in stale updates.
:param int template_version: Template version to be applied to the
       assignment. To retry all failed assignments, provide the existing version.
       To migrate to a different version, provide the new version number.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TemplateAssignmentResponse` object
r  rs   r  rt   r2   !update_trusted_profile_assignmentr4   r  r8   rU   r7   r9   r  r  PATCHr   rg   rw   r$   r  rq   r  rF   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                   r   r  /IamIdentityV1.update_trusted_profile_assignment1  s_   4 =>>899#@AA
 &22 <

 	{#  0
 $(::<A<!1<Azz$"4NN6::i01y!.*+ 11-@s?FG7>>QQ&&	 ' 
 99W//+ B   4	D4D4c                   0 n[        U R                  SSS9n	UR                  U	5        UUUUUUS.n
SU;   a#  UR                  UR                  S5      5        US	 SUS'   SnU R	                  S	UUU
S
9nU R
                  " U40 UD6nU$ )a  
List account settings templates.

List account settings templates in an enterprise account.

:param str account_id: (optional) Account ID of the account settings
       templates to query. This parameter is required unless using a pagetoken.
:param str limit: (optional) Optional size of a single page.
:param str pagetoken: (optional) Optional Prev or Next page token returned
       from a previous query execution. Default is start with first page.
:param str sort: (optional) Optional sort property. If specified, the
       returned templated are sorted according to this property.
:param str order: (optional) Optional sort order.
:param str include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `AccountSettingsTemplateList` object
r2   list_account_settings_templatesr4   r  r7   r8   r9   /v1/account_settings_templatesr;   r<   r@   r  s                 r   r  -IamIdentityV1.list_account_settings_templatesy  s    > %22 :

 	{# %".
 NN6::i01y!..&&	 ' 
 99W//r   r'   r)   rK   account_settingsr  TemplateAccountSettingsc                   Ub  [        U5      n0 n[        U R                  SSS9nUR                  U5        UUUUS.nUR	                  5        V	V
s0 s H  u  pU
c  M
  X_M     nn	n
[
        R                  " U5      nSUS'   SU;   a#  UR                  UR                  S5      5        US	 SUS'   S	nU R                  S
UUUS9nU R                  " U40 UD6nU$ s  sn
n	f )a@  
Create an account settings template.

Create a new account settings template in an enterprise account.

:param str account_id: (optional) ID of the account where the template
       resides.
:param str name: (optional) The name of the trusted profile template. This
       is visible only in the enterprise account.
:param str description: (optional) The description of the trusted profile
       template. Describe the template for enterprise account users.
:param TemplateAccountSettings account_settings: (optional) Input body
       parameters for the Account Settings REST request.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `AccountSettingsTemplateResponse` object
r2    create_account_settings_templater4   r  r8   rU   r7   r9   r  rV   r   r  )r$   r'   r)   rK   r  rF   r7   rG   rX   r]   r^   r>   rH   rI   s                 r   r  .IamIdentityV1.create_account_settings_template  s   6 ',-=>%22 ;

 	{# %& 0	
 $(::<A<!1<Azz$"4NN6::i01y!..&&	 ' 
 99W//% Bs   	CCc                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n[        [        Xx5      5      n	S
R                  " S0 U	D6n
U R                  SU
UUS9nU R                  " U40 UD6nU$ )a+  
Get latest version of an account settings template.

Get the latest version of a specific account settings template in an enterprise
account.

:param str template_id: ID of the account settings template.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `AccountSettingsTemplateResponse` object
r  r2   ,get_latest_account_settings_template_versionr4   r.   r7   r8   r9   r  ,/v1/account_settings_templates/{template_id}r;   r<   rg   rh   r  s                r   r  :IamIdentityV1.get_latest_account_settings_template_version  s    * ;<<%22 G

 	{# 
 NN6::i01y!.(/ 11+>s?FG<CCVoV&&	 ' 
 99W//r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 S/nU R                  U5      n[        [        XV5      5      nSR                  " S
0 UD6nU R                  SUUS	9n	U R                  " U	40 UD6n
U
$ )a  
Delete all versions of an account settings template.

Delete all versions of an account settings template in an enterprise account. If
any version is assigned to child accounts, you must first delete the assignment.

:param str template_id: ID of the account settings template.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r  r2   0delete_all_versions_of_account_settings_templater4   r7   r  r  r{   r|   rg   rh   r  s              r   r  >IamIdentityV1.delete_all_versions_of_account_settings_template.  s    " ;<<%22 K

 	{#NN6::i01y!(/ 11+>s?FG<CCVoV&& ' 
 99W//r   c                   U(       d  [        S5      e0 n[        U R                  SSS9n	UR                  U	5        UUUUUS.n
SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n[        [        X5      5      nS
R                  " S0 UD6nU R                  SUUU
S9nU R                  " U40 UD6nU$ )a  
List account settings template versions.

List the versions of a specific account settings template in an enterprise
account.

:param str template_id: ID of the account settings template.
:param str limit: (optional) Optional size of a single page.
:param str pagetoken: (optional) Optional Prev or Next page token returned
       from a previous query execution. Default is start with first page.
:param str sort: (optional) Optional sort property. If specified, the
       returned templated are sorted according to this property.
:param str order: (optional) Optional sort order.
:param str include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `AccountSettingsTemplateList` object
r  r2   *list_versions_of_account_settings_templater4   r  r7   r8   r9   r  5/v1/account_settings_templates/{template_id}/versionsr;   r<   rg   rh   r  s                    r   r  8IamIdentityV1.list_versions_of_account_settings_templateZ  s    > ;<<%22 E

 	{# ".
 NN6::i01y!.(/ 11+>s?FGELL__&&	 ' 
 99W//r   c                R   U(       d  [        S5      eUb  [        U5      n0 n[        U R                  SSS9nUR	                  U5        UUUUS.n	U	R                  5        V
Vs0 s H  u  pUc  M
  X_M     n	n
n[        R                  " U	5      n	SUS'   SU;   a#  UR	                  UR                  S5      5        US	 SUS	'   S
/nU R                  U5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUU	S9nU R                  " U40 UD6nU$ s  snn
f )a  
Create a new version of an account settings template.

Create a new version of an account settings template in an Enterprise Account.

:param str template_id: ID of the account settings template.
:param str account_id: (optional) ID of the account where the template
       resides.
:param str name: (optional) The name of the trusted profile template. This
       is visible only in the enterprise account.
:param str description: (optional) The description of the trusted profile
       template. Describe the template for enterprise account users.
:param TemplateAccountSettings account_settings: (optional) Input body
       parameters for the Account Settings REST request.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `AccountSettingsTemplateResponse` object
r  r2   (create_account_settings_template_versionr4   r  r8   rU   r7   r9   r  r  rV   r   rg   r   )r$   r  r'   r)   rK   r  rF   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                     r   r  6IamIdentityV1.create_account_settings_template_version  sL   : ;<<',-=>%22 C

 	{# %& 0	
 $(::<A<!1<Azz$"4NN6::i01y!.(/ 11+>s?FGELL__&&	 ' 
 99W//+ Bs   #	D#0D#c                   U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR	                  S5      5        US	 SUS	'   S
S/nU R                  X5      n	[        [        X5      5      n
SR                  " S0 U
D6nU R                  SUUUS9nU R                  " U40 UD6nU$ )aZ  
Get version of an account settings template.

Get a specific version of an account settings template in an Enterprise Account.

:param str template_id: ID of the account settings template.
:param str version: Version of the account settings template.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `AccountSettingsTemplateResponse` object
r  r  r2   %get_account_settings_template_versionr4   r.   r7   r8   r9   r  r  ?/v1/account_settings_templates/{template_id}/versions/{version}r;   r<   rg   rh   r  s                 r   r  3IamIdentityV1.get_account_settings_template_version  s   , ;<<788%22 @

 	{# 
 NN6::i01y!.()4 11+Gs?FGOVViYhi&&	 ' 
 99W//r   c                   U(       d  [        S5      eU(       d  [        S5      eU(       d  [        S5      eUb  [        U5      nSU0n	[        U R                  SSS9n
U	R	                  U
5        UUUUS.nUR                  5        VVs0 s H  u  pUc  M
  X_M     nnn[        R                  " U5      nS	U	S
'   SU;   a#  U	R	                  UR                  S5      5        US	 S	U	S'   SS/nU R                  X#5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUU	US9nU R                  " U40 UD6nU$ s  snnf )a  
Update version of an account settings template.

Update a specific version of an account settings template in an Enterprise
Account.

:param str if_match: Entity tag of the Template to be updated. Specify the
       tag that you retrieved when reading the account settings template. This
       value helps identifying parallel usage of this API. Pass * to indicate to
       update any version available. This might result in stale updates.
:param str template_id: ID of the account settings template.
:param str version: Version of the account settings template.
:param str account_id: (optional) ID of the account where the template
       resides.
:param str name: (optional) The name of the trusted profile template. This
       is visible only in the enterprise account.
:param str description: (optional) The description of the trusted profile
       template. Describe the template for enterprise account users.
:param TemplateAccountSettings account_settings: (optional) Input body
       parameters for the Account Settings REST request.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `AccountSettingsTemplateResponse` object
rs   r  r  rt   r2   (update_account_settings_template_versionr4   r  r8   rU   r7   r9   r  r  r  rv   r   rg   r   )r$   rq   r  r  r'   r)   rK   r  rF   r7   rG   rX   r]   r^   rm   rn   ro   r>   rH   rI   s                       r   r  6IamIdentityV1.update_account_settings_template_version  sx   J 899;<<788',-=>
 &22 C

 	{# %& 0	
 $(::<A<!1<Azz$"4NN6::i01y!.()4 11+Gs?FGOVViYhi&&	 ' 
 99W//+ Bs   		E
E
c                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SS/nU R                  X5      n[        [        Xg5      5      nS	R                  " S0 UD6n	U R                  S
U	US9n
U R                  " U
40 UD6nU$ )a  
Delete version of an account settings template.

Delete a specific version of an account settings template in an Enterprise
Account.

:param str template_id: ID of the account settings template.
:param str version: Version of the account settings template.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r  r  r2   (delete_account_settings_template_versionr4   r7   r  r  r  r{   r|   rg   rh   r  s               r   r  6IamIdentityV1.delete_account_settings_template_versionq  s    & ;<<788%22 C

 	{#NN6::i01y!()4 11+Gs?FGOVViYhi&& ' 
 99W//r   c                    U(       d  [        S5      eU(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SS/nU R                  X5      n[        [        Xg5      5      nS	R                  " S0 UD6n	U R                  S
U	US9n
U R                  " U
40 UD6nU$ )a  
Commit a template version.

Commit a specific version of an account settings template in an Enterprise
Account. A Template must be committed before being assigned, and once committed,
can no longer be modified.

:param str template_id: ID of the account settings template.
:param str version: Version of the account settings template.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse
r  r  r2    commit_account_settings_templater4   r7   r  r  zF/v1/account_settings_templates/{template_id}/versions/{version}/commitrV   r|   rg   rh   r  s               r   r  .IamIdentityV1.commit_account_settings_template  s    ( ;<<788%22 ;

 	{#NN6::i01y!()4 11+Gs?FGV]]p`op&& ' 
 99W//r   c       
            0 n[        U R                  SSS9nUR                  U5        UUUUUUUUU	U
S.
nSU;   a#  UR                  UR                  S5      5        US	 SUS'   SnU R	                  S	UUUS
9nU R
                  " U40 UD6nU$ )a  
List assignments.

List account settings assignments.

:param str account_id: (optional) Account ID of the Assignments to query.
       This parameter is required unless using a pagetoken.
:param str template_id: (optional) Filter results by Template Id.
:param str template_version: (optional) Filter results Template Version.
:param str target: (optional) Filter results by the assignment target.
:param str target_type: (optional) Filter results by the assignment's
       target type.
:param int limit: (optional) Optional size of a single page. Default is 20
       items per page. Valid range is 1 to 100.
:param str pagetoken: (optional) Optional Prev or Next page token returned
       from a previous query execution. Default is start with first page.
:param str sort: (optional) If specified, the items are sorted by the value
       of this property.
:param str order: (optional) Sort order.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TemplateAssignmentListResponse` object
r2   !list_account_settings_assignmentsr4   r  r7   r8   r9   !/v1/account_settings_assignments/r;   r<   r@   r  s                     r   r   /IamIdentityV1.list_account_settings_assignments  s    R %22 <

 	{# %& 0&".
 NN6::i01y!.1&&	 ' 
 99W//r   c                    Uc  [        S5      eUc  [        S5      eUc  [        S5      eUc  [        S5      e0 n[        U R                  SSS9nUR                  U5        UUUUS.nUR	                  5        V	V
s0 s H  u  pU
c  M
  X_M     nn	n
[
        R                  " U5      nS	US
'   SU;   a#  UR                  UR                  S5      5        US	 S	US'   SnU R                  SUUUS9nU R                  " U40 UD6nU$ s  sn
n	f )a  
Create assignment.

Create an assigment for an account settings template.

:param str template_id: ID of the template to assign.
:param int template_version: Version of the template to assign.
:param str target_type: Type of target to deploy to.
:param str target: Identifier of target to deploy to.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TemplateAssignmentResponse` object
r  r  r  r  r2   "create_account_settings_assignmentr4   r  r8   rU   r7   r9   r  rV   r   r   r  s                 r   r  0IamIdentityV1.create_account_settings_assignment$  s=   , ;<<#@AA;<<>677%22 =

 	{# ' 0&	
 $(::<A<!1<Azz$"4NN6::i01y!.1&&	 ' 
 99W//% Br  c                   U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU0nSU;   a#  UR                  UR	                  S5      5        US	 SUS'   S	/nU R                  U5      n[        [        Xx5      5      n	S
R                  " S0 U	D6n
U R                  SU
UUS9nU R                  " U40 UD6nU$ )a  
Get assignment.

Get an assigment for an account settings template.

:param str assignment_id: ID of the Assignment Record.
:param bool include_history: (optional) Defines if the entity history is
       included in the response.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TemplateAssignmentResponse` object
r  r2   get_account_settings_assignmentr4   r.   r7   r8   r9   r  0/v1/account_settings_assignments/{assignment_id}r;   r<   rg   rh   r  s                r   r  -IamIdentityV1.get_account_settings_assignmentd  s    ( =>>%22 :

 	{# 
 NN6::i01y!.*+ 11-@s?FG@GGZ/Z&&	 ' 
 99W//r   c                    U(       d  [        S5      e0 n[        U R                  SSS9nUR                  U5        SU;   a#  UR                  UR	                  S5      5        US	 SUS'   S/nU R                  U5      n[        [        XV5      5      nS	R                  " S0 UD6nU R                  S
UUS9n	U R                  " U	40 UD6n
U
$ )a  
Delete assignment.

Delete an account settings template assignment. This removes any IAM resources
created by this assignment in child accounts.

:param str assignment_id: ID of the Assignment Record.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `ExceptionResponse` object
r  r2   "delete_account_settings_assignmentr4   r7   r8   r9   r  r  r{   r|   rg   rh   r  s              r   r  0IamIdentityV1.delete_account_settings_assignment  s    " =>>%22 =

 	{#NN6::i01y!.*+ 11-@s?FG@GGZ/Z&& ' 
 99W//r   c                 t   U(       d  [        S5      eU(       d  [        S5      eUc  [        S5      eSU0n[        U R                  SSS9nUR                  U5        SU0nUR	                  5        VV	s0 s H  u  pU	c  M
  X_M     nnn	[
        R                  " U5      nS	US
'   SU;   a#  UR                  UR                  S5      5        US	 S	US'   S/n
U R                  U5      n[        [        X5      5      nSR                  " S0 UD6nU R                  SUUUS9nU R                  " U40 UD6nU$ s  sn	nf )a  
Update assignment.

Update an account settings assignment. Call this method to retry failed
assignments or migrate the settings in child accounts to a new version.

:param str assignment_id: ID of the Assignment Record.
:param str if_match: Version of the assignment to be updated. Specify the
       version that you retrieved when reading the assignment. This value  helps
       identifying parallel usage of this API. Pass * to indicate to update any
       version available. This might result in stale updates.
:param int template_version: Template version to be applied to the
       assignment. To retry all failed assignments, provide the existing version.
       To migrate to a different version, provide the new version number.
:param dict headers: A `dict` containing the request headers
:return: A `DetailedResponse` containing the result, headers and HTTP status code.
:rtype: DetailedResponse with `dict` result representing a `TemplateAssignmentResponse` object
r  rs   r  rt   r2   "update_account_settings_assignmentr4   r  r8   rU   r7   r9   r  r  r  r   rg   rw   r  s                   r   r  0IamIdentityV1.update_account_settings_assignment  s_   4 =>>899#@AA
 &22 =

 	{#  0
 $(::<A<!1<Azz$"4NN6::i01y!.*+ 11-@s?FG@GGZ/Z&&	 ' 
 99W//+ Br  rg   )N)f__name__
__module____qualname____firstlineno____doc__r#   rA   classmethodstrr   r
   r"   r   intboolr	   r3   r   rT   re   ru   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r%  r-  r4  r:  r?  rD  rJ  r^  ra  rd  rg  rj  rr  rw  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  __static_attributes__rg   r   r   r   r   +   s[   &5) 1 
  (,f$f 
f( %)"&""&#'"#*. $'+T SMT 3-	T
 smT 3-T C=T smT }T "$T T  }T 
Tv #'%)48AE'+%)YY Y
 3-Y c]Y 'tCy1Y =>Y  }Y c]Y 
Y~ +/+/'+>> "$	>
 #4.>  }> 
>J #%)48'+ZZ Z
 smZ c]Z 'tCy1Z  }Z 
Zx-- 
	-^** 
	*X** 
	*f %), SM,
 
,f &*88 8
 c]8 
8t** 
	*d &*CC C 	C c]C 
CJ)) 
	)d %) $"&#'#""#*. $"&] SM] 	]
 3-] C=] }] sm] sm] }] "$] ] 3-] 
]H &*$( $&*+/,0%)(,bb b
 c]b SMb b d^b #4.b %SMb c]b !b 
bN &**.	1 c]1 "$	1 
1n +/+/99 "$	9
 #4.9 
9@ #%)+/,0SS S
 smS c]S #4.S %SMS 
Sj++ 
	+Z** 
	*X** 
	*X** 
	*X** 
	*j &*#?? ?
 c]? }? 
?J #"&"#*.#' $KK sm	K
 3-K smK }K "$K C=K K 
Kb ,0	66 #4.	6 
6z #%)#LL L
 smL c]L }L 
L\++ 
	+f 04"$(!%$(XX X 56	X +,X smX SMX #X SMX 
Xt++ 
	+Z.. .
 
.p 04"$(!%$(dd d 	d
 d 56d +,d smd SMd #d SMd 
dL// /
 
/n #CC C -	C smC 
CJ** 
	*b "#'"(,(,FF F
 c]F C=F smF !F !F 
FP.. .
 
.`-- -
 
-^** 
	*b @DAA A
 T":;<A 
AT )-%)TT T 	T
 T 49%T c]T 
Tl33 3 	3 
3j66 6 	6 
6@ #"&99 sm	9
 3-9 
9v11 1
 
1v +/+/77 "$	7
 #4.7 
7| 599=.2!.27;9=37CGDH7;X\!RR R
 %-SMR *2#R 'smR c]R 4	?+R (0}R *2#R $,C=R 4<C=R 5=SMR (0}R   (-S(TU!R$ 
%Rp +/+/77 "$	7
 #4.7 
7z44 4
 
4t #	44 sm	4 
4l11 1
 
1~ 6:kk k 	k
 k k  (S	2k 
kZ:: : 	:
 : 
:xEE E 	E
 E 
EN33 3
 
3x %)##'"#)-> SM> }	>
 C=> sm> }> "#> 
>F %)"%)?CPT6:K SMK sm	K
 c]K ;<K %-T2K-L$MK ""23K 
Kb +/	33 "$	3 
3j** 
	*`  $#'"#)-AA }	A
 C=A smA }A "#A 
AN %)"%)?CPT6:RR SM	R
 smR c]R ;<R %-T2K-L$MR ""23R 
Rr +/77 7
 "$7 
7~ %)"%)?CPT6:__ _ 	_ SM_ sm_ c]_ ;<_ %-T2K-L$M_ ""23_ 
_B// /
 
/b// /
 
/p %)%)*. $%)##'"#*.L SML c]	L
 #3-L L c]L }L C=L smL }L "$L 
L\>> > 	>
 > 
>H +/	33 "$	3 
3j++ 
	+ZBB B 	B 
BV %)##'"#)-> SM> }	>
 C=> sm> }> "#> 
>F %)"%)@D= SM= sm	=
 c]= ##<== 
=F +/	44 "$	4 
4l** 
	*`  $#'"#)-BB }	B
 C=B smB }B "#B 
BP %)"%)@DDD SM	D
 smD c]D ##<=D 
DV +/77 7
 "$7 
7~ %)"%)@DRR R 	R SMR smR c]R ##<=R 
Rh.. .
 
.`// /
 
/p %)%)*. $%)##'"#*.L SML c]	L
 #3-L L c]L }L C=L smL }L "$L 
L\>> > 	>
 > 
>H +/	33 "$	3 
3j++ 
	+ZBB B 	B 
Br   r   c                   0    \ rS rSrSr " S S\\5      rSrg)ListServiceIdsEnumsi  z(
Enums for list_service_ids parameters.
c                        \ rS rSrSrSrSrSrg)ListServiceIdsEnums.Orderi  C
Optional sort order, valid values are asc and desc. Default: asc.
ascdescrg   Nr  r  r  r  r  ASCDESCr  rg   r   r   Orderr        	 r   r$  rg   N	r  r  r  r  r  r  r   r$  r  rg   r   r   r  r        T r   r  c                   `    \ rS rSrSr " S S\\5      r " S S\\5      r " S S\\5      r	S	r
g
)ListApiKeysEnumsi  z%
Enums for list_api_keys parameters.
c                        \ rS rSrSrSrSrSrg)ListApiKeysEnums.Scopei  zi
Optional parameter to define the scope of the queried API keys. Can be 'entity'
(default) or 'account'.
entityaccountrg   N)r  r  r  r  r  ENTITYACCOUNTr  rg   r   r   Scoper+    s    	
 r   r0  c                        \ rS rSrSrSrSrSrg)ListApiKeysEnums.Typei'  z^
Optional parameter to filter the type of the queried API keys. Can be 'user' or
'serviceid'.
user	serviceidrg   N)r  r  r  r  r  USER	SERVICEIDr  rg   r   r   Typer2  '  s    	
 	r   r7  c                        \ rS rSrSrSrSrSrg)ListApiKeysEnums.Orderi0  r  r  r   rg   Nr!  rg   r   r   r$  r9  0  r%  r   r$  rg   N)r  r  r  r  r  r  r   r0  r7  r$  r  rg   r   r   r)  r)    s1    T  sD  T r   r)  c                   0    \ rS rSrSr " S S\\5      rSrg)ListProfilesEnumsi9  z%
Enums for list_profiles parameters.
c                        \ rS rSrSrSrSrSrg)ListProfilesEnums.Orderi>  r  r  r   rg   Nr!  rg   r   r   r$  r=  >  r%  r   r$  rg   Nr&  rg   r   r   r;  r;  9  r'  r   r;  c                   0    \ rS rSrSr " S S\\5      rSrg)SetProfileIdentityEnumsiG  z,
Enums for set_profile_identity parameters.
c                   $    \ rS rSrSrSrSrSrSrg)$SetProfileIdentityEnums.IdentityTypeiL  
Type of the identity.
r3  r4  r  rg   N	r  r  r  r  r  r5  r6  CRNr  rg   r   r   IdentityTyperA  L      	 	r   rE  rg   N	r  r  r  r  r  r  r   rE  r  rg   r   r   r?  r?  G      sD r   r?  c                   0    \ rS rSrSr " S S\\5      rSrg)GetProfileIdentityEnumsiV  z,
Enums for get_profile_identity parameters.
c                   $    \ rS rSrSrSrSrSrSrg)$GetProfileIdentityEnums.IdentityTypei[  rB  r3  r4  r  rg   NrC  rg   r   r   rE  rL  [  rF  r   rE  rg   NrG  rg   r   r   rJ  rJ  V  rH  r   rJ  c                   0    \ rS rSrSr " S S\\5      rSrg)DeleteProfileIdentityEnumsie  z/
Enums for delete_profile_identity parameters.
c                   $    \ rS rSrSrSrSrSrSrg)'DeleteProfileIdentityEnums.IdentityTypeij  rB  r3  r4  r  rg   NrC  rg   r   r   rE  rP  j  rF  r   rE  rg   NrG  rg   r   r   rN  rN  e  rH  r   rN  c                   H    \ rS rSrSr " S S\\5      r " S S\\5      rSr	g)	ListProfileTemplatesEnumsit  z.
Enums for list_profile_templates parameters.
c                   $    \ rS rSrSrSrSrSrSrg)ListProfileTemplatesEnums.Sortiy  ze
Optional sort property. If specified, the returned templates are sorted according
to this property.

created_atlast_modified_atr)   rg   N	r  r  r  r  r  
CREATED_ATLAST_MODIFIED_ATNAMEr  rg   r   r   SortrT  y      	
 "
-r   r[  c                        \ rS rSrSrSrSrSrg)ListProfileTemplatesEnums.Orderi  
Optional sort order.
r  r   rg   Nr!  rg   r   r   r$  r^    r%  r   r$  rg   N
r  r  r  r  r  r  r   r[  r$  r  rg   r   r   rR  rR  t  #    sD T r   rR  c                   H    \ rS rSrSr " S S\\5      r " S S\\5      rSr	g)	"ListVersionsOfProfileTemplateEnumsi  z9
Enums for list_versions_of_profile_template parameters.
c                   $    \ rS rSrSrSrSrSrSrg)'ListVersionsOfProfileTemplateEnums.Sorti  e
Optional sort property. If specified, the returned templated are sorted according
to this property.
rU  rV  r)   rg   NrW  rg   r   r   r[  re    r\  r   r[  c                        \ rS rSrSrSrSrSrg)(ListVersionsOfProfileTemplateEnums.Orderi  r_  r  r   rg   Nr!  rg   r   r   r$  rh    r%  r   r$  rg   Nr`  rg   r   r   rc  rc    ra  r   rc  c                   `    \ rS rSrSr " S S\\5      r " S S\\5      r " S S\\5      r	S	r
g
)"ListTrustedProfileAssignmentsEnumsi  z8
Enums for list_trusted_profile_assignments parameters.
c                        \ rS rSrSrSrSrSrg)-ListTrustedProfileAssignmentsEnums.TargetTypei  1
Filter results by the assignment's target type.
AccountAccountGrouprg   Nr  r  r  r  r  r/  ACCOUNTGROUPr  rg   r   r   
TargetTyperl        	 %r   rr  c                   $    \ rS rSrSrSrSrSrSrg)'ListTrustedProfileAssignmentsEnums.Sorti  C
If specified, the items are sorted by the value of this property.
r  rU  rV  rg   N	r  r  r  r  r  TEMPLATE_IDrX  rY  r  rg   r   r   r[  ru        	 $!
-r   r[  c                        \ rS rSrSrSrSrSrg)(ListTrustedProfileAssignmentsEnums.Orderi  
Sort order.
r  r   rg   Nr!  rg   r   r   r$  r{    r%  r   r$  rg   Nr  r  r  r  r  r  r   rr  r[  r$  r  rg   r   r   rj  rj    1    &S$ &.sD .T r   rj  c                   H    \ rS rSrSr " S S\\5      r " S S\\5      rSr	g)	!ListAccountSettingsTemplatesEnumsi  z7
Enums for list_account_settings_templates parameters.
c                   $    \ rS rSrSrSrSrSrSrg)&ListAccountSettingsTemplatesEnums.Sorti  rf  rU  rV  r)   rg   NrW  rg   r   r   r[  r    r\  r   r[  c                        \ rS rSrSrSrSrSrg)'ListAccountSettingsTemplatesEnums.Orderi  r_  r  r   rg   Nr!  rg   r   r   r$  r    r%  r   r$  rg   Nr`  rg   r   r   r  r    ra  r   r  c                   H    \ rS rSrSr " S S\\5      r " S S\\5      rSr	g)	*ListVersionsOfAccountSettingsTemplateEnumsi  zB
Enums for list_versions_of_account_settings_template parameters.
c                   $    \ rS rSrSrSrSrSrSrg)/ListVersionsOfAccountSettingsTemplateEnums.Sorti  rf  rU  rV  r)   rg   NrW  rg   r   r   r[  r    r\  r   r[  c                        \ rS rSrSrSrSrSrg)0ListVersionsOfAccountSettingsTemplateEnums.Orderi  r_  r  r   rg   Nr!  rg   r   r   r$  r    r%  r   r$  rg   Nr`  rg   r   r   r  r    ra  r   r  c                   `    \ rS rSrSr " S S\\5      r " S S\\5      r " S S\\5      r	S	r
g
)#ListAccountSettingsAssignmentsEnumsi  z9
Enums for list_account_settings_assignments parameters.
c                        \ rS rSrSrSrSrSrg).ListAccountSettingsAssignmentsEnums.TargetTypei  rm  rn  ro  rg   Nrp  rg   r   r   rr  r    rs  r   rr  c                   $    \ rS rSrSrSrSrSrSrg)(ListAccountSettingsAssignmentsEnums.Sorti   rv  r  rU  rV  rg   Nrw  rg   r   r   r[  r     ry  r   r[  c                        \ rS rSrSrSrSrSrg))ListAccountSettingsAssignmentsEnums.Orderi	  r|  r  r   rg   Nr!  rg   r   r   r$  r  	  r%  r   r$  rg   Nr}  rg   r   r   r  r    r~  r   r  c            
           \ rS rSrSrSSSSSSS\SS	4
S
 jr\S\SS 4S j5       r	\S 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg	)AccountBasedMfaEnrollmenti  z
AccountBasedMfaEnrollment.

:param MfaEnrollmentTypeStatus security_questions:
:param MfaEnrollmentTypeStatus totp:
:param MfaEnrollmentTypeStatus verisign:
:param bool complies: The enrollment complies to the effective requirement.
security_questionsMfaEnrollmentTypeStatustotpverisigncompliesr   Nc                 4    Xl         X l        X0l        X@l        g)z
Initialize a AccountBasedMfaEnrollment object.

:param MfaEnrollmentTypeStatus security_questions:
:param MfaEnrollmentTypeStatus totp:
:param MfaEnrollmentTypeStatus verisign:
:param bool complies: The enrollment complies to the effective requirement.
N)r  r  r  r  )r$   r  r  r  r  s        r   r"   "AccountBasedMfaEnrollment.__init__!  s     #5	  r   _dictc                    0 nUR                  S5      =nb  [        R                  U5      US'   O[        S5      eUR                  S5      =nb  [        R                  U5      US'   O[        S5      eUR                  S5      =nb  [        R                  U5      US'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eU " S	0 UD6$ )
EInitialize a AccountBasedMfaEnrollment object from a json dictionary.r  zTRequired property 'security_questions' not present in AccountBasedMfaEnrollment JSONr  zFRequired property 'totp' not present in AccountBasedMfaEnrollment JSONr  zJRequired property 'verisign' not present in AccountBasedMfaEnrollment JSONr  zJRequired property 'complies' not present in AccountBasedMfaEnrollment JSONrg   )rC   r  	from_dictrY   )r   r  argsr  r  r  r  s          r   r  #AccountBasedMfaEnrollment.from_dict5  s     "')),@"AAN)@)J)JK])^D%&uvvIIf%%D22<<TBDLghh		*--H:6@@JDkll		*--H:'kll{T{r   c                 $    U R                  U5      $ )r  r  r   r  s     r   
_from_dict$AccountBasedMfaEnrollment._from_dictK       }}U##r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       aY  U R
                  bL  [        U R
                  [        5      (       a  U R
                  US'   OU R
                  R	                  5       US'   [        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )1Return a json dictionary representing this model.r  r  r  r  )hasattrr  
isinstancerj   to_dictr  r  r  r$   r  s     r   r  !AccountBasedMfaEnrollment.to_dictP  s   4-..43J3J3V$11488.2.E.E*+.2.E.E.M.M.O*+4  TYY%:$))T** $		f $		 1 1 3f4$$)B$--..$(MMj!$(MM$9$9$;j!4$$)B $E*r   c                 "    U R                  5       $ r  r  r$   s    r   _to_dict"AccountBasedMfaEnrollment._to_dictf      ||~r   c                 H    [         R                  " U R                  5       SS9$ )z@Return a `str` version of this AccountBasedMfaEnrollment object.   indentr[   r\   r  r  s    r   __str__!AccountBasedMfaEnrollment.__str__j      zz$,,.33r   otherc                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ z=Return `true` when self and other are equal, false otherwise.Fr  	__class____dict__r$   r  s     r   __eq__ AccountBasedMfaEnrollment.__eq__n  '    %00}}..r   c                     X:X  + $ zAReturn `true` when self and other are not equal, false otherwise.rg   r  s     r   __ne__ AccountBasedMfaEnrollment.__ne__t        r   )r  r  r  r  r  r  r  r  r  r  r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   r  r    s    !5! (! ,	!
 ! 
!( d 'B  * $ $ ,4 4/7 /D /!7 !D !r   r  c            !          \ rS rSrSrSSSSSSSSSSSSS.S\S\S\S\\   S	\\   S
\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\S      S\S   SS4 S jjr	\
S\SS 4S j5       r\
S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S  jr " S! S"\\5      r " S# S$\\5      r " S% S&\\5      r " S' S(\\5      rS)rg)*'AccountSettingsAssignedTemplatesSectioniy  a[  
Input body parameters for the Account Settings REST request.

:param str template_id: Template Id.
:param int template_version: Template version.
:param str template_name: Template name.
:param str restrict_create_service_id: (optional) Defines whether or not
      creating the resource is access controlled. Valid values:
        * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM
      Identity Service can create service IDs, including the account owner
        * NOT_RESTRICTED - all members of an account can create service IDs
        * NOT_SET - to 'unset' a previous set value.
:param str restrict_create_platform_apikey: (optional) Defines whether or not
      creating the resource is access controlled. Valid values:
        * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM
      Identity Service can create service IDs, including the account owner
        * NOT_RESTRICTED - all members of an account can create service IDs
        * NOT_SET - to 'unset' a previous set value.
:param str allowed_ip_addresses: (optional) Defines the IP addresses and subnets
      from which IAM tokens can be created for the account.
:param str mfa: (optional) MFA trait definitions as follows:
        * NONE - No MFA trait set
        * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
        * TOTP - For all non-federated IBMId users
        * TOTP4ALL - For all users
        * LEVEL1 - Email-based MFA for all users
        * LEVEL2 - TOTP-based MFA for all users
        * LEVEL3 - U2F MFA for all users.
:param str session_expiration_in_seconds: (optional) Defines the session
      expiration in seconds for the account. Valid values:
        * Any whole number between between '900' and '86400'
        * NOT_SET - To unset account setting and use service default.
:param str session_invalidation_in_seconds: (optional) Defines the period of
      time in seconds in which a session will be invalidated due to inactivity. Valid
      values:
        * Any whole number between '900' and '7200'
        * NOT_SET - To unset account setting and use service default.
:param str max_sessions_per_identity: (optional) Defines the max allowed
      sessions per identity required by the account. Valid values:
        * Any whole number greater than 0
        * NOT_SET - To unset account setting and use service default.
:param str system_access_token_expiration_in_seconds: (optional) Defines the
      access token expiration in seconds. Valid values:
        * Any whole number between '900' and '3600'
        * NOT_SET - To unset account setting and use service default.
:param str system_refresh_token_expiration_in_seconds: (optional) Defines the
      refresh token expiration in seconds. Valid values:
        * Any whole number between '900' and '259200'
        * NOT_SET - To unset account setting and use service default.
:param str restrict_user_list_visibility: (optional) Defines whether or not user
      visibility is access controlled. Valid values:
        * RESTRICTED - users can view only specific types of users in the account,
      such as those the user has invited to the account, or descendants of those users
      based on the classic infrastructure hierarchy
        * NOT_RESTRICTED - any user in the account can view other users from the Users
      page in IBM Cloud console
        * NOT_SET - to 'unset' a previous set value.
:param List[AccountSettingsUserMFAResponse] user_mfa: (optional) List of users
      that are exempted from the MFA requirement of the account.
:param AssignedTemplatesAccountSettingsRestrictUserDomains
      restrict_user_domains: (optional)
N)rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  rZ  r  r  template_namerO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  AccountSettingsUserMFAResponserZ  3AssignedTemplatesAccountSettingsRestrictUserDomainsr   c                    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        Xl	        Xl
        Xl        Xl        Xl        Xl        g)a  
Initialize a AccountSettingsAssignedTemplatesSection object.

:param str template_id: Template Id.
:param int template_version: Template version.
:param str template_name: Template name.
:param str restrict_create_service_id: (optional) Defines whether or not
       creating the resource is access controlled. Valid values:
         * RESTRICTED - only users assigned the 'Service ID creator' role on the
       IAM Identity Service can create service IDs, including the account owner
         * NOT_RESTRICTED - all members of an account can create service IDs
         * NOT_SET - to 'unset' a previous set value.
:param str restrict_create_platform_apikey: (optional) Defines whether or
       not creating the resource is access controlled. Valid values:
         * RESTRICTED - only users assigned the 'Service ID creator' role on the
       IAM Identity Service can create service IDs, including the account owner
         * NOT_RESTRICTED - all members of an account can create service IDs
         * NOT_SET - to 'unset' a previous set value.
:param str allowed_ip_addresses: (optional) Defines the IP addresses and
       subnets from which IAM tokens can be created for the account.
:param str mfa: (optional) MFA trait definitions as follows:
         * NONE - No MFA trait set
         * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
         * TOTP - For all non-federated IBMId users
         * TOTP4ALL - For all users
         * LEVEL1 - Email-based MFA for all users
         * LEVEL2 - TOTP-based MFA for all users
         * LEVEL3 - U2F MFA for all users.
:param str session_expiration_in_seconds: (optional) Defines the session
       expiration in seconds for the account. Valid values:
         * Any whole number between between '900' and '86400'
         * NOT_SET - To unset account setting and use service default.
:param str session_invalidation_in_seconds: (optional) Defines the period
       of time in seconds in which a session will be invalidated due to
       inactivity. Valid values:
         * Any whole number between '900' and '7200'
         * NOT_SET - To unset account setting and use service default.
:param str max_sessions_per_identity: (optional) Defines the max allowed
       sessions per identity required by the account. Valid values:
         * Any whole number greater than 0
         * NOT_SET - To unset account setting and use service default.
:param str system_access_token_expiration_in_seconds: (optional) Defines
       the access token expiration in seconds. Valid values:
         * Any whole number between '900' and '3600'
         * NOT_SET - To unset account setting and use service default.
:param str system_refresh_token_expiration_in_seconds: (optional) Defines
       the refresh token expiration in seconds. Valid values:
         * Any whole number between '900' and '259200'
         * NOT_SET - To unset account setting and use service default.
:param str restrict_user_list_visibility: (optional) Defines whether or not
       user visibility is access controlled. Valid values:
         * RESTRICTED - users can view only specific types of users in the
       account, such as those the user has invited to the account, or descendants
       of those users based on the classic infrastructure hierarchy
         * NOT_RESTRICTED - any user in the account can view other users from the
       Users page in IBM Cloud console
         * NOT_SET - to 'unset' a previous set value.
:param List[AccountSettingsUserMFAResponse] user_mfa: (optional) List of
       users that are exempted from the MFA requirement of the account.
:param AssignedTemplatesAccountSettingsRestrictUserDomains
       restrict_user_domains: (optional)
N)r  r  r  rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  rZ  )r$   r  r  r  rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  rZ  s                   r   r"   0AccountSettingsAssignedTemplatesSection.__init__  s]    b ' 0**D'/N,$8!-J*/N,)B&9b6:d7-J* %:"r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S	5      =nb  XS	'   UR                  S
5      =n	b  XS
'   UR                  S5      =n
b  XS'   UR                  S5      =nb  XS'   UR                  S5      =nb  XS'   UR                  S5      =n b  XS'   UR                  S5      =n b  XS'   UR                  S5      =nb  XS'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   UR                  S5      =nb  [        R                  U5      US'   U " S0 UD6$ s  snf )SInitialize a AccountSettingsAssignedTemplatesSection object from a json dictionary.r  z[Required property 'template_id' not present in AccountSettingsAssignedTemplatesSection JSONr  z`Required property 'template_version' not present in AccountSettingsAssignedTemplatesSection JSONr  z]Required property 'template_name' not present in AccountSettingsAssignedTemplatesSection JSONrO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  rZ  rg   )rC   rY   r  r  r  )r   r  r  r  r  r  rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  r^   rZ  s                      r   r  1AccountSettingsAssignedTemplatesSection.from_dict  sY     99]33K@"-o  !&		*< ==J'7#$t  #YY77MD$1!q  +0))4P*QQ&^1K-./4yy9Z/[[+h6U23$)II.D$EE R+?'(99U##C0K-2YY7V-WW)d4Q01/4yy9Z/[[+h6U23).3N)OO%\0I,-9>Cn9oo5 Aj<=:?))Dp:qq6 Bl=>-2YY7V-WW)d4Q01		*--H:U]^U]PQ > H H KU]^D%*YY/F%GG!T,_,i,i%-D() {T{  _s   9Gc                 $    U R                  U5      $ )r  r  r  s     r   r  2AccountSettingsAssignedTemplatesSection._from_dictP  r  r   c                 n   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S	5      (       a  U R                  b  U R                  US	'   [        U S
5      (       a  U R                  b  U R                  US
'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[         5      (       a  UR#                  U5        M+  UR#                  UR%                  5       5        ML     X!S'   [        U S5      (       aZ  U R&                  bM  [        U R&                  [         5      (       a  U R&                  US'   U$ U R&                  R%                  5       US'   U$ )r  r  r  r  rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  rZ  )r  r  r  r  rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  r  rj   appendr  rZ  r$   r  user_mfa_listr^   s       r   r  /AccountSettingsAssignedTemplatesSection.to_dictU  s   4''D,<,<,H#'#3#3E- 4+,,1F1F1R(,(=(=E$%4))d.@.@.L%)%7%7E/"45664;Z;Z;f262Q2QE./4:;;@d@d@p7;7[7[E344/00T5N5N5Z,0,E,EE()4DHH$888E%L4899d>`>`>l595W5WE124:;;@d@d@p7;7[7[E344455$:X:X:d151O1OE-.DEFF>>JAEAoAoE=>DFGG??KBFBqBqE>?4899d>`>`>l595W5WE124$$)BM]]a&&!((+!((5	 #
 !.*4011d6P6P6\$44d;;151K1K-.  261K1K1S1S1U-.r   c                 "    U R                  5       $ r  r  r  s    r   r  0AccountSettingsAssignedTemplatesSection._to_dict  r  r   c                 H    [         R                  " U R                  5       SS9$ )zNReturn a `str` version of this AccountSettingsAssignedTemplatesSection object.r  r  r  r  s    r   r  /AccountSettingsAssignedTemplatesSection.__str__  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  .AccountSettingsAssignedTemplatesSection.__eq__  r  r   c                     X:X  + $ r  rg   r  s     r   r  .AccountSettingsAssignedTemplatesSection.__ne__  r  r   c                   $    \ rS rSrSrSrSrSrSrg)CAccountSettingsAssignedTemplatesSection.RestrictCreateServiceIdEnumi  Z  
Defines whether or not creating the resource is access controlled. Valid values:
  * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM
Identity Service can create service IDs, including the account owner
  * NOT_RESTRICTED - all members of an account can create service IDs
  * NOT_SET - to 'unset' a previous set value.

RESTRICTEDNOT_RESTRICTEDNOT_SETrg   N	r  r  r  r  r  r  r  r  r  rg   r   r   RestrictCreateServiceIdEnumr        	 "
)r   r  c                   $    \ rS rSrSrSrSrSrSrg)HAccountSettingsAssignedTemplatesSection.RestrictCreatePlatformApikeyEnumi  r  r  r  r  rg   Nr  rg   r   r    RestrictCreatePlatformApikeyEnumr    r  r   r  c                   4    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg)/AccountSettingsAssignedTemplatesSection.MfaEnumi  D  
MFA trait definitions as follows:
  * NONE - No MFA trait set
  * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
  * TOTP - For all non-federated IBMId users
  * TOTP4ALL - For all users
  * LEVEL1 - Email-based MFA for all users
  * LEVEL2 - TOTP-based MFA for all users
  * LEVEL3 - U2F MFA for all users.
NONENONE_NO_ROPCTOTPTOTP4ALLLEVEL1LEVEL2LEVEL3rg   Nr  r  r  r  r  r  r  r  r  r  r  r  r  rg   r   r   MfaEnumr    ,    		 %r   r  c                   $    \ rS rSrSrSrSrSrSrg)FAccountSettingsAssignedTemplatesSection.RestrictUserListVisibilityEnumi    
Defines whether or not user visibility is access controlled. Valid values:
  * RESTRICTED - users can view only specific types of users in the account, such
as those the user has invited to the account, or descendants of those users based
on the classic infrastructure hierarchy
  * NOT_RESTRICTED - any user in the account can view other users from the Users
page in IBM Cloud console
  * NOT_SET - to 'unset' a previous set value.
r  r  r  rg   Nr  rg   r   r   RestrictUserListVisibilityEnumr        	 "
)r   r  )rQ  rV  rR  rP  rO  rZ  rY  rT  rU  rW  rX  r  r  r  rS  )r  r  r  r  r  r  r  r   r   r"   r  r   r  r  r  r  r  r  r  r  r   r  r  r  r  r  rg   r   r   r  r  y  s   =J 599=.2!7;9=37CGDH7;EIae#_;_; _; 	_; %-SM_; *2#_; 'sm_; c]_; (0}_; *2#_; $,C=_; 4<C=_; 5=SM_; (0}_;  4 @AB!_;"  ((]^#_;$ 
%_;B 3d 3'P 3 3j $ $0 0d4 4/E /$ /!E !$ !c4 3 #t (d r   r  c                      \ rS rSrSrSSSSSSSSSSSS.S\\   S\\   S\\   S\\   S	\\   S
\\S      S\\   S\\   S\\   S\\   S\\   SS4S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jr " S S\\5      r " S S\\5      r " S  S!\\5      r " S" S#\\5      rS$rg)%AccountSettingsEffectiveSectioni  a+  
AccountSettingsEffectiveSection.

:param str restrict_create_service_id: (optional) Defines whether or not
      creating the resource is access controlled. Valid values:
        * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM
      Identity Service can create service IDs, including the account owner
        * NOT_RESTRICTED - all members of an account can create service IDs
        * NOT_SET - to 'unset' a previous set value.
:param str restrict_create_platform_apikey: (optional) Defines whether or not
      creating the resource is access controlled. Valid values:
        * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM
      Identity Service can create service IDs, including the account owner
        * NOT_RESTRICTED - all members of an account can create service IDs
        * NOT_SET - to 'unset' a previous set value.
:param str restrict_user_list_visibility: (optional) Defines whether or not user
      visibility is access controlled. Valid values:
        * RESTRICTED - users can view only specific types of users in the account,
      such as those the user has invited to the account, or descendants of those users
      based on the classic infrastructure hierarchy
        * NOT_RESTRICTED - any user in the account can view other users from the Users
      page in IBM Cloud console.
:param str allowed_ip_addresses: (optional) Defines the IP addresses and subnets
      from which IAM tokens can be created for the account.
:param str mfa: (optional) MFA trait definitions as follows:
        * NONE - No MFA trait set
        * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
        * TOTP - For all non-federated IBMId users
        * TOTP4ALL - For all users
        * LEVEL1 - Email-based MFA for all users
        * LEVEL2 - TOTP-based MFA for all users
        * LEVEL3 - U2F MFA for all users.
:param List[AccountSettingsUserMFAResponse] user_mfa: (optional) List of users
      that are exempted from the MFA requirement of the account.
:param str session_expiration_in_seconds: (optional) Defines the session
      expiration in seconds for the account. Valid values:
        * Any whole number between between '900' and '86400'
        * NOT_SET - To unset account setting and use service default.
:param str session_invalidation_in_seconds: (optional) Defines the period of
      time in seconds in which a session will be invalidated due to inactivity. Valid
      values:
        * Any whole number between '900' and '7200'
        * NOT_SET - To unset account setting and use service default.
:param str max_sessions_per_identity: (optional) Defines the max allowed
      sessions per identity required by the account. Valid values:
        * Any whole number greater than 0
        * NOT_SET - To unset account setting and use service default.
:param str system_access_token_expiration_in_seconds: (optional) Defines the
      access token expiration in seconds. Valid values:
        * Any whole number between '900' and '3600'
        * NOT_SET - To unset account setting and use service default.
:param str system_refresh_token_expiration_in_seconds: (optional) Defines the
      refresh token expiration in seconds. Valid values:
        * Any whole number between '900' and '259200'
        * NOT_SET - To unset account setting and use service default.
NrO  rP  rY  rQ  rR  rS  rT  rU  rV  rW  rX  rO  rP  rY  rQ  rR  rS  r  rT  rU  rV  rW  rX  r   c                    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        Xl	        Xl
        g)ah  
Initialize a AccountSettingsEffectiveSection object.

:param str restrict_create_service_id: (optional) Defines whether or not
       creating the resource is access controlled. Valid values:
         * RESTRICTED - only users assigned the 'Service ID creator' role on the
       IAM Identity Service can create service IDs, including the account owner
         * NOT_RESTRICTED - all members of an account can create service IDs
         * NOT_SET - to 'unset' a previous set value.
:param str restrict_create_platform_apikey: (optional) Defines whether or
       not creating the resource is access controlled. Valid values:
         * RESTRICTED - only users assigned the 'Service ID creator' role on the
       IAM Identity Service can create service IDs, including the account owner
         * NOT_RESTRICTED - all members of an account can create service IDs
         * NOT_SET - to 'unset' a previous set value.
:param str restrict_user_list_visibility: (optional) Defines whether or not
       user visibility is access controlled. Valid values:
         * RESTRICTED - users can view only specific types of users in the
       account, such as those the user has invited to the account, or descendants
       of those users based on the classic infrastructure hierarchy
         * NOT_RESTRICTED - any user in the account can view other users from the
       Users page in IBM Cloud console.
:param str allowed_ip_addresses: (optional) Defines the IP addresses and
       subnets from which IAM tokens can be created for the account.
:param str mfa: (optional) MFA trait definitions as follows:
         * NONE - No MFA trait set
         * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
         * TOTP - For all non-federated IBMId users
         * TOTP4ALL - For all users
         * LEVEL1 - Email-based MFA for all users
         * LEVEL2 - TOTP-based MFA for all users
         * LEVEL3 - U2F MFA for all users.
:param List[AccountSettingsUserMFAResponse] user_mfa: (optional) List of
       users that are exempted from the MFA requirement of the account.
:param str session_expiration_in_seconds: (optional) Defines the session
       expiration in seconds for the account. Valid values:
         * Any whole number between between '900' and '86400'
         * NOT_SET - To unset account setting and use service default.
:param str session_invalidation_in_seconds: (optional) Defines the period
       of time in seconds in which a session will be invalidated due to
       inactivity. Valid values:
         * Any whole number between '900' and '7200'
         * NOT_SET - To unset account setting and use service default.
:param str max_sessions_per_identity: (optional) Defines the max allowed
       sessions per identity required by the account. Valid values:
         * Any whole number greater than 0
         * NOT_SET - To unset account setting and use service default.
:param str system_access_token_expiration_in_seconds: (optional) Defines
       the access token expiration in seconds. Valid values:
         * Any whole number between '900' and '3600'
         * NOT_SET - To unset account setting and use service default.
:param str system_refresh_token_expiration_in_seconds: (optional) Defines
       the refresh token expiration in seconds. Valid values:
         * Any whole number between '900' and '259200'
         * NOT_SET - To unset account setting and use service default.
Nr  )r$   rO  rP  rY  rQ  rR  rS  rT  rU  rV  rW  rX  s               r   r"   (AccountSettingsEffectiveSection.__init__  sF    N +E'/N,-J*$8! -J*/N,)B&9b6:d7r   r  c                 ~   0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S5      =nb)  U V	s/ s H  n	[        R                  U	5      PM     sn	US'   UR                  S5      =n
b  XS'   UR                  S5      =nb  XS'   UR                  S	5      =nb  XS	'   UR                  S
5      =n b  XS
'   UR                  S5      =n b  XS'   U " S0 UD6$ s  sn	f )KInitialize a AccountSettingsEffectiveSection object from a json dictionary.rO  rP  rY  rQ  rR  rS  rT  rU  rV  rW  rX  rg   )rC   r  r  )r   r  r  rO  rP  rY  rQ  rR  rS  r^   rT  rU  rV  rW  rX  s                  r   r  )AccountSettingsEffectiveSection.from_dictd  s    */))4P*QQ&^1K-./4yy9Z/[[+h6U23-2YY7V-WW)d4Q01$)II.D$EE R+?'(99U##C0K		*--H:U]^U]PQ > H H KU]^D-2YY7V-WW)d4Q01/4yy9Z/[[+h6U23).3N)OO%\0I,-9>Cn9oo5 Aj<=:?))Dp:qq6 Bl=>{T{  _s   D:c                 $    U R                  U5      $ )r  r  r  s     r   r  *AccountSettingsEffectiveSection._from_dict  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S	5      (       a  U R                  b  U R                  US	'   [        U S
5      (       a  U R                  b  U R                  US
'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  rO  rP  rY  rQ  rR  rS  rT  rU  rV  rW  rX  )r  rO  rP  rY  rQ  rR  rS  r  rj   r  r  rT  rU  rV  rW  rX  r  s       r   r  'AccountSettingsEffectiveSection.to_dict  s   45664;Z;Z;f262Q2QE./4:;;@d@d@p7;7[7[E344899d>`>`>l595W5WE124/00T5N5N5Z,0,E,EE()4DHH$888E%L4$$)BM]]a&&!((+!((5	 #
 !.*4899d>`>`>l595W5WE124:;;@d@d@p7;7[7[E344455$:X:X:d151O1OE-.DEFF>>JAEAoAoE=>DFGG??KBFBqBqE>?r   c                 "    U R                  5       $ r  r  r  s    r   r  (AccountSettingsEffectiveSection._to_dict  r  r   c                 H    [         R                  " U R                  5       SS9$ )zFReturn a `str` version of this AccountSettingsEffectiveSection object.r  r  r  r  s    r   r  'AccountSettingsEffectiveSection.__str__  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  &AccountSettingsEffectiveSection.__eq__  r  r   c                     X:X  + $ r  rg   r  s     r   r  &AccountSettingsEffectiveSection.__ne__  r  r   c                   $    \ rS rSrSrSrSrSrSrg);AccountSettingsEffectiveSection.RestrictCreateServiceIdEnumi  r  r  r  r  rg   Nr  rg   r   r   r  r    r  r   r  c                   $    \ rS rSrSrSrSrSrSrg)@AccountSettingsEffectiveSection.RestrictCreatePlatformApikeyEnumi  r  r  r  r  rg   Nr  rg   r   r   r  r    r  r   r  c                        \ rS rSrSrSrSrSrg)>AccountSettingsEffectiveSection.RestrictUserListVisibilityEnumi    
Defines whether or not user visibility is access controlled. Valid values:
  * RESTRICTED - users can view only specific types of users in the account, such
as those the user has invited to the account, or descendants of those users based
on the classic infrastructure hierarchy
  * NOT_RESTRICTED - any user in the account can view other users from the Users
page in IBM Cloud console.
r  r  rg   Nr  r  r  r  r  r  r  r  rg   r   r   r  r        	 *!
r   r  c                   4    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg)'AccountSettingsEffectiveSection.MfaEnumi  r  r  r  r  r  r  r  r  rg   Nr  rg   r   r   r  r#    r  r   r  )rQ  rV  rR  rP  rO  rY  rT  rU  rW  rX  rS  )r  r  r  r  r  r   r  r   r"   r  r   r  r  r  r  r  r  r  r  r   r  r  r  r  r  rg   r   r   r  r    s   7x 599=7;.2!EI7;9=37CGDHQe %-SMQe *2#	Qe
 (0}Qe 'smQe c]Qe 4 @ABQe (0}Qe *2#Qe $,C=Qe 4<C=Qe 5=SMQe 
Qef d 'H  > $ $% %N4 4/= /$ /!= !$ !c4 3 "d "#t r   r  c            #       `   \ rS rSrSrSSS.S\S\S\S\S	\S
\S\S\S\S\S\S\S\S   S\S   S\S   S\\S      SS4"S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S  jrS!S S\4S" jrS!S S\4S# jr " S$ S%\\5      r " S& S'\\5      r " S( S)\\5      r " S* S+\\5      rS,rg)-AccountSettingsResponsei  a  
Input body parameters for the Account Settings REST request.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param str account_id: Unique ID of the account.
:param str entity_tag: Version of the account settings.
:param List[EnityHistoryRecord] history: (optional) History of the Account
      Settings.
:param str restrict_create_service_id: Defines whether or not creating the
      resource is access controlled. Valid values:
        * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM
      Identity Service can create service IDs, including the account owner
        * NOT_RESTRICTED - all members of an account can create service IDs
        * NOT_SET - to 'unset' a previous set value.
:param str restrict_create_platform_apikey: Defines whether or not creating the
      resource is access controlled. Valid values:
        * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM
      Identity Service can create service IDs, including the account owner
        * NOT_RESTRICTED - all members of an account can create service IDs
        * NOT_SET - to 'unset' a previous set value.
:param str allowed_ip_addresses: Defines the IP addresses and subnets from which
      IAM tokens can be created for the account.
:param str mfa: MFA trait definitions as follows:
        * NONE - No MFA trait set
        * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
        * TOTP - For all non-federated IBMId users
        * TOTP4ALL - For all users
        * LEVEL1 - Email-based MFA for all users
        * LEVEL2 - TOTP-based MFA for all users
        * LEVEL3 - U2F MFA for all users.
:param str session_expiration_in_seconds: Defines the session expiration in
      seconds for the account. Valid values:
        * Any whole number between between '900' and '86400'
        * NOT_SET - To unset account setting and use service default.
:param str session_invalidation_in_seconds: Defines the period of time in
      seconds in which a session will be invalidated due to inactivity. Valid values:
        * Any whole number between '900' and '7200'
        * NOT_SET - To unset account setting and use service default.
:param str max_sessions_per_identity: Defines the max allowed sessions per
      identity required by the account. Valid values:
        * Any whole number greater than 0
        * NOT_SET - To unset account setting and use service default.
:param str system_access_token_expiration_in_seconds: Defines the access token
      expiration in seconds. Valid values:
        * Any whole number between '900' and '3600'
        * NOT_SET - To unset account setting and use service default.
:param str system_refresh_token_expiration_in_seconds: Defines the refresh token
      expiration in seconds. Valid values:
        * Any whole number between '900' and '259200'
        * NOT_SET - To unset account setting and use service default.
:param str restrict_user_list_visibility: Defines whether or not user visibility
      is access controlled. Valid values:
        * RESTRICTED - users can view only specific types of users in the account,
      such as those the user has invited to the account, or descendants of those users
      based on the classic infrastructure hierarchy
        * NOT_RESTRICTED - any user in the account can view other users from the Users
      page in IBM Cloud console.
:param List[AccountSettingsUserMFAResponse] user_mfa: List of users that are
      exempted from the MFA requirement of the account.
:param List[AccountSettingsUserDomainRestriction] restrict_user_domains: Defines
      if account invitations are restricted to specified domains. To remove an entry
      for a realm_id, perform an update (PUT) request with only the realm_id set.
N)r   historyr'   
entity_tagrO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  r  rZ  r\  r   r   r&  EnityHistoryRecordr   c                    Xl         Xl        X l        UU l        X0l        X@l        XPl        X`l        Xpl        Xl	        Xl
        Xl        Xl        Xl        Xl        Xl        g)a  
Initialize a AccountSettingsResponse object.

:param str account_id: Unique ID of the account.
:param str entity_tag: Version of the account settings.
:param str restrict_create_service_id: Defines whether or not creating the
       resource is access controlled. Valid values:
         * RESTRICTED - only users assigned the 'Service ID creator' role on the
       IAM Identity Service can create service IDs, including the account owner
         * NOT_RESTRICTED - all members of an account can create service IDs
         * NOT_SET - to 'unset' a previous set value.
:param str restrict_create_platform_apikey: Defines whether or not creating
       the resource is access controlled. Valid values:
         * RESTRICTED - only users assigned the 'Service ID creator' role on the
       IAM Identity Service can create service IDs, including the account owner
         * NOT_RESTRICTED - all members of an account can create service IDs
         * NOT_SET - to 'unset' a previous set value.
:param str allowed_ip_addresses: Defines the IP addresses and subnets from
       which IAM tokens can be created for the account.
:param str mfa: MFA trait definitions as follows:
         * NONE - No MFA trait set
         * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
         * TOTP - For all non-federated IBMId users
         * TOTP4ALL - For all users
         * LEVEL1 - Email-based MFA for all users
         * LEVEL2 - TOTP-based MFA for all users
         * LEVEL3 - U2F MFA for all users.
:param str session_expiration_in_seconds: Defines the session expiration in
       seconds for the account. Valid values:
         * Any whole number between between '900' and '86400'
         * NOT_SET - To unset account setting and use service default.
:param str session_invalidation_in_seconds: Defines the period of time in
       seconds in which a session will be invalidated due to inactivity. Valid
       values:
         * Any whole number between '900' and '7200'
         * NOT_SET - To unset account setting and use service default.
:param str max_sessions_per_identity: Defines the max allowed sessions per
       identity required by the account. Valid values:
         * Any whole number greater than 0
         * NOT_SET - To unset account setting and use service default.
:param str system_access_token_expiration_in_seconds: Defines the access
       token expiration in seconds. Valid values:
         * Any whole number between '900' and '3600'
         * NOT_SET - To unset account setting and use service default.
:param str system_refresh_token_expiration_in_seconds: Defines the refresh
       token expiration in seconds. Valid values:
         * Any whole number between '900' and '259200'
         * NOT_SET - To unset account setting and use service default.
:param str restrict_user_list_visibility: Defines whether or not user
       visibility is access controlled. Valid values:
         * RESTRICTED - users can view only specific types of users in the
       account, such as those the user has invited to the account, or descendants
       of those users based on the classic infrastructure hierarchy
         * NOT_RESTRICTED - any user in the account can view other users from the
       Users page in IBM Cloud console.
:param List[AccountSettingsUserMFAResponse] user_mfa: List of users that
       are exempted from the MFA requirement of the account.
:param List[AccountSettingsUserDomainRestriction] restrict_user_domains:
       Defines if account invitations are restricted to specified domains. To
       remove an entry for a realm_id, perform an update (PUT) request with only
       the realm_id set.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param List[EnityHistoryRecord] history: (optional) History of the Account
       Settings.
N)r   r'   r'  r&  rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  rZ  )r$   r'   r'  rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  rZ  r   r&  s                    r   r"    AccountSettingsResponse.__init__@  sa    l $$*D'/N,$8!-J*/N,)B&9b6:d7-J* %:"r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   UR                  S5      =nb  XS'   O[        S5      eUR                  S	5      =n	b  XS	'   O[        S
5      eUR                  S5      =n
b  XS'   O[        S5      eUR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  XS'   O[        S5      eUR                  S5      =n b  XS'   O[        S5      eUR                  S5      =n b  UUS'   O[        S5      eUR                  S5      =nb  UUS'   O[        S5      eUR                  S5      =nb*  U Vs/ s H  n[
        R                  U5      PM     snUS'   O[        S5      eUR                  S5      =nb*  U Vs/ s H  n[        R                  U5      PM     snUS'   O[        S5      eU " S0 UD6$ s  snf s  snf s  snf ) CInitialize a AccountSettingsResponse object from a json dictionary.r   r'   zJRequired property 'account_id' not present in AccountSettingsResponse JSONr'  zJRequired property 'entity_tag' not present in AccountSettingsResponse JSONr&  rO  zZRequired property 'restrict_create_service_id' not present in AccountSettingsResponse JSONrP  z_Required property 'restrict_create_platform_apikey' not present in AccountSettingsResponse JSONrQ  zTRequired property 'allowed_ip_addresses' not present in AccountSettingsResponse JSONrR  zCRequired property 'mfa' not present in AccountSettingsResponse JSONrT  z]Required property 'session_expiration_in_seconds' not present in AccountSettingsResponse JSONrU  z_Required property 'session_invalidation_in_seconds' not present in AccountSettingsResponse JSONrV  zYRequired property 'max_sessions_per_identity' not present in AccountSettingsResponse JSONrW  ziRequired property 'system_access_token_expiration_in_seconds' not present in AccountSettingsResponse JSONrX  zjRequired property 'system_refresh_token_expiration_in_seconds' not present in AccountSettingsResponse JSONrY  z]Required property 'restrict_user_list_visibility' not present in AccountSettingsResponse JSONrS  zHRequired property 'user_mfa' not present in AccountSettingsResponse JSONrZ  zURequired property 'restrict_user_domains' not present in AccountSettingsResponse JSONrg   )rC   r   r  rY   r(  r  r\  )r   r  r  r   r'   r'  r&  r^   rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  rZ  s                       r   r  !AccountSettingsResponse.from_dict  sa    yy++G8-77@DO))L11J>!+kll))L11J>!+kllyy++G8HOP11;;A>PDO*/))4P*QQ&^1K-.n  05yy9Z/[[+h6U23s  %*II.D$EE R+?'(uvv99U##C0Kdee-2YY7V-WW)d4Q01q  05yy9Z/[[+h6U23s  */3N)OO%\0I,-m  :?Cn9oo5 Aj<=}  ;@))Dp:qq6 BlD=>~  .3YY7V-WW)d4QD01q  		*--H:U]^U]PQ > H H KU]^Dijj%*YY/F%GG!TK`-K`a4>>qAK`-D() vww{T{O Q|  _-s   J:8J?Kc                 $    U R                  U5      $ )r,  r  r  s     r   r  "AccountSettingsResponse._from_dict  r  r   c                 
   0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S	5      (       a  U R                  b  U R                  US	'   [        U S
5      (       a  U R                  b  U R                  US
'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                   b  U R                   US'   [        U S5      (       a  U R"                  b  U R"                  US'   [        U S5      (       a  U R$                  b  U R$                  US'   [        U S5      (       am  U R&                  b`  / nU R&                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     XAS'   [        U S5      (       am  U R(                  b`  / nU R(                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     XQS'   U$ )r  r   r'   r'  r&  rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  rZ  )r  r   r  rj   r  r'   r'  r&  r  rO  rP  rQ  rR  rT  rU  rV  rW  rX  rY  rS  rZ  )r$   r  history_listr^   r  restrict_user_domains_lists         r   r  AccountSettingsResponse.to_dict  sm   4##(@$,,--#'<<i #'<<#7#7#9i 4&&4??+F"&//E,4&&4??+F"&//E,4##(@L\\a&& ''* ''		4	 "
  ,)45664;Z;Z;f262Q2QE./4:;;@d@d@p7;7[7[E344/00T5N5N5Z,0,E,EE()4DHH$888E%L4899d>`>`>l595W5WE124:;;@d@d@p7;7[7[E344455$:X:X:d151O1OE-.DEFF>>JAEAoAoE=>DFGG??KBFBqBqE>?4899d>`>`>l595W5WE124$$)BM]]a&&!((+!((5	 #
 !.*4011d6P6P6\)+&//a&&.55a8.55aiikB	 0
 .H)*r   c                 "    U R                  5       $ r  r  r  s    r   r   AccountSettingsResponse._to_dictD  r  r   c                 H    [         R                  " U R                  5       SS9$ )z>Return a `str` version of this AccountSettingsResponse object.r  r  r  r  s    r   r  AccountSettingsResponse.__str__H  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  AccountSettingsResponse.__eq__L  r  r   c                     X:X  + $ r  rg   r  s     r   r  AccountSettingsResponse.__ne__R  r  r   c                   $    \ rS rSrSrSrSrSrSrg)3AccountSettingsResponse.RestrictCreateServiceIdEnumiV  r  r  r  r  rg   Nr  rg   r   r   r  r=  V  r  r   r  c                   $    \ rS rSrSrSrSrSrSrg)8AccountSettingsResponse.RestrictCreatePlatformApikeyEnumic  r  r  r  r  rg   Nr  rg   r   r   r  r?  c  r  r   r  c                   4    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg)AccountSettingsResponse.MfaEnumip  r  r  r  r  r  r  r  r  rg   Nr  rg   r   r   r  rA  p  r  r   r  c                        \ rS rSrSrSrSrSrg)6AccountSettingsResponse.RestrictUserListVisibilityEnumi  r  r  r  rg   Nr   rg   r   r   r  rC    r!  r   r  )r'   rQ  r   r'  r&  rV  rR  rP  rO  rZ  rY  rT  rU  rW  rX  rS  )r  r  r  r  r  r  r   r   r"   r  r   r  r  r  r  r  r  r  r  r   r  r  r  r  r  rg   r   r   r%  r%    s   ?d 048<%e;e; e; %(	e;
 *-e; "e; e; (+e; *-e; $'e; 47e; 58e; (+e; 78e;  $$JKe;" +,#e;$ $345%e;& 
'e;N Ud U'@ U Un $ $> >@4 4/5 /$ /!5 !$ !c4 3 #t ("d "r   r%  c                       \ rS rSrSrSSSSSSS.S\S   S\S   S	\\   S
\\   S\\   S\\   S\\   SS4S jjr	\
S\SS 4S j5       r\
S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)AccountSettingsTemplateListi  a  
AccountSettingsTemplateList.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
      'previous' property is not part of the response no previous page is available.
:param str next: (optional) Link to the next available page. If 'next' property
      is not part of the response no next page is available.
:param List[AccountSettingsTemplateResponse] account_settings_templates: List of
      account settings templates based on the query paramters and the page size. The
      account_settings_templates array is always part of the response but might be
      empty depending on the query parameter values provided.
Nr   offsetr  firstpreviousnextaccount_settings_templatesAccountSettingsTemplateResponser   r   rG  r  rH  rI  rJ  r   c                X    X l         X0l        X@l        XPl        X`l        Xpl        Xl        g)a  
Initialize a AccountSettingsTemplateList object.

:param List[AccountSettingsTemplateResponse] account_settings_templates:
       List of account settings templates based on the query paramters and the
       page size. The account_settings_templates array is always part of the
       response but might be empty depending on the query parameter values
       provided.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
       'previous' property is not part of the response no previous page is
       available.
:param str next: (optional) Link to the next available page. If 'next'
       property is not part of the response no next page is available.
N)r   rG  r  rH  rI  rJ  rK  )r$   rK  r   rG  r  rH  rI  rJ  s           r   r"   $AccountSettingsTemplateList.__init__  s(    < 

 	*D'r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S5      =nb  XS'   UR                  S5      =n	b*  U	 V
s/ s H  n
[        R                  U
5      PM     sn
US'   O[	        S5      eU " S	0 UD6$ s  sn
f )
GInitialize a AccountSettingsTemplateList object from a json dictionary.r   rG  r  rH  rI  rJ  rK  z^Required property 'account_settings_templates' not present in AccountSettingsTemplateList JSONrg   )rC   r   r  rL  rY   )r   r  r  r   rG  r  rH  rI  rJ  rK  r^   s              r   r  %AccountSettingsTemplateList.from_dict  s     yy++G8-77@DOii))F6#NYYw''E4!MYYw''E4!M		*--H:'IIf%%D2L*/))4P*QQ&^F`2F`/99!<F`2D-. r  {T{2   ?C8c                 $    U R                  U5      $ )rP  r  r  s     r   r  &AccountSettingsTemplateList._from_dict  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S'   U$ )r  r   rG  r  rH  rI  rJ  rK  )r  r   r  rj   r  rG  r  rH  rI  rJ  rK  r  )r$   r  account_settings_templates_listr^   s       r   r  #AccountSettingsTemplateList.to_dict  sr   4##(@$,,--#'<<i #'<<#7#7#9i 4""t{{'>"kkE(O4!!djj&<!ZZE'N4!!djj&<!ZZE'N4$$)B $E*4  TYY%: IIE&M45664;Z;Z;f.0+44a&&3::1=3::199;G	 5
 3R./r   c                 "    U R                  5       $ r  r  r  s    r   r  $AccountSettingsTemplateList._to_dict  r  r   c                 H    [         R                  " U R                  5       SS9$ )zBReturn a `str` version of this AccountSettingsTemplateList object.r  r  r  r  s    r   r  #AccountSettingsTemplateList.__str__
  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  "AccountSettingsTemplateList.__eq__  r  r   c                     X:X  + $ r  rg   r  s     r   r  "AccountSettingsTemplateList.__ne__  r  r   )rK  r   rH  r  rJ  rG  rI  r  r  r  r  r  r   r   r  r  r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   rE  rE    s   , 04 $##"&"$E$()J$K$E +,	$E
 $E }$E }$E 3-$E sm$E 
$EL d 'D  2 $ $ 84 4/9 /d /!9 !d !r   rE  c                      \ rS rSrSrSSSSSSS.S\S\S\S\S	\S
SS\S\S\\   S\\	S      S\\   S\\   S\\   S\\   SS4S jjr
\S\SS 4S j5       r\S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S jrS rg)!rL  i  a  
Response body format for account settings template REST requests.

:param str id: ID of the the template.
:param int version: Version of the the template.
:param str account_id: ID of the account where the template resides.
:param str name: The name of the trusted profile template. This is visible only
      in the enterprise account.
:param str description: (optional) The description of the trusted profile
      template. Describe the template for enterprise account users.
:param bool committed: Committed flag determines if the template is ready for
      assignment.
:param TemplateAccountSettings account_settings: Input body parameters for the
      Account Settings REST request.
:param List[EnityHistoryRecord] history: (optional) History of the Template.
:param str entity_tag: Entity tag for this templateId-version combination.
:param str crn: Cloud resource name.
:param str created_at: (optional) Template Created At.
:param str created_by_id: (optional) IAMid of the creator.
:param str last_modified_at: (optional) Template last modified at.
:param str last_modified_by_id: (optional) IAMid of the identity that made the
      latest modification.
N)rK   r&  rU  created_by_idrV  last_modified_by_idrb   r  r'   r)   	committedr  r  r'  r  rK   r&  r(  rU  rb  rV  rc  r   c	                    Xl         X l        X0l        X@l        Xl        XPl        X`l        Xl        Xpl        Xl	        Xl
        Xl        Xl        Xl        g)a  
Initialize a AccountSettingsTemplateResponse object.

:param str id: ID of the the template.
:param int version: Version of the the template.
:param str account_id: ID of the account where the template resides.
:param str name: The name of the trusted profile template. This is visible
       only in the enterprise account.
:param bool committed: Committed flag determines if the template is ready
       for assignment.
:param TemplateAccountSettings account_settings: Input body parameters for
       the Account Settings REST request.
:param str entity_tag: Entity tag for this templateId-version combination.
:param str crn: Cloud resource name.
:param str description: (optional) The description of the trusted profile
       template. Describe the template for enterprise account users.
:param List[EnityHistoryRecord] history: (optional) History of the
       Template.
:param str created_at: (optional) Template Created At.
:param str created_by_id: (optional) IAMid of the creator.
:param str last_modified_at: (optional) Template last modified at.
:param str last_modified_by_id: (optional) IAMid of the identity that made
       the latest modification.
N)rb   r  r'   r)   rK   rd  r  r&  r'  r  rU  rb  rV  rc  )r$   rb   r  r'   r)   rd  r  r'  r  rK   r&  rU  rb  rV  rc  s                  r   r"   (AccountSettingsTemplateResponse.__init__2  sP    T $	&" 0$$* 0#6 r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eUR                  S	5      =nb  XrS	'   UR                  S
5      =nb  XS
'   O[        S5      eUR                  S5      =n	b  [        R                  U	5      US'   O[        S5      eUR                  S5      =n
b)  U
 Vs/ s H  n[        R                  U5      PM     snUS'   UR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  XS'   UR                  S5      =nb  XS'   UR                  S5      =nb  UUS'   UR                  S5      =nb  UUS'   U " S0 UD6$ s  snf )KInitialize a AccountSettingsTemplateResponse object from a json dictionary.rb   zJRequired property 'id' not present in AccountSettingsTemplateResponse JSONr  zORequired property 'version' not present in AccountSettingsTemplateResponse JSONr'   zRRequired property 'account_id' not present in AccountSettingsTemplateResponse JSONr)   zLRequired property 'name' not present in AccountSettingsTemplateResponse JSONrK   rd  zQRequired property 'committed' not present in AccountSettingsTemplateResponse JSONr  zXRequired property 'account_settings' not present in AccountSettingsTemplateResponse JSONr&  r'  zRRequired property 'entity_tag' not present in AccountSettingsTemplateResponse JSONr  zKRequired property 'crn' not present in AccountSettingsTemplateResponse JSONrU  rb  rV  rc  rg   )rC   rY   r  r  r(  )r   r  r  rb   r  r'   r)   rK   rd  r  r&  r^   r'  r  rU  rb  rV  rc  s                     r   r  )AccountSettingsTemplateResponse.from_dictk  s;    ))D/!B.Jkllyy++G8%Opqq))L11J>!+sttIIf%%D2Lmnn 99]33K@"-;//I< )rss %		*< ==J'>'H'HIY'ZD#$l  yy++G8HOP11;;A>PDO))L11J>!+stt99U##C0Klmm))L11J>!+"YY77MD$1! %		*< ==J'7D#$#(99-B#CCP*=D&'{T{# Qs   G6c                 $    U R                  U5      $ )rh  r  r  s     r   r  *AccountSettingsTemplateResponse._from_dict  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R                  5       US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   [        U S	5      (       a  U R                  b  U R                  US	'   [        U S
5      (       a  U R                  b  U R                  US
'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                   b  U R                   US'   [        U S5      (       a  U R"                  b  U R"                  US'   [        U S5      (       a  U R$                  b  U R$                  US'   U$ )r  rb   r  r'   r)   rK   rd  r  r&  r'  r  rU  rb  rV  rc  )r  rb   r  r'   r)   rK   rd  r  r  rj   r  r&  r  r'  r  rU  rb  rV  rc  r$   r  r1  r^   s       r   r  'AccountSettingsTemplateResponse.to_dict  s   4477#6''E$K4##(@#||E)4&&4??+F"&//E,4  TYY%: IIE&M4''D,<,<,H#'#3#3E- 4%%$..*D!%E+4+,,1F1F1R$//66,0,A,A(),0,A,A,I,I,K()4##(@L\\a&& ''* ''		4	 "
  ,)4&&4??+F"&//E,4DHH$888E%L4&&4??+F"&//E,4))d.@.@.L%)%7%7E/"4+,,1F1F1R(,(=(=E$%4.//D4L4L4X+/+C+CE'(r   c                 "    U R                  5       $ r  r  r  s    r   r  (AccountSettingsTemplateResponse._to_dict  r  r   c                 H    [         R                  " U R                  5       SS9$ )zFReturn a `str` version of this AccountSettingsTemplateResponse object.r  r  r  r  s    r   r  'AccountSettingsTemplateResponse.__str__  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  &AccountSettingsTemplateResponse.__eq__  r  r   c                     X:X  + $ r  rg   r  s     r   r  &AccountSettingsTemplateResponse.__ne__  r  r   )r'   r  rd  rU  rb  r  rK   r'  r&  rb   rV  rc  r)   r  )r  r  r  r  r  r  r  r  r   r   r"   r  r   r  r  r  r  r  r  r  r  rg   r   r   rL  rL    sS   F &*8<$('+*.-1!7777 77 	77
 77 77 477 77 77 c]77 $34577 SM77  }77 #3-77  &c]!77" 
#77r 1d 1'H 1 1f $ $( (T4 4/= /$ /!= !$ !r   rL  c            	           \ rS rSrSrSSS.S\S\\\      S\\   SS4S	 jjr	\
S
\SS 4S j5       r\
S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r\  i  a  
Input body parameters for the Account Settings REST request.

:param str realm_id: The realm that the restrictions apply to.
:param List[str] invitation_email_allow_patterns: (optional) The list of allowed
      email patterns. Wildcard syntax is supported, '*' represents any sequence of
      zero or more characters in the string, except for '.' and '@'. The sequence ends
      if a '.' or '@' was found. '**' represents any sequence of zero or more
      characters in the string - without limit.
:param bool restrict_invitation: (optional) When true invites will only be
      possible to the domain patterns provided, otherwise invites are unrestricted.
N)invitation_email_allow_patternsrestrict_invitationrealm_idrx  ry  r   c                (    Xl         X l        X0l        g)a  
Initialize a AccountSettingsUserDomainRestriction object.

:param str realm_id: The realm that the restrictions apply to.
:param List[str] invitation_email_allow_patterns: (optional) The list of
       allowed email patterns. Wildcard syntax is supported, '*' represents any
       sequence of zero or more characters in the string, except for '.' and '@'.
       The sequence ends if a '.' or '@' was found. '**' represents any sequence
       of zero or more characters in the string - without limit.
:param bool restrict_invitation: (optional) When true invites will only be
       possible to the domain patterns provided, otherwise invites are
       unrestricted.
N)rz  rx  ry  )r$   rz  rx  ry  s       r   r"   -AccountSettingsUserDomainRestriction.__init__  s    ( !/N,#6 r   r  c                     0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   U " S0 UD6$ )PInitialize a AccountSettingsUserDomainRestriction object from a json dictionary.rz  zURequired property 'realm_id' not present in AccountSettingsUserDomainRestriction JSONrx  ry  rg   rC   rY   )r   r  r  rz  rx  ry  s         r   r  .AccountSettingsUserDomainRestriction.from_dict  s{     		*--H:'vww/4yy9Z/[[+h6U23#(99-B#CCP*=&'{T{r   c                 $    U R                  U5      $ )r~  r  r  s     r   r  /AccountSettingsUserDomainRestriction._from_dict  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  rz  rx  ry  )r  rz  rx  ry  r  s     r   r  ,AccountSettingsUserDomainRestriction.to_dict  s    4$$)B $E*4:;;@d@d@p7;7[7[E344.//D4L4L4X+/+C+CE'(r   c                 "    U R                  5       $ r  r  r  s    r   r  -AccountSettingsUserDomainRestriction._to_dict%  r  r   c                 H    [         R                  " U R                  5       SS9$ )zKReturn a `str` version of this AccountSettingsUserDomainRestriction object.r  r  r  r  s    r   r  ,AccountSettingsUserDomainRestriction.__str__)  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  +AccountSettingsUserDomainRestriction.__eq__-  r  r   c                     X:X  + $ r  rg   r  s     r   r  +AccountSettingsUserDomainRestriction.__ne__3  r  r   )rx  rz  ry  )r  r  r  r  r  r  r   r   r  r"   r  r   r  r  r  r  r  r  r  r  rg   r   r   r\  r\    s    " @D.277 *2$s))<	7
 &d^7 
70 d 'M   $ $	 	4 4/B /t /!B !t !r   r\  c                       \ rS rSrSrSSSSS.S\S\S\\   S\\   S	\\   S
\\   SS4S jjr\S\	SS 4S j5       r
\S 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jr " S S\\5      rSrg)r  i8  a  
AccountSettingsUserMFAResponse.

:param str iam_id: The iam_id of the user.
:param str mfa: MFA trait definitions as follows:
        * NONE - No MFA trait set
        * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
        * TOTP - For all non-federated IBMId users
        * TOTP4ALL - For all users
        * LEVEL1 - Email-based MFA for all users
        * LEVEL2 - TOTP-based MFA for all users
        * LEVEL3 - U2F MFA for all users.
:param str name: (optional) name of the user account.
:param str user_name: (optional) userName of the user.
:param str email: (optional) email of the user.
:param str description: (optional) optional description.
N)r)   	user_namer   rK   r   rR  r)   r  r   rK   r   c                L    Xl         X l        X0l        X@l        XPl        X`l        g)a  
Initialize a AccountSettingsUserMFAResponse object.

:param str iam_id: The iam_id of the user.
:param str mfa: MFA trait definitions as follows:
         * NONE - No MFA trait set
         * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
         * TOTP - For all non-federated IBMId users
         * TOTP4ALL - For all users
         * LEVEL1 - Email-based MFA for all users
         * LEVEL2 - TOTP-based MFA for all users
         * LEVEL3 - U2F MFA for all users.
:param str name: (optional) name of the user account.
:param str user_name: (optional) userName of the user.
:param str email: (optional) email of the user.
:param str description: (optional) optional description.
N)r   rR  r)   r  r   rK   )r$   r   rR  r)   r  r   rK   s          r   r"   'AccountSettingsUserMFAResponse.__init__K  s#    6 	"
&r   r  c                 f   0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S	5      =nb  XS	'   U " S
0 UD6$ )JInitialize a AccountSettingsUserMFAResponse object from a json dictionary.r   zMRequired property 'iam_id' not present in AccountSettingsUserMFAResponse JSONrR  zJRequired property 'mfa' not present in AccountSettingsUserMFAResponse JSONr)   userNamer  r   rK   rg   r  )	r   r  r  r   rR  r)   r  r   rK   s	            r   r  (AccountSettingsUserMFAResponse.from_dictm  s     ii))F6#Nnoo99U##C0KkllIIf%%D2L:..I; )YYw''E4!M 99]33K@"-{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  )AccountSettingsUserMFAResponse._from_dict  r  r   c                 &   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r   rR  r)   r  r  r   rK   )r  r   rR  r)   r  r   rK   r  s     r   r  &AccountSettingsUserMFAResponse.to_dict  s    4""t{{'>"kkE(O4DHH$888E%L4  TYY%: IIE&M4%%$..*D $E*4!!djj&<!ZZE'N4''D,<,<,H#'#3#3E- r   c                 "    U R                  5       $ r  r  r  s    r   r  'AccountSettingsUserMFAResponse._to_dict  r  r   c                 H    [         R                  " U R                  5       SS9$ )zEReturn a `str` version of this AccountSettingsUserMFAResponse object.r  r  r  r  s    r   r  &AccountSettingsUserMFAResponse.__str__  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  %AccountSettingsUserMFAResponse.__eq__  r  r   c                     X:X  + $ r  rg   r  s     r   r  %AccountSettingsUserMFAResponse.__ne__  r  r   c                   4    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg)&AccountSettingsUserMFAResponse.MfaEnumi  r  r  r  r  r  r  r  r  rg   Nr  rg   r   r   r  r    r  r   r  )rK   r   r   rR  r)   r  )r  r  r  r  r  r  r   r"   r  r   r  r  r  r  r  r  r  r  r   r  r  rg   r   r   r  r  8  s    . ##'#%) ' '  '
 sm ' C= ' } ' c] ' 
 'D d 'G  * $ $ "4 4/< / /!< ! !#t r   r  c            	           \ rS rSrSrSS.SSSSS	\S
   SS4S jjr\S\SS 4S j5       r	\S 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r  i  z
ActionControls.

:param ActionControlsIdentities identities: (optional)
:param ActionControlsRules rules:
:param ActionControlsPolicies policies:
Nr!  rulesActionControlsRulespoliciesActionControlsPoliciesr"  ActionControlsIdentitiesr   c                (    X0l         Xl        X l        g)z
Initialize a ActionControls object.

:param ActionControlsRules rules:
:param ActionControlsPolicies policies:
:param ActionControlsIdentities identities: (optional)
N)r"  r  r  )r$   r  r  r"  s       r   r"   ActionControls.__init__  s     %
 r   r  c                 N   0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  [        R                  U5      US'   O[	        S5      eUR                  S5      =nb  [
        R                  U5      US'   O[	        S5      eU " S0 UD6$ ):Initialize a ActionControls object from a json dictionary.r"  r  z<Required property 'rules' not present in ActionControls JSONr  z?Required property 'policies' not present in ActionControls JSONrg   )rC   r  r  r  rY   r  )r   r  r  r"  r  r  s         r   r  ActionControls.from_dict  s     ))L11J>!9!C!CJ!ODYYw''E4/99%@DM]^^		*--H:5??ID`aa{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  ActionControls._from_dict  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       aY  U R
                  bL  [        U R
                  [        5      (       a  U R
                  US'   OU R
                  R	                  5       US'   [        U S5      (       aZ  U R                  bM  [        U R                  [        5      (       a  U R                  US'   U$ U R                  R	                  5       US'   U$ )r  r"  r  r  )r  r"  r  rj   r  r  r  r  s     r   r  ActionControls.to_dict  s    4&&4??+F$//400&*ool#&*oo&=&=&?l#4!!djj&<$**d++!%g!%!3!3!5g4$$)B$--..$(MMj!  %)MM$9$9$;j!r   c                 "    U R                  5       $ r  r  r  s    r   r  ActionControls._to_dict  r  r   c                 H    [         R                  " U R                  5       SS9$ )z5Return a `str` version of this ActionControls object.r  r  r  r  s    r   r  ActionControls.__str__  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ActionControls.__eq__  r  r   c                     X:X  + $ r  rg   r  s     r   r  ActionControls.__ne__  r  r   )r"  r  r  )r  r  r  r  r  r   r"   r  r   r  r  r  r  r  r  r  r  r  r  rg   r   r   r  r    s     <@!$! +!
 78! 
!$ d '7   $ $ (4 4/, / /!, ! !r   r  c                       \ rS rSrSrS\S\SS4S jr\S\SS 4S	 j5       r	\S
 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r  i  zA
ActionControlsIdentities.

:param bool add:
:param bool remove:
addremover   Nc                     Xl         X l        g)zU
Initialize a ActionControlsIdentities object.

:param bool add:
:param bool remove:
Nr  r  r$   r  r  s      r   r"   !ActionControlsIdentities.__init__       r   r  c                     0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eU " S0 UD6$ )DInitialize a ActionControlsIdentities object from a json dictionary.r  zDRequired property 'add' not present in ActionControlsIdentities JSONr  zGRequired property 'remove' not present in ActionControlsIdentities JSONrg   r  r   r  r  r  r  s        r   r  "ActionControlsIdentities.from_dict-  sc     99U##C0Keffii))F6#Nhii{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  #ActionControlsIdentities._from_dict;  r  r   c                     0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ r  r  r  r  r  r  r  s     r   r   ActionControlsIdentities.to_dict@  R    4DHH$888E%L4""t{{'>"kkE(Or   c                 "    U R                  5       $ r  r  r  s    r   r  !ActionControlsIdentities._to_dictI  r  r   c                 H    [         R                  " U R                  5       SS9$ )z?Return a `str` version of this ActionControlsIdentities object.r  r  r  r  s    r   r   ActionControlsIdentities.__str__M  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ActionControlsIdentities.__eq__Q  r  r   c                     X:X  + $ r  rg   r  s     r   r  ActionControlsIdentities.__ne__W  r  r   r  r  rg   r   r   r  r    s      
	 d 'A   $ $ 4 4/6 /4 /!6 !4 !r   r  c                       \ rS rSrSrS\S\SS4S jr\S\SS 4S	 j5       r	\S
 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r  i\  z?
ActionControlsPolicies.

:param bool add:
:param bool remove:
r  r  r   Nc                     Xl         X l        g)zS
Initialize a ActionControlsPolicies object.

:param bool add:
:param bool remove:
Nr  r  s      r   r"   ActionControlsPolicies.__init__d  r  r   r  c                     0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eU " S0 UD6$ )BInitialize a ActionControlsPolicies object from a json dictionary.r  zBRequired property 'add' not present in ActionControlsPolicies JSONr  zERequired property 'remove' not present in ActionControlsPolicies JSONrg   r  r  s        r   r   ActionControlsPolicies.from_dictr  sc     99U##C0Kcddii))F6#Nfgg{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  !ActionControlsPolicies._from_dict  r  r   c                     0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ r  r  r  s     r   r  ActionControlsPolicies.to_dict  r  r   c                 "    U R                  5       $ r  r  r  s    r   r  ActionControlsPolicies._to_dict  r  r   c                 H    [         R                  " U R                  5       SS9$ )z=Return a `str` version of this ActionControlsPolicies object.r  r  r  r  s    r   r  ActionControlsPolicies.__str__  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ActionControlsPolicies.__eq__  r  r   c                     X:X  + $ r  rg   r  s     r   r  ActionControlsPolicies.__ne__  r  r   r  r  rg   r   r   r  r  \  s      
	 d '?   $ $ 4 4/4 / /!4 ! !r   r  c                       \ rS rSrSrS\S\SS4S jr\S\SS 4S	 j5       r	\S
 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r  i  z<
ActionControlsRules.

:param bool add:
:param bool remove:
r  r  r   Nc                     Xl         X l        g)zP
Initialize a ActionControlsRules object.

:param bool add:
:param bool remove:
Nr  r  s      r   r"   ActionControlsRules.__init__  r  r   r  c                     0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eU " S0 UD6$ )?Initialize a ActionControlsRules object from a json dictionary.r  z?Required property 'add' not present in ActionControlsRules JSONr  zBRequired property 'remove' not present in ActionControlsRules JSONrg   r  r  s        r   r  ActionControlsRules.from_dict  sc     99U##C0K`aaii))F6#Ncdd{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  ActionControlsRules._from_dict  r  r   c                     0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ r  r  r  s     r   r  ActionControlsRules.to_dict  r  r   c                 "    U R                  5       $ r  r  r  s    r   r  ActionControlsRules._to_dict  r  r   c                 H    [         R                  " U R                  5       SS9$ )z:Return a `str` version of this ActionControlsRules object.r  r  r  r  s    r   r  ActionControlsRules.__str__  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ActionControlsRules.__eq__  r  r   c                     X:X  + $ r  rg   r  s     r   r  ActionControlsRules.__ne__  r  r   r  r  rg   r   r   r  r    s      
	 d '<   $ $ 4 4/1 /d /!1 !d !r   r  c                       \ rS rSrSrSS.S\S\\   SS4S jjr\	S	\
SS 4S
 j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)Activityi  z
Activity.

:param str last_authn: (optional) Time when the entity was last authenticated.
:param int authn_count: Authentication count, number of times the entity was
      authenticated.
N)
last_authnauthn_countr  r   c                    X l         Xl        g)z
Initialize a Activity object.

:param int authn_count: Authentication count, number of times the entity
       was authenticated.
:param str last_authn: (optional) Time when the entity was last
       authenticated.
N)r  r  )r$   r  r  s      r   r"   Activity.__init__  s     %&r   r  c                     0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   O[        S5      eU " S0 UD6$ )4Initialize a Activity object from a json dictionary.r  r  z<Required property 'authn_count' not present in Activity JSONrg   r  )r   r  r  r  r  s        r   r  Activity.from_dict   sY     ))L11J>!+ 99]33K@"-]^^{T{r   c                 $    U R                  U5      $ )r   r  r  s     r   r  Activity._from_dict  r  r   c                     0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r  r  )r  r  r  r  s     r   r  Activity.to_dict  sX    4&&4??+F"&//E,4''D,<,<,H#'#3#3E- r   c                 "    U R                  5       $ r  r  r  s    r   r  Activity._to_dict  r  r   c                 H    [         R                  " U R                  5       SS9$ )z/Return a `str` version of this Activity object.r  r  r  r  s    r   r  Activity.__str__  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  Activity.__eq__"  r  r   c                     X:X  + $ r  rg   r  s     r   r  Activity.__ne__(  r  r   )r  r  )r  r  r  r  r  r  r   r  r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   r  r    s     %)	'' SM	'
 
'" 	d 	z 	 	 $ $ 4 4/J /4 /!J !4 !r   r  c            '       <   \ rS rSrSrSSSSSSSSSSS.
S\S\S\S\S	\S
\S\S\S\S   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\	S      S\S   SS4&S jjr
\S\SS 4S j5       r\S 5       rS\4S jrS  rS\4S! jrS"S S\4S# jrS"S S\4S$ jrS%rg)&ApiKeyi-  a+
  
Response body format for API key V1 REST requests.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param str id: Unique identifier of this API Key.
:param str entity_tag: (optional) Version of the API Key details object. You
      need to specify this value when updating the API key to avoid stale updates.
:param str crn: Cloud Resource Name of the item. Example Cloud Resource Name:
      'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::apikey:1234-9012-5678'.
:param bool locked: The API key cannot be changed if set to true.
:param bool disabled: (optional) Defines if API key is disabled, API key cannot
      be used if 'disabled' is set to true.
:param datetime created_at: (optional) If set contains a date time string of the
      creation date in ISO format.
:param str created_by: IAM ID of the user or service which created the API key.
:param datetime modified_at: (optional) If set contains a date time string of
      the last modification date in ISO format.
:param str name: Name of the API key. The name is not checked for uniqueness.
      Therefore multiple names with the same value can exist. Access is done via the
      UUID of the API key.
:param bool support_sessions: (optional) Defines whether you can manage CLI
      login sessions for the API key. When `true`, sessions are created and can be
      reviewed or revoked. When `false`, no sessions are tracked. To block access,
      delete or rotate the API key. Available only for user API keys.
:param str action_when_leaked: (optional) Defines the action to take when API
      key is leaked, valid values are 'none', 'disable' and 'delete'.
:param str description: (optional) The optional description of the API key. The
      'description' property is only available if a description was provided during a
      create of an API key.
:param str iam_id: The iam_id that this API key authenticates.
:param str account_id: ID of the account that this API key authenticates for.
:param str apikey: The API key value. This property only contains the API key
      value for the following cases: create an API key, update a service ID API key
      that stores the API key value as retrievable, or get a service ID API key that
      stores the API key value as retrievable. All other operations don't return the
      API key value, for example all user API key related operations, except for
      create, don't contain the API key value.
:param List[EnityHistoryRecord] history: (optional) History of the API key.
:param Activity activity: (optional)
N)
r   r'  disabledrU  modified_atr   r   rK   r&  activityrb   r  locked
created_byr)   r   r'   rM   r   r   r'  r  rU  r  r   r   rK   r&  r(  r  r  r   c	       
             Xl         Xl        Xl        X l        X0l        Xl        Xl        X@l        Xl        XPl	        Xl
        Xl        UU l        X`l        Xpl        Xl        UU l        UU l        g)aC
  
Initialize a ApiKey object.

:param str id: Unique identifier of this API Key.
:param str crn: Cloud Resource Name of the item. Example Cloud Resource
       Name:
       'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::apikey:1234-9012-5678'.
:param bool locked: The API key cannot be changed if set to true.
:param str created_by: IAM ID of the user or service which created the API
       key.
:param str name: Name of the API key. The name is not checked for
       uniqueness. Therefore multiple names with the same value can exist. Access
       is done via the UUID of the API key.
:param str iam_id: The iam_id that this API key authenticates.
:param str account_id: ID of the account that this API key authenticates
       for.
:param str apikey: The API key value. This property only contains the API
       key value for the following cases: create an API key, update a service ID
       API key that stores the API key value as retrievable, or get a service ID
       API key that stores the API key value as retrievable. All other operations
       don't return the API key value, for example all user API key related
       operations, except for create, don't contain the API key value.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param str entity_tag: (optional) Version of the API Key details object.
       You need to specify this value when updating the API key to avoid stale
       updates.
:param bool disabled: (optional) Defines if API key is disabled, API key
       cannot be used if 'disabled' is set to true.
:param datetime created_at: (optional) If set contains a date time string
       of the creation date in ISO format.
:param datetime modified_at: (optional) If set contains a date time string
       of the last modification date in ISO format.
:param bool support_sessions: (optional) Defines whether you can manage CLI
       login sessions for the API key. When `true`, sessions are created and can
       be reviewed or revoked. When `false`, no sessions are tracked. To block
       access, delete or rotate the API key. Available only for user API keys.
:param str action_when_leaked: (optional) Defines the action to take when
       API key is leaked, valid values are 'none', 'disable' and 'delete'.
:param str description: (optional) The optional description of the API key.
       The 'description' property is only available if a description was provided
       during a create of an API key.
:param List[EnityHistoryRecord] history: (optional) History of the API key.
:param Activity activity: (optional)
N)r   rb   r'  r  r  r  rU  r  r  r)   r   r   rK   r   r'   rM   r&  r  )r$   rb   r  r  r  r)   r   r'   rM   r   r'  r  rU  r  r   r   rK   r&  r  s                      r   r"   ApiKey.__init__X  si    F $ $$&	 0"4&$ r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   O[        S5      eUR                  S5      =nb  XrS'   O[        S5      eUR                  S	5      =nb  XS	'   UR                  S
5      =n	b  [	        U	5      US
'   UR                  S5      =n
b  XS'   O[        S5      eUR                  S5      =nb  [	        U5      US'   UR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  XS'   UR                  S5      =nb  XS'   UR                  S5      =nb  XS'   UR                  S5      =nb  UUS'   O[        S5      eUR                  S5      =nb  UUS'   O[        S5      eUR                  S5      =nb  UUS'   O[        S5      eUR                  S5      =nb)  U Vs/ s H  n[
        R                  U5      PM     snUS'   UR                  S5      =nb  [        R                  U5      US'   U " S0 UD6$ s  snf )2Initialize a ApiKey object from a json dictionary.r   rb   z1Required property 'id' not present in ApiKey JSONr'  r  z2Required property 'crn' not present in ApiKey JSONr  z5Required property 'locked' not present in ApiKey JSONr  rU  r  z9Required property 'created_by' not present in ApiKey JSONr  r)   z3Required property 'name' not present in ApiKey JSONr   r   rK   r   z5Required property 'iam_id' not present in ApiKey JSONr'   z9Required property 'account_id' not present in ApiKey JSONrM   z5Required property 'apikey' not present in ApiKey JSONr&  r  rg   rC   r   r  rY   r   r(  r  )r   r  r  r   rb   r'  r  r  r  rU  r  r  r)   r   r   rK   r   r'   rM   r&  r^   r  s                         r   r  ApiKey.from_dict  s    yy++G8-77@DO))D/!B.JRSS))L11J>!+99U##C0KSTTii))F6#NVWW		*--H:'))L11J>!3J!?D))L11J>!+Z[[ 99]33K@"4["ADIIf%%D2LTUU %		*< ==J'7#$"')),@"AAN);%& 99]33K@"-ii))F6#DNVWW))L11J>!+DZ[[ii))F6#DNVWWyy++G8HOP11;;A>PDO		*--H:'11(;D{T{ Qs   &I?c                 $    U R                  U5      $ )r  r  r  s     r   r  ApiKey._from_dict  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a%  U R                  b  [        U R                  5      US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S	5      (       a%  U R                  b  [        U R                  5      US	'   [        U S
5      (       a  U R                  b  U R                  US
'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                   b  U R                   US'   [        U S5      (       a  U R"                  b  U R"                  US'   [        U S5      (       a  U R$                  b  U R$                  US'   [        U S5      (       a  U R&                  b  U R&                  US'   [        U S5      (       a  U R(                  b  U R(                  US'   [        U S5      (       am  U R*                  b`  / nU R*                   HJ  n[        U[        5      (       a  UR-                  U5        M+  UR-                  UR	                  5       5        ML     X!S'   [        U S5      (       aZ  U R.                  bM  [        U R.                  [        5      (       a  U R.                  US'   U$ U R.                  R	                  5       US'   U$ )r  r   rb   r'  r  r  r  rU  r  r  r)   r   r   rK   r   r'   rM   r&  r  )r  r   r  rj   r  rb   r'  r  r  r  rU  r   r  r  r)   r   r   rK   r   r'   rM   r&  r  r  rm  s       r   r  ApiKey.to_dict  sC   4##(@$,,--#'<<i #'<<#7#7#9i 4477#6''E$K4&&4??+F"&//E,4DHH$888E%L4""t{{'>"kkE(O4$$)B $E*4&&4??+F"4T__"EE,4&&4??+F"&//E,4''D,<,<,H#5d6F6F#GE- 4  TYY%: IIE&M4+,,1F1F1R(,(=(=E$%4-..43J3J3V*.*A*AE&'4''D,<,<,H#'#3#3E- 4""t{{'>"kkE(O4&&4??+F"&//E,4""t{{'>"kkE(O4##(@L\\a&& ''* ''		4	 "
  ,)4$$)B$--..$(MMj!  %)MM$9$9$;j!r   c                 "    U R                  5       $ r  r  r  s    r   r  ApiKey._to_dict"  r  r   c                 H    [         R                  " U R                  5       SS9$ )z-Return a `str` version of this ApiKey object.r  r  r  r  s    r   r  ApiKey.__str__&  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ApiKey.__eq__*  r  r   c                     X:X  + $ r  rg   r  s     r   r  ApiKey.__ne__0  r  r   )r'   r   r  rM   r   rU  r  r  rK   r  r'  r&  r   rb   r  r  r)   r   )r  r  r  r  r  r  r  r   r   r   r"   r  r   r  r  r  r  r  r  r  r  rg   r   r   r  r  -  s   (j 04$(#')-*.+/,0%)8<)-)T!T! T! 	T!
 T! T! T! T! T! +,T! SMT! 4.T! X&T! h'T!  #4.!T!" %SM#T!$ c]%T!& $345'T!( :&)T!* 
+T!l 7d 7x 7 7r $ $3 3j4 4/H / /!H ! !r   r  c                       \ rS rSrSrSSSS.S\S\\   S\\   S\\   S	S4
S
 jjr\	S\
S	S 4S j5       r\	S 5       rS	\
4S jrS rS	\4S jrSS S	\4S jrSS S	\4S jrSrg)rO   i5  a  
Parameters for the API key in the Create service Id V1 REST request.

:param str name: Name of the API key. The name is not checked for uniqueness.
      Therefore multiple names with the same value can exist. Access is done via the
      UUID of the API key.
:param str description: (optional) The optional description of the API key. The
      'description' property is only available if a description was provided during a
      create of an API key.
:param str apikey: (optional) You can optionally passthrough the API key value
      for this API key. If passed, a minimum length validation of 32 characters for
      that apiKey value is done, i.e. the value can contain any characters and can
      even be non-URL safe, but the minimum length requirement must be met. If
      omitted, the API key management will create an URL safe opaque API key value.
      The value of the API key is checked for uniqueness. Ensure enough variations
      when passing in this value.
:param bool store_value: (optional) Send true or false to set whether the API
      key value is retrievable in the future by using the Get details of an API key
      request. If you create an API key for a user, you must specify `false` or omit
      the value. We don't allow storing of API keys for users.
N)rK   rM   r   r)   rK   rM   r   r   c                4    Xl         X l        X0l        X@l        g)a  
Initialize a ApiKeyInsideCreateServiceIdRequest object.

:param str name: Name of the API key. The name is not checked for
       uniqueness. Therefore multiple names with the same value can exist. Access
       is done via the UUID of the API key.
:param str description: (optional) The optional description of the API key.
       The 'description' property is only available if a description was provided
       during a create of an API key.
:param str apikey: (optional) You can optionally passthrough the API key
       value for this API key. If passed, a minimum length validation of 32
       characters for that apiKey value is done, i.e. the value can contain any
       characters and can even be non-URL safe, but the minimum length requirement
       must be met. If omitted, the API key management will create an URL safe
       opaque API key value. The value of the API key is checked for uniqueness.
       Ensure enough variations when passing in this value.
:param bool store_value: (optional) Send true or false to set whether the
       API key value is retrievable in the future by using the Get details of an
       API key request. If you create an API key for a user, you must specify
       `false` or omit the value. We don't allow storing of API keys for users.
N)r)   rK   rM   r   )r$   r)   rK   rM   r   s        r   r"   +ApiKeyInsideCreateServiceIdRequest.__init__L  s    : 	&&r   r  c                     0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   U " S0 UD6$ )NInitialize a ApiKeyInsideCreateServiceIdRequest object from a json dictionary.r)   zORequired property 'name' not present in ApiKeyInsideCreateServiceIdRequest JSONrK   rM   r   rg   r  )r   r  r  r)   rK   rM   r   s          r   r  ,ApiKeyInsideCreateServiceIdRequest.from_dictn  s     IIf%%D2Lpqq 99]33K@"-ii))F6#N 99]33K@"-{T{r   c                 $    U R                  U5      $ )r+  r  r  s     r   r  -ApiKeyInsideCreateServiceIdRequest._from_dict~  r  r   c                 r   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r)   rK   rM   r   )r  r)   rK   rM   r   r  s     r   r  *ApiKeyInsideCreateServiceIdRequest.to_dict  s    4  TYY%: IIE&M4''D,<,<,H#'#3#3E- 4""t{{'>"kkE(O4''D,<,<,H#'#3#3E- r   c                 "    U R                  5       $ r  r  r  s    r   r  +ApiKeyInsideCreateServiceIdRequest._to_dict  r  r   c                 H    [         R                  " U R                  5       SS9$ )zIReturn a `str` version of this ApiKeyInsideCreateServiceIdRequest object.r  r  r  r  s    r   r  *ApiKeyInsideCreateServiceIdRequest.__str__  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  )ApiKeyInsideCreateServiceIdRequest.__eq__  r  r   c                     X:X  + $ r  rg   r  s     r   r  )ApiKeyInsideCreateServiceIdRequest.__ne__  r  r   )rM   rK   r)   r   )r  r  r  r  r  r  r   r  r"   r  r   r  r  r  r  r  r  r  r  rg   r   r   rO   rO   5  s    4 &* $&* ' ' c]	 '
  ' d^ ' 
 'D d 'K   $ $ 4 4/@ /T /!@ !T !r   rO   c                       \ rS rSrSrSSSSSSS.S\S   S\S   S	\\   S
\\   S\\   S\\   S\\   SS4S jjr	\
S\SS 4S j5       r\
S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)
ApiKeyListi  a  
Response body format for the List API keys V1 REST request.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page. Default is 20 items
      per page. Valid range is 1 to 100.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
      'previous' property is not part of the response no previous page is available.
:param str next: (optional) Link to the next available page. If 'next' property
      is not part of the response no next page is available.
:param List[ApiKey] apikeys: List of API keys based on the query paramters and
      the page size. The apikeys array is always part of the response but might be
      empty depending on the query parameters values provided.
NrF  apikeysr  r   r   rG  r  rH  rI  rJ  r   c                X    X l         X0l        X@l        XPl        X`l        Xpl        Xl        g)a  
Initialize a ApiKeyList object.

:param List[ApiKey] apikeys: List of API keys based on the query paramters
       and the page size. The apikeys array is always part of the response but
       might be empty depending on the query parameters values provided.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page. Default is 20
       items per page. Valid range is 1 to 100.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
       'previous' property is not part of the response no previous page is
       available.
:param str next: (optional) Link to the next available page. If 'next'
       property is not part of the response no next page is available.
N)r   rG  r  rH  rI  rJ  r;  )r$   r;  r   rG  r  rH  rI  rJ  s           r   r"   ApiKeyList.__init__  s'    : 

 	r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S5      =nb  XS'   UR                  S5      =n	b*  U	 V
s/ s H  n
[        R                  U
5      PM     sn
US'   O[	        S5      eU " S	0 UD6$ s  sn
f )
6Initialize a ApiKeyList object from a json dictionary.r   rG  r  rH  rI  rJ  r;  z:Required property 'apikeys' not present in ApiKeyList JSONrg   )rC   r   r  r  rY   )r   r  r  r   rG  r  rH  rI  rJ  r;  r^   s              r   r  ApiKeyList.from_dict  s    yy++G8-77@DOii))F6#NYYw''E4!MYYw''E4!M		*--H:'IIf%%D2Lyy++G8<CDGqv//2GDDO[\\{T{ ErR  c                 $    U R                  U5      $ )r?  r  r  s     r   r  ApiKeyList._from_dict  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S'   U$ )r  r   rG  r  rH  rI  rJ  r;  )r  r   r  rj   r  rG  r  rH  rI  rJ  r;  r  )r$   r  apikeys_listr^   s       r   r  ApiKeyList.to_dict  sj   4##(@$,,--#'<<i #'<<#7#7#9i 4""t{{'>"kkE(O4!!djj&<!ZZE'N4!!djj&<!ZZE'N4$$)B $E*4  TYY%: IIE&M4##(@L\\a&& ''* ''		4	 "
  ,)r   c                 "    U R                  5       $ r  r  r  s    r   r  ApiKeyList._to_dict   r  r   c                 H    [         R                  " U R                  5       SS9$ )z1Return a `str` version of this ApiKeyList object.r  r  r  r  s    r   r  ApiKeyList.__str__   r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ApiKeyList.__eq__   r  r   c                     X:X  + $ r  rg   r  s     r   r  ApiKeyList.__ne__    r  r   )r;  r   rH  r  rJ  rG  rI  r`  rg   r   r   r:  r:    s   , 04 $##"&"#h# +,	#
 # }# }# 3-# sm# 
#J d |  * $ $ 84 4/L /T /!L !T !r   r:  c                       \ rS rSrSrSSSSS.S\S\S\\   S\S	   S
\S   S\\   SS4S jjr\S\	SS 4S j5       r
\S 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ApikeyActivityi%   a
  
Apikeys activity details.

:param str id: Unique id of the apikey.
:param str name: (optional) Name provided during creation of the apikey.
:param str type: Type of the apikey. Supported values are `serviceid` and
      `user`.
:param ApikeyActivityServiceid serviceid: (optional) serviceid details will be
      present if type is `serviceid`.
:param ApikeyActivityUser user: (optional) user details will be present if type
      is `user`.
:param str last_authn: (optional) Time when the apikey was last authenticated.
N)r)   r4  r3  r  rb   r   r)   r4  ApikeyActivityServiceidr3  ApikeyActivityUserr  r   c                L    Xl         X0l        X l        X@l        XPl        X`l        g)a  
Initialize a ApikeyActivity object.

:param str id: Unique id of the apikey.
:param str type: Type of the apikey. Supported values are `serviceid` and
       `user`.
:param str name: (optional) Name provided during creation of the apikey.
:param ApikeyActivityServiceid serviceid: (optional) serviceid details will
       be present if type is `serviceid`.
:param ApikeyActivityUser user: (optional) user details will be present if
       type is `user`.
:param str last_authn: (optional) Time when the apikey was last
       authenticated.
N)rb   r)   r   r4  r3  r  )r$   rb   r   r)   r4  r3  r  s          r   r"   ApikeyActivity.__init__4   s"    0 		"	$r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XS'   U " S	0 UD6$ )
:Initialize a ApikeyActivity object from a json dictionary.rb   z9Required property 'id' not present in ApikeyActivity JSONr)   r   z;Required property 'type' not present in ApikeyActivity JSONr4  r3  r  rg   )rC   rY   rP  r  rQ  )	r   r  r  rb   r)   r   r4  r3  r  s	            r   r  ApikeyActivity.from_dictS   s     ))D/!B.JZ[[IIf%%D2LIIf%%D2L\]];//I< 7 A A) LDIIf%%D2-77=DL))L11J>!+{T{r   c                 $    U R                  U5      $ )rU  r  r  s     r   r  ApikeyActivity._from_dicti   r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R                  5       US'   [        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R                  5       US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  rb   r)   r   r4  r3  r  )
r  rb   r)   r   r4  r  rj   r  r3  r  r  s     r   r  ApikeyActivity.to_dictn   s/   4477#6''E$K4  TYY%: IIE&M4  TYY%: IIE&M4%%$..*D$..$//%)^^k"%)^^%;%;%=k"4  TYY%:$))T** $		f $		 1 1 3f4&&4??+F"&//E,r   c                 "    U R                  5       $ r  r  r  s    r   r  ApikeyActivity._to_dict   r  r   c                 H    [         R                  " U R                  5       SS9$ )z5Return a `str` version of this ApikeyActivity object.r  r  r  r  s    r   r  ApikeyActivity.__str__   r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ApikeyActivity.__eq__   r  r   c                     X:X  + $ r  rg   r  s     r   r  ApikeyActivity.__ne__   r  r   )rb   r  r)   r4  r   r3  r  r  r  r  r  r  r   r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   rO  rO  %   s    & #9=/3$(%% %
 sm% 56% +,% SM% 
%> d '7  * $ $ .4 4/, / /!, ! !r   rO  c                       \ rS rSrSrSSS.S\\   S\\   SS4S jjr\S	\	SS 4S
 j5       r
\S 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)rP  i   z
serviceid details will be present if type is `serviceid`.

:param str id: (optional) Unique identifier of this Service Id.
:param str name: (optional) Name provided during creation of the serviceid.
Nrb   r)   rb   r)   r   c                    Xl         X l        g)z
Initialize a ApikeyActivityServiceid object.

:param str id: (optional) Unique identifier of this Service Id.
:param str name: (optional) Name provided during creation of the serviceid.
Nre  )r$   rb   r)   s      r   r"    ApikeyActivityServiceid.__init__   s     	r   r  c                 v    0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   U " S0 UD6$ )CInitialize a ApikeyActivityServiceid object from a json dictionary.rb   r)   rg   rC   )r   r  r  rb   r)   s        r   r  !ApikeyActivityServiceid.from_dict   sJ     ))D/!B.JIIf%%D2L{T{r   c                 $    U R                  U5      $ )ri  r  r  s     r   r  "ApikeyActivityServiceid._from_dict   r  r   c                     0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  rb   r)   )r  rb   r)   r  s     r   r  ApikeyActivityServiceid.to_dict   sR    4477#6''E$K4  TYY%: IIE&Mr   c                 "    U R                  5       $ r  r  r  s    r   r   ApikeyActivityServiceid._to_dict   r  r   c                 H    [         R                  " U R                  5       SS9$ )z>Return a `str` version of this ApikeyActivityServiceid object.r  r  r  r  s    r   r  ApikeyActivityServiceid.__str__   r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ApikeyActivityServiceid.__eq__   r  r   c                     X:X  + $ r  rg   r  s     r   r  ApikeyActivityServiceid.__ne__   r  r   r  r  r  r  r  r   r  r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   rP  rP     s     !"	 SM sm	
 
 d '@   $ $ 4 4/5 /$ /!5 !$ !r   rP  c                       \ rS rSrSrSSSSS.S\\   S\\   S\\   S\\   S	S4
S
 jjr\S\	S	S 4S j5       r
\S 5       rS	\	4S jrS rS	\4S jrSS S	\4S jrSS S	\4S jrSrg)rQ  i   z
user details will be present if type is `user`.

:param str iam_id: (optional) IAMid of the user.
:param str name: (optional) Name of the user.
:param str username: (optional) Username of the user.
:param str email: (optional) Email of the user.
Nr   r)   usernamer   r   r)   r{  r   r   c                4    Xl         X l        X0l        X@l        g)z
Initialize a ApikeyActivityUser object.

:param str iam_id: (optional) IAMid of the user.
:param str name: (optional) Name of the user.
:param str username: (optional) Username of the user.
:param str email: (optional) Email of the user.
Nrz  )r$   r   r)   r{  r   s        r   r"   ApikeyActivityUser.__init__   s      	 
r   r  c                     0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   U " S0 UD6$ )>Initialize a ApikeyActivityUser object from a json dictionary.r   r)   r{  r   rg   rj  )r   r  r  r   r)   r{  r   s          r   r  ApikeyActivityUser.from_dict   s     ii))F6#NIIf%%D2L		*--H:'YYw''E4!M{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  ApikeyActivityUser._from_dict!  r  r   c                 r   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r   r)   r{  r   )r  r   r)   r{  r   r  s     r   r  ApikeyActivityUser.to_dict!  s    4""t{{'>"kkE(O4  TYY%: IIE&M4$$)B $E*4!!djj&<!ZZE'Nr   c                 "    U R                  5       $ r  r  r  s    r   r  ApikeyActivityUser._to_dict!  r  r   c                 H    [         R                  " U R                  5       SS9$ )z9Return a `str` version of this ApikeyActivityUser object.r  r  r  r  s    r   r  ApikeyActivityUser.__str__!  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ApikeyActivityUser.__eq__!!  r  r   c                     X:X  + $ r  rg   r  s     r   r  ApikeyActivityUser.__ne__'!  r  r   )r   r   r)   r{  rx  rg   r   r   rQ  rQ     s     !%""&#  sm	
 3- } 
* d ';   $ $ 4 4/0 /T /!0 !T !r   rQ  c                       \ rS rSrSrSSS.S\\   S\\S      SS4S	 jjr\	S
\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r  i,!  ab  
AssignedTemplatesAccountSettingsRestrictUserDomains.

:param bool account_sufficient: (optional)
:param List[AccountSettingsUserDomainRestriction] restrictions: (optional)
      Defines if account invitations are restricted to specified domains. To remove an
      entry for a realm_id, perform an update (PUT) request with only the realm_id
      set.
Naccount_sufficientrestrictionsr  r  r\  r   c                    Xl         X l        g)ay  
Initialize a AssignedTemplatesAccountSettingsRestrictUserDomains object.

:param bool account_sufficient: (optional)
:param List[AccountSettingsUserDomainRestriction] restrictions: (optional)
       Defines if account invitations are restricted to specified domains. To
       remove an entry for a realm_id, perform an update (PUT) request with only
       the realm_id set.
Nr  r$   r  r  s      r   r"   <AssignedTemplatesAccountSettingsRestrictUserDomains.__init__7!       #5(r   r  c                     0 nUR                  S5      =nb  X2S'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   U " S0 UD6$ s  snf )_Initialize a AssignedTemplatesAccountSettingsRestrictUserDomains object from a json dictionary.r  r  rg   rC   r\  r  r   r  r  r  r  r^   s         r   r  =AssignedTemplatesAccountSettingsRestrictUserDomains.from_dictI!  w     "')),@"AAN);%&!IIn55LB_k#l_kZ[$H$R$RST$U_k#lD {T{ $m   A c                 $    U R                  U5      $ )r  r  r  s     r   r  >AssignedTemplatesAccountSettingsRestrictUserDomains._from_dictS!  r  r   c                 `   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   U$ r  r  r  r  r  r  r  rj   r  r  r$   r  restrictions_listr^   s       r   r  ;AssignedTemplatesAccountSettingsRestrictUserDomains.to_dictX!      4-..43J3J3V*.*A*AE&'4((T->->-J "&&a&&%,,Q/%,,QYY[9	 '
 %6.!r   c                 "    U R                  5       $ r  r  r  s    r   r  <AssignedTemplatesAccountSettingsRestrictUserDomains._to_dictg!  r  r   c                 H    [         R                  " U R                  5       SS9$ )zZReturn a `str` version of this AssignedTemplatesAccountSettingsRestrictUserDomains object.r  r  r  r  s    r   r  ;AssignedTemplatesAccountSettingsRestrictUserDomains.__str__k!  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  :AssignedTemplatesAccountSettingsRestrictUserDomains.__eq__o!  r  r   c                     X:X  + $ r  rg   r  s     r   r  :AssignedTemplatesAccountSettingsRestrictUserDomains.__ne__u!  r  r   r  r  r  r  r  r   r  r   r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   r  r  ,!  s     .2OS	) %TN) t$JKL	)
 
)$ d '\   $ $ 4 4/Q /VZ /!Q !VZ !r   r  c                       \ rS rSrSrSSSSS.S\S\\   S\\   S\\   S	\\   S
S4S jjr\S\	S
S 4S j5       r
\S 5       rS
\	4S jrS rS
\4S jrSS S
\4S jrSS S
\4S jrSrg)r  iz!  a  
Link details.

:param str crn: The CRN of the compute resource.
:param str namespace: (optional) The compute resource namespace, only required
      if cr_type is IKS_SA or ROKS_SA.
:param str name: (optional) Name of the compute resource, only required if
      cr_type is IKS_SA or ROKS_SA.
:param str component_type: (optional) Component type of the compute resource,
      only required if cr_type is CE.
:param str component_name: (optional) Component name of the compute resource,
      only required if cr_type is CE.
N)r  r)   r  r  r  r  r)   r  r  r   c                @    Xl         X l        X0l        X@l        XPl        g)a6  
Initialize a CreateProfileLinkRequestLink object.

:param str crn: The CRN of the compute resource.
:param str namespace: (optional) The compute resource namespace, only
       required if cr_type is IKS_SA or ROKS_SA.
:param str name: (optional) Name of the compute resource, only required if
       cr_type is IKS_SA or ROKS_SA.
:param str component_type: (optional) Component type of the compute
       resource, only required if cr_type is CE.
:param str component_name: (optional) Component name of the compute
       resource, only required if cr_type is CE.
Nr
  r$   r  r  r)   r  r  s         r   r"   %CreateProfileLinkRequestLink.__init__!      , "	,,r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   U " S0 UD6$ )HInitialize a CreateProfileLinkRequestLink object from a json dictionary.r  zHRequired property 'crn' not present in CreateProfileLinkRequestLink JSONr  r)   r  r  rg   r  r   r  r  r  r  r)   r  r  s           r   r  &CreateProfileLinkRequestLink.from_dict!  s     99U##C0Kijj;//I< )IIf%%D2L#ii(899NF%3!"#ii(899NF%3!"{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  'CreateProfileLinkRequestLink._from_dict!  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   U$ r  r  r  r)   r  r  r  r  r  r)   r  r  r  s     r   r  $CreateProfileLinkRequestLink.to_dict!      4DHH$888E%L4%%$..*D!%E+4  TYY%: IIE&M4)**t/B/B/N&*&9&9E"#4)**t/B/B/N&*&9&9E"#r   c                 "    U R                  5       $ r  r  r  s    r   r  %CreateProfileLinkRequestLink._to_dict!  r  r   c                 H    [         R                  " U R                  5       SS9$ )zCReturn a `str` version of this CreateProfileLinkRequestLink object.r  r  r  r  s    r   r  $CreateProfileLinkRequestLink.__str__!  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  #CreateProfileLinkRequestLink.__eq__!  r  r   c                     X:X  + $ r  rg   r  s     r   r  #CreateProfileLinkRequestLink.__ne__!  r  r   r  r  r  r)   r  rc  rg   r   r   r  r  z!  s    $ $("(,(,-- C=	-
 sm- !- !- 
-8 d 'E  " $ $ 4 4/: /t /!: !t !r   r  c                       \ rS rSrSrSSS.S\SSSS	S
\S   S\\S      SS4S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg) EffectiveAccountSettingsResponsei!  a  
Response body format for Account Settings REST requests.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param str account_id: Unique ID of the account.
:param AccountSettingsEffectiveSection effective:
:param AccountSettingsResponse account: Input body parameters for the Account
      Settings REST request.
:param List[AccountSettingsAssignedTemplatesSection] assigned_templates:
      (optional) assigned template section.
N)r   assigned_templatesr'   	effectiver  r-  r%  r   r   r  r  r   c                @    X@l         Xl        X l        X0l        XPl        g)a  
Initialize a EffectiveAccountSettingsResponse object.

:param str account_id: Unique ID of the account.
:param AccountSettingsEffectiveSection effective:
:param AccountSettingsResponse account: Input body parameters for the
       Account Settings REST request.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param List[AccountSettingsAssignedTemplatesSection] assigned_templates:
       (optional) assigned template section.
N)r   r'   r  r-  r  )r$   r'   r  r-  r   r  s         r   r"   )EffectiveAccountSettingsResponse.__init__!  s    * $""4r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  [        R                  U5      US'   O[        S5      eUR                  S5      =nb  [
        R                  U5      US'   O[        S5      eUR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   U " S	0 UD6$ s  snf )
LInitialize a EffectiveAccountSettingsResponse object from a json dictionary.r   r'   zSRequired property 'account_id' not present in EffectiveAccountSettingsResponse JSONr  zRRequired property 'effective' not present in EffectiveAccountSettingsResponse JSONr-  zPRequired property 'account' not present in EffectiveAccountSettingsResponse JSONr  rg   )rC   r   r  rY   r  r%  r  )	r   r  r  r   r'   r  r-  r  r^   s	            r   r  *EffectiveAccountSettingsResponse.from_dict"  s    yy++G8-77@DO))L11J>!+tuu;//I< ? I I) TDsttyy++G85??HDOqrr"')),@"AANN`*N`7AA!DN`*D%& {T{*s   Dc                 $    U R                  U5      $ )r  r  r  s     r   r  +EffectiveAccountSettingsResponse._from_dict"  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S'   U$ )r  r   r'   r  r-  r  )
r  r   r  rj   r  r'   r  r-  r  r  )r$   r  assigned_templates_listr^   s       r   r  (EffectiveAccountSettingsResponse.to_dict$"  s~   4##(@$,,--#'<<i #'<<#7#7#9i 4&&4??+F"&//E,4%%$..*D$..$//%)^^k"%)^^%;%;%=k"4##(@$,,--#'<<i #'<<#7#7#9i 4-..43J3J3V&(#,,a&&+2215+22199;?	 -
 +B&'r   c                 "    U R                  5       $ r  r  r  s    r   r  )EffectiveAccountSettingsResponse._to_dictB"  r  r   c                 H    [         R                  " U R                  5       SS9$ )zGReturn a `str` version of this EffectiveAccountSettingsResponse object.r  r  r  r  s    r   r  (EffectiveAccountSettingsResponse.__str__F"  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  'EffectiveAccountSettingsResponse.__eq__J"  r  r   c                     X:X  + $ r  rg   r  s     r   r  'EffectiveAccountSettingsResponse.__ne__P"  r  r   )r-  r'   r  r   r  r  r  r  r  r  r  r   r   r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   r  r  !  s    & 04X\55 55 +	5 +,5 %T*S%TU5 
56 d 'I  . $ $ <4 4/> /4 /!> !4 !r   r  c                       \ rS rSrSrS\S\S\S\S\\   S\S	S
4S jr\S\	S	S 4S j5       r
\S 5       rS	\	4S jrS rS	\4S jrSS S	\4S jrSS S	\4S jrSrg
)r(  iU"  a  
Response body format for an entity history record.

:param str timestamp: Timestamp when the action was triggered.
:param str iam_id: IAM ID of the identity which triggered the action.
:param str iam_id_account: Account of the identity which triggered the action.
:param str action: Action of the history entry.
:param List[str] params: Params of the history entry.
:param str message: Message which summarizes the executed action.
	timestampr   iam_id_accountactionr?   messager   Nc                 L    Xl         X l        X0l        X@l        XPl        X`l        g)a  
Initialize a EnityHistoryRecord object.

:param str timestamp: Timestamp when the action was triggered.
:param str iam_id: IAM ID of the identity which triggered the action.
:param str iam_id_account: Account of the identity which triggered the
       action.
:param str action: Action of the history entry.
:param List[str] params: Params of the history entry.
:param str message: Message which summarizes the executed action.
N)r  r   r  r  r?   r  )r$   r  r   r  r  r?   r  s          r   r"   EnityHistoryRecord.__init__a"  s#    ( #,r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eUR                  S	5      =nb  XrS	'   O[        S
5      eUR                  S5      =nb  XS'   O[        S5      eU " S0 UD6$ )>Initialize a EnityHistoryRecord object from a json dictionary.r  zDRequired property 'timestamp' not present in EnityHistoryRecord JSONr   zARequired property 'iam_id' not present in EnityHistoryRecord JSONr  zIRequired property 'iam_id_account' not present in EnityHistoryRecord JSONr  zARequired property 'action' not present in EnityHistoryRecord JSONr?   zARequired property 'params' not present in EnityHistoryRecord JSONr  zBRequired property 'message' not present in EnityHistoryRecord JSONrg   r  )	r   r  r  r  r   r  r  r?   r  s	            r   r  EnityHistoryRecord.from_dict|"  s    ;//I< )effii))F6#Nbcc#ii(899NF%3!"jkkii))F6#Nbccii))F6#Nbccyy++G8%Ocdd{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  EnityHistoryRecord._from_dict"  r  r   c                 &   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r  r   r  r  r?   r  )r  r  r   r  r  r?   r  r  s     r   r  EnityHistoryRecord.to_dict"  s    4%%$..*D!%E+4""t{{'>"kkE(O4)**t/B/B/N&*&9&9E"#4""t{{'>"kkE(O4""t{{'>"kkE(O4##(@#||E)r   c                 "    U R                  5       $ r  r  r  s    r   r  EnityHistoryRecord._to_dict"  r  r   c                 H    [         R                  " U R                  5       SS9$ )z9Return a `str` version of this EnityHistoryRecord object.r  r  r  r  s    r   r  EnityHistoryRecord.__str__"  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  EnityHistoryRecord.__eq__"  r  r   c                     X:X  + $ r  rg   r  s     r   r  EnityHistoryRecord.__ne__"  r  r   )r  r   r  r  r?   r  )r  r  r  r  r  r  r   r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   r(  r(  U"  s    	  	
  S	  
6 d ';  : $ $ "4 4/0 /T /!0 !T !r   r(  c            	           \ rS rSrSrSSS.S\S\\   S\\   SS4S	 jjr\S
\	SS 4S j5       r
\S 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)EntityActivityi"  z
EntityActivity.

:param str id: Unique id of the entity.
:param str name: (optional) Name provided during creation of the entity.
:param str last_authn: (optional) Time when the entity was last authenticated.
N)r)   r  rb   r)   r  r   c                (    Xl         X l        X0l        g)z
Initialize a EntityActivity object.

:param str id: Unique id of the entity.
:param str name: (optional) Name provided during creation of the entity.
:param str last_authn: (optional) Time when the entity was last
       authenticated.
N)rb   r)   r  )r$   rb   r)   r  s       r   r"   EntityActivity.__init__"  s     	$r   r  c                     0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   U " S0 UD6$ ):Initialize a EntityActivity object from a json dictionary.rb   z9Required property 'id' not present in EntityActivity JSONr)   r  rg   r  )r   r  r  rb   r)   r  s         r   r  EntityActivity.from_dict"  sr     ))D/!B.JZ[[IIf%%D2L))L11J>!+{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  EntityActivity._from_dict"  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  rb   r)   r  )r  rb   r)   r  r  s     r   r  EntityActivity.to_dict"  sv    4477#6''E$K4  TYY%: IIE&M4&&4??+F"&//E,r   c                 "    U R                  5       $ r  r  r  s    r   r  EntityActivity._to_dict"  r  r   c                 H    [         R                  " U R                  5       SS9$ )z5Return a `str` version of this EntityActivity object.r  r  r  r  s    r   r  EntityActivity.__str__#  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  EntityActivity.__eq__#  r  r   c                     X:X  + $ r  rg   r  s     r   r  EntityActivity.__ne__#  r  r   )rb   r  r)   rc  rg   r   r   r  r  "  s     #$(%% sm	%
 SM% 
%& d '7   $ $	 	4 4/, / /!, ! !r   r  c                       \ rS rSrSrSS.S\S\S\S\\   S	S4
S
 jjr\S\	S	S 4S j5       r
\S 5       rS	\	4S jrS rS	\4S jrSS S	\4S jrSS S	\4S jrSrg)Errori#  a  
Error information.

:param str code: Error code of the REST Exception.
:param str message_code: Error message code of the REST Exception.
:param str message: Error message of the REST Exception. Error messages are
      derived base on the input locale of the REST request and the available Message
      catalogs. Dynamic fallback to 'us-english' is happening if no message catalog is
      available for the provided input locale.
:param str details: (optional) Error details of the REST Exception.
N)detailscodemessage_coder  r	  r   c                4    Xl         X l        X0l        X@l        g)a  
Initialize a Error object.

:param str code: Error code of the REST Exception.
:param str message_code: Error message code of the REST Exception.
:param str message: Error message of the REST Exception. Error messages are
       derived base on the input locale of the REST request and the available
       Message catalogs. Dynamic fallback to 'us-english' is happening if no
       message catalog is available for the provided input locale.
:param str details: (optional) Error details of the REST Exception.
N)r
  r  r  r	  )r$   r
  r  r  r	  s        r   r"   Error.__init__#  s    & 	(r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   U " S0 UD6$ )	1Initialize a Error object from a json dictionary.r
  z2Required property 'code' not present in Error JSONr  z:Required property 'message_code' not present in Error JSONr  z5Required property 'message' not present in Error JSONr	  rg   r  )r   r  r  r
  r  r  r	  s          r   r  Error.from_dict5#  s     IIf%%D2LSTT!IIn55LB#/ [\\yy++G8%OVWWyy++G8%O{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  Error._from_dictI#  r  r   c                 r   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r
  r  r  r	  )r  r
  r  r  r	  r  s     r   r  Error.to_dictN#  s    4  TYY%: IIE&M4((T->->-J$($5$5E.!4##(@#||E)4##(@#||E)r   c                 "    U R                  5       $ r  r  r  s    r   r  Error._to_dict[#  r  r   c                 H    [         R                  " U R                  5       SS9$ )z,Return a `str` version of this Error object.r  r  r  r  s    r   r  Error.__str___#  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  Error.__eq__c#  r  r   c                     X:X  + $ r  rg   r  s     r   r  Error.__ne__i#  r  r   )r
  r	  r  r  rc  rg   r   r   r  r  #  s    
$ "&  	 # 
0 d w  & $ $ 4 4/G / /!G ! !r   r  c                       \ rS rSrSrSSS.S\S\S   S\S	   S
\\   SS4
S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ExceptionResponsein#  aP  
Response body parameters in case of error situations.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param str status_code: Error message code of the REST Exception.
:param List[Error] errors: List of errors that occured.
:param str trace: (optional) Unique ID of the requst.
N)r   tracestatus_codeerrorsr  r   r   r  r   c                4    X0l         Xl        X l        X@l        g)aB  
Initialize a ExceptionResponse object.

:param str status_code: Error message code of the REST Exception.
:param List[Error] errors: List of errors that occured.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param str trace: (optional) Unique ID of the requst.
N)r   r   r!  r  )r$   r   r!  r   r  s        r   r"   ExceptionResponse.__init__y#  s    " &
r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb*  U Vs/ s H  n[        R                  U5      PM     snUS'   O[        S5      eUR                  S5      =nb  XrS'   U " S0 UD6$ s  snf )=Initialize a ExceptionResponse object from a json dictionary.r   r   zERequired property 'status_code' not present in ExceptionResponse JSONr!  z@Required property 'errors' not present in ExceptionResponse JSONr  rg   )rC   r   r  rY   r  )r   r  r  r   r   r!  r^   r  s           r   r  ExceptionResponse.from_dict#  s     yy++G8-77@DO 99]33K@"-fggii))F6:@A&Qeooa0&ADNabbYYw''E4!M{T{ Bs   +B<c                 $    U R                  U5      $ )r%  r  r  s     r   r  ExceptionResponse._from_dict#  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r   r   r!  r  )	r  r   r  rj   r  r   r!  r  r  )r$   r  errors_listr^   s       r   r  ExceptionResponse.to_dict#  s   4##(@$,,--#'<<i #'<<#7#7#9i 4''D,<,<,H#'#3#3E- 4""t{{'>K[[a&&&&q)&&qyy{3	 !
 *(O4!!djj&<!ZZE'Nr   c                 "    U R                  5       $ r  r  r  s    r   r  ExceptionResponse._to_dict#  r  r   c                 H    [         R                  " U R                  5       SS9$ )z8Return a `str` version of this ExceptionResponse object.r  r  r  r  s    r   r  ExceptionResponse.__str__#  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ExceptionResponse.__eq__#  r  r   c                     X:X  + $ r  rg   r  s     r   r  ExceptionResponse.__ne__#  r  r   )r   r!  r   r  )r  r  r  r  r  r  r   r   r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   r  r  n#  s     04# W
 +, } 
, d ':  " $ $ ,4 4// /D /!/ !D !r   r  c                   "   \ rS rSrSrSSS.S\S\S\S\\   S	\\   S
S4S jjr\	S\
S
S 4S j5       r\	S 5       rS
\
4S jrS rS
\4S jrSS S
\4S jrSS S
\4S jr " S S\\5      r " S S\\5      r " S S\\5      r " S S\\5      rSrg)IdBasedMfaEnrollmenti#  a  
IdBasedMfaEnrollment.

:param str trait_account_default: MFA trait definitions as follows:
        * NONE - No MFA trait set
        * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
        * TOTP - For all non-federated IBMId users
        * TOTP4ALL - For all users
        * LEVEL1 - Email-based MFA for all users
        * LEVEL2 - TOTP-based MFA for all users
        * LEVEL3 - U2F MFA for all users.
:param str trait_user_specific: (optional) MFA trait definitions as follows:
        * NONE - No MFA trait set
        * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
        * TOTP - For all non-federated IBMId users
        * TOTP4ALL - For all users
        * LEVEL1 - Email-based MFA for all users
        * LEVEL2 - TOTP-based MFA for all users
        * LEVEL3 - U2F MFA for all users.
:param str trait_effective: MFA trait definitions as follows:
        * NONE - No MFA trait set
        * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
        * TOTP - For all non-federated IBMId users
        * TOTP4ALL - For all users
        * LEVEL1 - Email-based MFA for all users
        * LEVEL2 - TOTP-based MFA for all users
        * LEVEL3 - U2F MFA for all users.
:param bool complies: The enrollment complies to the effective requirement.
:param str comply_state: (optional) Defines comply state for the account. Valid
      values:
        * NO - User does not comply in the given account.
        * ACCOUNT- User complies in the given account, but does not comply in at least
      one of the other account memberships.
        * CROSS_ACCOUNT - User complies in the given account and across all other
      account memberships.
N)trait_user_specificcomply_statetrait_account_defaulttrait_effectiver  r6  r7  r   c                @    Xl         X@l        X l        X0l        XPl        g)a  
Initialize a IdBasedMfaEnrollment object.

:param str trait_account_default: MFA trait definitions as follows:
         * NONE - No MFA trait set
         * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
         * TOTP - For all non-federated IBMId users
         * TOTP4ALL - For all users
         * LEVEL1 - Email-based MFA for all users
         * LEVEL2 - TOTP-based MFA for all users
         * LEVEL3 - U2F MFA for all users.
:param str trait_effective: MFA trait definitions as follows:
         * NONE - No MFA trait set
         * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
         * TOTP - For all non-federated IBMId users
         * TOTP4ALL - For all users
         * LEVEL1 - Email-based MFA for all users
         * LEVEL2 - TOTP-based MFA for all users
         * LEVEL3 - U2F MFA for all users.
:param bool complies: The enrollment complies to the effective requirement.
:param str trait_user_specific: (optional) MFA trait definitions as
       follows:
         * NONE - No MFA trait set
         * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
         * TOTP - For all non-federated IBMId users
         * TOTP4ALL - For all users
         * LEVEL1 - Email-based MFA for all users
         * LEVEL2 - TOTP-based MFA for all users
         * LEVEL3 - U2F MFA for all users.
:param str comply_state: (optional) Defines comply state for the account.
       Valid values:
         * NO - User does not comply in the given account.
         * ACCOUNT- User complies in the given account, but does not comply in at
       least one of the other account memberships.
         * CROSS_ACCOUNT - User complies in the given account and across all other
       account memberships.
N)r8  r6  r9  r  r7  )r$   r8  r9  r  r6  r7  s         r   r"   IdBasedMfaEnrollment.__init__#  s"    \ &;"#6 . (r   r  c                 N   0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eUR                  S5      =nb  XrS'   U " S	0 UD6$ )
@Initialize a IdBasedMfaEnrollment object from a json dictionary.r8  zRRequired property 'trait_account_default' not present in IdBasedMfaEnrollment JSONr6  r9  zLRequired property 'trait_effective' not present in IdBasedMfaEnrollment JSONr  zERequired property 'complies' not present in IdBasedMfaEnrollment JSONr7  rg   r  )r   r  r  r8  r6  r9  r  r7  s           r   r  IdBasedMfaEnrollment.from_dict)$  s     %*YY/F%GG!T,A()stt#(99-B#CCP*=&'$yy):;;OH&5"#mnn		*--H:'fgg!IIn55LB#/ {T{r   c                 $    U R                  U5      $ )r=  r  r  s     r   r  IdBasedMfaEnrollment._from_dict?$  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   U$ )r  r8  r6  r9  r  r7  )r  r8  r6  r9  r  r7  r  s     r   r  IdBasedMfaEnrollment.to_dictD$  s    4011d6P6P6\-1-G-GE)*4.//D4L4L4X+/+C+CE'(4*++0D0D0P'+';';E#$4$$)B $E*4((T->->-J$($5$5E.!r   c                 "    U R                  5       $ r  r  r  s    r   r  IdBasedMfaEnrollment._to_dictS$  r  r   c                 H    [         R                  " U R                  5       SS9$ )z;Return a `str` version of this IdBasedMfaEnrollment object.r  r  r  r  s    r   r  IdBasedMfaEnrollment.__str__W$  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  IdBasedMfaEnrollment.__eq__[$  r  r   c                     X:X  + $ r  rg   r  s     r   r  IdBasedMfaEnrollment.__ne__a$  r  r   c                   4    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg),IdBasedMfaEnrollment.TraitAccountDefaultEnumie$  r  r  r  r  r  r  r  r  rg   Nr  rg   r   r   TraitAccountDefaultEnumrL  e$  r  r   rM  c                   4    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg)*IdBasedMfaEnrollment.TraitUserSpecificEnumiy$  r  r  r  r  r  r  r  r  rg   Nr  rg   r   r   TraitUserSpecificEnumrO  y$  r  r   rP  c                   4    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg)'IdBasedMfaEnrollment.TraitEffectiveEnumi$  r  r  r  r  r  r  r  r  rg   Nr  rg   r   r   TraitEffectiveEnumrR  $  r  r   rS  c                   $    \ rS rSrSrSrSrSrSrg)$IdBasedMfaEnrollment.ComplyStateEnumi$  aA  
Defines comply state for the account. Valid values:
  * NO - User does not comply in the given account.
  * ACCOUNT- User complies in the given account, but does not comply in at least
one of the other account memberships.
  * CROSS_ACCOUNT - User complies in the given account and across all other
account memberships.
NOr/  CROSS_ACCOUNTrg   N)	r  r  r  r  r  rV  r/  rW  r  rg   r   r   ComplyStateEnumrU  $  s    	 'r   rX  )r  r7  r8  r9  r6  )r  r  r  r  r  r  r  r   r"   r  r   r  r  r  r  r  r  r  r   rM  rP  rS  rX  r  rg   r   r   r5  r5  #  s   #V .2&*2)"2) 2) 	2) &c]2) sm2) 
2)h d '=  * $ $ 4 4/2 /t /!2 !t !#t (T (S$ ((#t (r   r5  c                       \ rS rSrSrSSSSSSS.S\\   S\\   S\\   S\\   S	\\   S
\\\      SS4S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)IdentityPreferenceResponsei$  a  
IdentityPreferenceResponse.

:param str service: (optional) Service of the preference.
:param str id: (optional) Unique ID of the preference.
:param str account_id: (optional) Account ID of the preference, only present for
      scope 'account'.
:param str scope: (optional) Scope of the preference, 'global' or 'account'.
:param str value_string: (optional) String value of the preference, only one
      value property is set, either 'value_string' or 'value_list_of_strings' is
      present.
:param List[str] value_list_of_strings: (optional) List of value of the
      preference, only one value property is set, either 'value_string' or
      'value_list_of_strings' is present.
Nr   rb   r'   r   rn  rl  r   rb   r'   r   rn  rl  r   c                L    Xl         X l        X0l        X@l        XPl        X`l        g)a  
Initialize a IdentityPreferenceResponse object.

:param str service: (optional) Service of the preference.
:param str id: (optional) Unique ID of the preference.
:param str account_id: (optional) Account ID of the preference, only
       present for scope 'account'.
:param str scope: (optional) Scope of the preference, 'global' or
       'account'.
:param str value_string: (optional) String value of the preference, only
       one value property is set, either 'value_string' or 'value_list_of_strings'
       is present.
:param List[str] value_list_of_strings: (optional) List of value of the
       preference, only one value property is set, either 'value_string' or
       'value_list_of_strings' is present.
Nr[  )r$   r   rb   r'   r   rn  rl  s          r   r"   #IdentityPreferenceResponse.__init__$  s$    4 $
(%:"r   r  c                 6   0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S5      =nb  XS'   U " S0 UD6$ )FInitialize a IdentityPreferenceResponse object from a json dictionary.r   rb   r'   r   rn  rl  rg   rj  )	r   r  r  r   rb   r'   r   rn  rl  s	            r   r  $IdentityPreferenceResponse.from_dict$  s     yy++G8%O))D/!B.J))L11J>!+YYw''E4!M!IIn55LB#/ %*YY/F%GG!T,A(){T{r   c                 $    U R                  U5      $ )r_  r  r  s     r   r  %IdentityPreferenceResponse._from_dict$  r  r   c                 &   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r   rb   r'   r   rn  rl  )r  r   rb   r'   r   rn  rl  r  s     r   r  "IdentityPreferenceResponse.to_dict$  s    4##(@#||E)4477#6''E$K4&&4??+F"&//E,4!!djj&<!ZZE'N4((T->->-J$($5$5E.!4011d6P6P6\-1-G-GE)*r   c                 "    U R                  5       $ r  r  r  s    r   r  #IdentityPreferenceResponse._to_dict
%  r  r   c                 H    [         R                  " U R                  5       SS9$ )zAReturn a `str` version of this IdentityPreferenceResponse object.r  r  r  r  s    r   r  "IdentityPreferenceResponse.__str__%  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  !IdentityPreferenceResponse.__eq__%  r  r   c                     X:X  + $ r  rg   r  s     r   r  !IdentityPreferenceResponse.__ne__%  r  r   )r'   rb   r   r   rl  rn  r  r  r  r  r  r   r  r   r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   rZ  rZ  $  s    & "& $(#&*59; #; SM	;
 SM; }; sm;  (S	2; 
;B d 'C  " $ $ "4 4/8 /T /!8 !T !r   rZ  c                       \ rS rSrSrS\S   SS4S jr\S\SS 4S	 j5       r	\S
 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)IdentityPreferencesResponsei%  zx
IdentityPreferencesResponse.

:param List[IdentityPreferenceResponse] preferences: List of Identity
      Preferences.
preferencesrZ  r   Nc                     Xl         g)z
Initialize a IdentityPreferencesResponse object.

:param List[IdentityPreferenceResponse] preferences: List of Identity
       Preferences.
Nrp  )r$   rp  s     r   r"   $IdentityPreferencesResponse.__init__%%  s
     'r   r  c                     0 nUR                  S5      =nb*  U Vs/ s H  n[        R                  U5      PM     snUS'   O[        S5      eU " S0 UD6$ s  snf )GInitialize a IdentityPreferencesResponse object from a json dictionary.rp  zORequired property 'preferences' not present in IdentityPreferencesResponse JSONrg   )rC   rZ  r  rY   )r   r  r  rp  r^   s        r   r  %IdentityPreferencesResponse.from_dict1%  sb      99]33K@T_"`T_q#=#G#G#JT_"`Dpqq{T{ #a   Ac                 $    U R                  U5      $ )ru  r  r  s     r   r  &IdentityPreferencesResponse._from_dict;%  r  r   c                    0 n[        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR	                  U5        M+  UR	                  UR                  5       5        ML     X!S'   U$ )r  rp  )r  rp  r  rj   r  r  )r$   r  preferences_listr^   s       r   r  #IdentityPreferencesResponse.to_dict@%  ss    4''D,<,<,H!%%a&&$++A.$++AIIK8	 &
 $4- r   c                 "    U R                  5       $ r  r  r  s    r   r  $IdentityPreferencesResponse._to_dictM%  r  r   c                 H    [         R                  " U R                  5       SS9$ )zBReturn a `str` version of this IdentityPreferencesResponse object.r  r  r  r  s    r   r  #IdentityPreferencesResponse.__str__Q%  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  "IdentityPreferencesResponse.__eq__U%  r  r   c                     X:X  + $ r  rg   r  s     r   r  "IdentityPreferencesResponse.__ne__[%  r  r   rr  r  r  r  r  r  r   r"   r  r   r  r  r  r  r  r  r  r  r  r  rg   r   r   ro  ro  %  s    
'67
' 

' d 'D   $ $ 4 4/9 /d /!9 !d !r   ro  c                       \ rS rSrSrS\S\SS4S jr\S\SS 4S	 j5       r	\S
 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r  i`%  z
MfaEnrollmentTypeStatus.

:param bool required: Describes whether the enrollment type is required.
:param bool enrolled: Describes whether the enrollment type is enrolled.
requiredenrolledr   Nc                     Xl         X l        g)z
Initialize a MfaEnrollmentTypeStatus object.

:param bool required: Describes whether the enrollment type is required.
:param bool enrolled: Describes whether the enrollment type is enrolled.
N)r  r  )r$   r  r  s      r   r"    MfaEnrollmentTypeStatus.__init__h%  s     ! r   r  c                     0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eU " S0 UD6$ )CInitialize a MfaEnrollmentTypeStatus object from a json dictionary.r  zHRequired property 'required' not present in MfaEnrollmentTypeStatus JSONr  zHRequired property 'enrolled' not present in MfaEnrollmentTypeStatus JSONrg   r  )r   r  r  r  r  s        r   r  !MfaEnrollmentTypeStatus.from_dictv%  se     		*--H:'ijj		*--H:'ijj{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  "MfaEnrollmentTypeStatus._from_dict%  r  r   c                     0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r  r  )r  r  r  r  s     r   r  MfaEnrollmentTypeStatus.to_dict%  sT    4$$)B $E*4$$)B $E*r   c                 "    U R                  5       $ r  r  r  s    r   r   MfaEnrollmentTypeStatus._to_dict%  r  r   c                 H    [         R                  " U R                  5       SS9$ )z>Return a `str` version of this MfaEnrollmentTypeStatus object.r  r  r  r  s    r   r  MfaEnrollmentTypeStatus.__str__%  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  MfaEnrollmentTypeStatus.__eq__%  r  r   c                     X:X  + $ r  rg   r  s     r   r  MfaEnrollmentTypeStatus.__ne__%  r  r   )r  r  r  rg   r   r   r  r  `%  s    !! ! 
	! d '@   $ $ 4 4/5 /$ /!5 !$ !r   r  c            	           \ rS rSrSrSSS.S\S\S   S\S	   S
S4S jjr\S\	S
S 4S j5       r
\S 5       rS
\	4S jrS rS
\4S jrSS S
\4S jrSS S
\4S jrSrg)MfaEnrollmentsi%  z
MfaEnrollments.

:param str effective_mfa_type: currently effective mfa type i.e. id_based_mfa or
      account_based_mfa.
:param IdBasedMfaEnrollment id_based_mfa: (optional)
:param AccountBasedMfaEnrollment account_based_mfa: (optional)
N)id_based_mfaaccount_based_mfaeffective_mfa_typer  r5  r  r  r   c                (    Xl         X l        X0l        g)a  
Initialize a MfaEnrollments object.

:param str effective_mfa_type: currently effective mfa type i.e.
       id_based_mfa or account_based_mfa.
:param IdBasedMfaEnrollment id_based_mfa: (optional)
:param AccountBasedMfaEnrollment account_based_mfa: (optional)
Nr  r  r  )r$   r  r  r  s       r   r"   MfaEnrollments.__init__%  s     #5(!2r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  [        R                  U5      US'   U " S0 UD6$ ):Initialize a MfaEnrollments object from a json dictionary.r  zIRequired property 'effective_mfa_type' not present in MfaEnrollments JSONr  r  rg   rC   rY   r5  r  r  )r   r  r  r  r  r  s         r   r  MfaEnrollments.from_dict%  s     "')),@"AAN);%&jkk!IIn55LB#7#A#A,#OD !&+>!??L(A(K(KL](^D$%{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  MfaEnrollments._from_dict%  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R                  5       US'   [        U S5      (       aZ  U R                  bM  [        U R                  [        5      (       a  U R                  US'   U$ U R                  R                  5       US'   U$ )r  r  r  r  )r  r  r  r  rj   r  r  r  s     r   r  MfaEnrollments.to_dict%  s    4-..43J3J3V*.*A*AE&'4((T->->-J$++T22(,(9(9n%(,(9(9(A(A(Cn%4,--$2H2H2T$00$77-1-C-C)*  .2-C-C-K-K-M)*r   c                 "    U R                  5       $ r  r  r  s    r   r  MfaEnrollments._to_dict%  r  r   c                 H    [         R                  " U R                  5       SS9$ )z5Return a `str` version of this MfaEnrollments object.r  r  r  r  s    r   r  MfaEnrollments.__str__%  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  MfaEnrollments.__eq__%  r  r   c                     X:X  + $ r  rg   r  s     r   r  MfaEnrollments.__ne__%  r  r   )r  r  r  rc  rg   r   r   r  r  %  s     :>CG33 56	3
 $$?@3 
3& d '7   $ $ "4 4/, / /!, ! !r   r  c                       \ rS rSrSrS\S\SS4S jr\S\SS 4S	 j5       r	\S
 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r  i%  z
Metadata for external access policy.

:param str id: ID of Access Policy Template.
:param str version: Version of Access Policy Template.
rb   r  r   Nc                     Xl         X l        g)z
Initialize a PolicyTemplateReference object.

:param str id: ID of Access Policy Template.
:param str version: Version of Access Policy Template.
Nrb   r  )r$   rb   r  s      r   r"    PolicyTemplateReference.__init__&  s     r   r  c                     0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eU " S0 UD6$ )CInitialize a PolicyTemplateReference object from a json dictionary.rb   zBRequired property 'id' not present in PolicyTemplateReference JSONr  zGRequired property 'version' not present in PolicyTemplateReference JSONrg   r  )r   r  r  rb   r  s        r   r  !PolicyTemplateReference.from_dict&  sb     ))D/!B.Jcddyy++G8%Ohii{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  "PolicyTemplateReference._from_dict&  r  r   c                     0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  rb   r  )r  rb   r  r  s     r   r  PolicyTemplateReference.to_dict"&  sS    4477#6''E$K4##(@#||E)r   c                 "    U R                  5       $ r  r  r  s    r   r   PolicyTemplateReference._to_dict+&  r  r   c                 H    [         R                  " U R                  5       SS9$ )z>Return a `str` version of this PolicyTemplateReference object.r  r  r  r  s    r   r  PolicyTemplateReference.__str__/&  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  PolicyTemplateReference.__eq__3&  r  r   c                     X:X  + $ r  rg   r  s     r   r  PolicyTemplateReference.__ne__9&  r  r   r  r  r  r  r  r  r  r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   r  r  %  s      
	 d '@   $ $ 4 4/5 /$ /!5 !$ !r   r  c                       \ rS rSrSrSSSSS.S\S\S\S\S	\S
\S   S\	\   S\	\   S\	\   S\	\   SS4S jjr
\S\SS 4S j5       r\S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ProfileClaimRulei>&  ai  
ProfileClaimRule.

:param str id: the unique identifier of the claim rule.
:param str entity_tag: version of the claim rule.
:param datetime created_at: If set contains a date time string of the creation
      date in ISO format.
:param datetime modified_at: (optional) If set contains a date time string of
      the last modification date in ISO format.
:param str name: (optional) The optional claim rule name.
:param str type: Type of the claim rule, either 'Profile-SAML' or 'Profile-CR'.
:param str realm_name: (optional) The realm name of the Idp this claim rule
      applies to.
:param int expiration: Session expiration in seconds.
:param str cr_type: (optional) The compute resource type. Not required if type
      is Profile-SAML. Valid values are VSI, IKS_SA, ROKS_SA.
:param List[ProfileClaimRuleConditions] conditions: Conditions of this claim
      rule.
N)r  r)   r   r   rb   r'  rU  r   r   r   r   r  r)   r   r   r   c                |    Xl         X l        X0l        Xpl        Xl        X@l        Xl        XPl        Xl        X`l	        g)a  
Initialize a ProfileClaimRule object.

:param str id: the unique identifier of the claim rule.
:param str entity_tag: version of the claim rule.
:param datetime created_at: If set contains a date time string of the
       creation date in ISO format.
:param str type: Type of the claim rule, either 'Profile-SAML' or
       'Profile-CR'.
:param int expiration: Session expiration in seconds.
:param List[ProfileClaimRuleConditions] conditions: Conditions of this
       claim rule.
:param datetime modified_at: (optional) If set contains a date time string
       of the last modification date in ISO format.
:param str name: (optional) The optional claim rule name.
:param str realm_name: (optional) The realm name of the Idp this claim rule
       applies to.
:param str cr_type: (optional) The compute resource type. Not required if
       type is Profile-SAML. Valid values are VSI, IKS_SA, ROKS_SA.
N)
rb   r'  rU  r  r)   r   r   r   r   r   )r$   rb   r'  rU  r   r   r   r  r)   r   r   s              r   r"   ProfileClaimRule.__init__S&  s8    D $$&		$$$r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  [        U5      US'   O[        S5      eUR                  S5      =nb  [        U5      US'   UR                  S5      =nb  XrS'   UR                  S	5      =nb  XS	'   O[        S
5      eUR                  S5      =n	b  XS'   UR                  S5      =n
b  XS'   O[        S5      eUR                  S5      =nb  XS'   UR                  S5      =nb*  U Vs/ s H  n[        R	                  U5      PM     snUS'   O[        S5      eU " S0 UD6$ s  snf )<Initialize a ProfileClaimRule object from a json dictionary.rb   z;Required property 'id' not present in ProfileClaimRule JSONr'  zCRequired property 'entity_tag' not present in ProfileClaimRule JSONrU  zCRequired property 'created_at' not present in ProfileClaimRule JSONr  r)   r   z=Required property 'type' not present in ProfileClaimRule JSONr   r   zCRequired property 'expiration' not present in ProfileClaimRule JSONr   r   zCRequired property 'conditions' not present in ProfileClaimRule JSONrg   )rC   rY   r   r   r  )r   r  r  rb   r'  rU  r  r)   r   r   r   r   r   r^   s                 r   r  ProfileClaimRule.from_dict&  s    ))D/!B.J\]]))L11J>!+dee))L11J>!3J!?Ddee 99]33K@"4["ADIIf%%D2LIIf%%D2L^__))L11J>!+))L11J>!+deeyy++G8%O))L11J>S]!^S]a"<"F"Fq"IS]!^Ddee{T{ "_s   E<c                 $    U R                  U5      $ )r  r  r  s     r   r  ProfileClaimRule._from_dict&  r  r   c                 T   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a%  U R                  b  [	        U R                  5      US'   [        U S5      (       a%  U R
                  b  [	        U R
                  5      US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S	5      (       a  U R                  b  U R                  US	'   [        U S
5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S
'   U$ )r  rb   r'  rU  r  r)   r   r   r   r   r   )r  rb   r'  rU  r   r  r)   r   r   r   r   r   r  rj   r  r  r$   r  conditions_listr^   s       r   r  ProfileClaimRule.to_dict&  s   4477#6''E$K4&&4??+F"&//E,4&&4??+F"4T__"EE,4''D,<,<,H#5d6F6F#GE- 4  TYY%: IIE&M4  TYY%: IIE&M4&&4??+F"&//E,4&&4??+F"&//E,4##(@#||E)4&&4??+F O__a&&#**1-#**199;7	 %
 #2,r   c                 "    U R                  5       $ r  r  r  s    r   r  ProfileClaimRule._to_dict&  r  r   c                 H    [         R                  " U R                  5       SS9$ )z7Return a `str` version of this ProfileClaimRule object.r  r  r  r  s    r   r  ProfileClaimRule.__str__&  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ProfileClaimRule.__eq__&  r  r   c                     X:X  + $ r  rg   r  s     r   r  ProfileClaimRule.__ne__&  r  r   )
r   r   rU  r'  r   rb   r  r)   r   r   )r  r  r  r  r  r  r   r  r   r   r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   r  r  >&  s   : +/"$(!%+%+% +% 	+%
 +% +% 56+% h'+% sm+% SM+% #+% 
+%Z #d #'9 # #J $ $ >4 4/. /4 /!. !4 !r   r  c                       \ rS rSrSrS\S\S\SS4S jr\S	\SS 4S
 j5       r	\S 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r   i&  a  
ProfileClaimRuleConditions.

:param str claim: The claim to evaluate against. [Learn
      more](/docs/account?topic=account-iam-condition-properties&interface=ui#cr-attribute-names).
:param str operator: The operation to perform on the claim. valid values are
      EQUALS, NOT_EQUALS, EQUALS_IGNORE_CASE, NOT_EQUALS_IGNORE_CASE, CONTAINS, IN.
:param str value: The stringified JSON value that the claim is compared to using
      the operator.
claimoperatorvaluer   Nc                 (    Xl         X l        X0l        g)a  
Initialize a ProfileClaimRuleConditions object.

:param str claim: The claim to evaluate against. [Learn
       more](/docs/account?topic=account-iam-condition-properties&interface=ui#cr-attribute-names).
:param str operator: The operation to perform on the claim. valid values
       are EQUALS, NOT_EQUALS, EQUALS_IGNORE_CASE, NOT_EQUALS_IGNORE_CASE,
       CONTAINS, IN.
:param str value: The stringified JSON value that the claim is compared to
       using the operator.
Nr  r  r  )r$   r  r  r  s       r   r"   #ProfileClaimRuleConditions.__init__&  s    " 
 
r   r  c                     0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eU " S0 UD6$ )FInitialize a ProfileClaimRuleConditions object from a json dictionary.r  zHRequired property 'claim' not present in ProfileClaimRuleConditions JSONr  zKRequired property 'operator' not present in ProfileClaimRuleConditions JSONr  zHRequired property 'value' not present in ProfileClaimRuleConditions JSONrg   r  )r   r  r  r  r  r  s         r   r  $ProfileClaimRuleConditions.from_dict&  s     YYw''E4!Mijj		*--H:'lmmYYw''E4!Mijj{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  %ProfileClaimRuleConditions._from_dict'  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r  r  r  )r  r  r  r  r  s     r   r  "ProfileClaimRuleConditions.to_dict'  sv    4!!djj&<!ZZE'N4$$)B $E*4!!djj&<!ZZE'Nr   c                 "    U R                  5       $ r  r  r  s    r   r  #ProfileClaimRuleConditions._to_dict '  r  r   c                 H    [         R                  " U R                  5       SS9$ )zAReturn a `str` version of this ProfileClaimRuleConditions object.r  r  r  r  s    r   r  "ProfileClaimRuleConditions.__str__$'  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  !ProfileClaimRuleConditions.__eq__('  r  r   c                     X:X  + $ r  rg   r  s     r   r  !ProfileClaimRuleConditions.__ne__.'  r  r   r  r  rg   r   r   r   r   &  s    	  	
 
* d 'C  " $ $	 	4 4/8 /T /!8 !T !r   r   c                       \ rS rSrSrSS.S\S   S\S   S	S4S
 jjr\S\	S	S 4S j5       r
\S 5       rS	\	4S jrS rS	\4S jrSS S	\4S jrSS S	\4S jrSrg)ProfileClaimRuleListi3'  z
ProfileClaimRuleList.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param List[ProfileClaimRule] rules: List of claim rules.
N)r   r  r  r   r   r   c                    X l         Xl        g)z
Initialize a ProfileClaimRuleList object.

:param List[ProfileClaimRule] rules: List of claim rules.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
Nr   r  )r$   r  r   s      r   r"   ProfileClaimRuleList.__init__<'  s     
r   r  c                 
   0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb*  U Vs/ s H  n[        R                  U5      PM     snUS'   O[	        S5      eU " S0 UD6$ s  snf )@Initialize a ProfileClaimRuleList object from a json dictionary.r   r  zBRequired property 'rules' not present in ProfileClaimRuleList JSONrg   )rC   r   r  r  rY   )r   r  r  r   r  r^   s         r   r  ProfileClaimRuleList.from_dictL'  s     yy++G8-77@DOYYw''E4DIJEq-77:EJDMcdd{T{ Ks   B c                 $    U R                  U5      $ )r  r  r  s     r   r  ProfileClaimRuleList._from_dictX'  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       am  U R
                  b`  / nU R
                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S'   U$ )r  r   r  )r  r   r  rj   r  r  r  )r$   r  
rules_listr^   s       r   r  ProfileClaimRuleList.to_dict]'  s    4##(@$,,--#'<<i #'<<#7#7#9i 4!!djj&<JZZa&&%%a(%%aiik2	  
 ('Nr   c                 "    U R                  5       $ r  r  r  s    r   r  ProfileClaimRuleList._to_dicto'  r  r   c                 H    [         R                  " U R                  5       SS9$ )z;Return a `str` version of this ProfileClaimRuleList object.r  r  r  r  s    r   r  ProfileClaimRuleList.__str__s'  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ProfileClaimRuleList.__eq__w'  r  r   c                     X:X  + $ r  rg   r  s     r   r  ProfileClaimRuleList.__ne__}'  r  r   r  )r  r  r  r  r  r   r   r"   r  r   r  r  r  r  r  r  r  r  r  r  rg   r   r   r  r  3'  s     04	&' +,	
 
  	d 	'= 	 	 $ $ $4 4/2 /t /!2 !t !r   r  c                       \ rS rSrSrSSS.S\\   S\\S      SS4S	 jjr\	S
\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ProfileIdentitiesResponsei'  z
ProfileIdentitiesResponse.

:param str entity_tag: (optional) Entity tag of the profile identities response.
:param List[ProfileIdentityResponse] identities: (optional) List of identities.
Nr'  r"  r'  r"  ProfileIdentityResponser   c                    Xl         X l        g)z
Initialize a ProfileIdentitiesResponse object.

:param str entity_tag: (optional) Entity tag of the profile identities
       response.
:param List[ProfileIdentityResponse] identities: (optional) List of
       identities.
Nr  )r$   r'  r"  s      r   r"   "ProfileIdentitiesResponse.__init__'  s     %$r   r  c                     0 nUR                  S5      =nb  X2S'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   U " S0 UD6$ s  snf )EInitialize a ProfileIdentitiesResponse object from a json dictionary.r'  r"  rg   )rC   r	  r  )r   r  r  r'  r"  r^   s         r   r  #ProfileIdentitiesResponse.from_dict'  sr     ))L11J>!+))L11J>PZ![PZ1"9"C"CA"FPZ![D{T{ "\r  c                 $    U R                  U5      $ )r  r  r  s     r   r  $ProfileIdentitiesResponse._from_dict'  r  r   c                 `   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   U$ )r  r'  r"  )r  r'  r"  r  rj   r  r  )r$   r  identities_listr^   s       r   r  !ProfileIdentitiesResponse.to_dict'  s    4&&4??+F"&//E,4&&4??+F O__a&&#**1-#**199;7	 %
 #2,r   c                 "    U R                  5       $ r  r  r  s    r   r  "ProfileIdentitiesResponse._to_dict'  r  r   c                 H    [         R                  " U R                  5       SS9$ )z@Return a `str` version of this ProfileIdentitiesResponse object.r  r  r  r  s    r   r  !ProfileIdentitiesResponse.__str__'  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r   ProfileIdentitiesResponse.__eq__'  r  r   c                     X:X  + $ r  rg   r  s     r   r   ProfileIdentitiesResponse.__ne__'  r  r   rm  rg   r   r   r  r  '  s     %)@D	% SM% T";<=	%
 
%" d 'B   $ $ 4 4/7 /D /!7 !D !r   r  c                       \ rS rSrSrSSS.S\S\S\\\      S\\   S	S4
S
 jjr\	S\
S	S 4S j5       r\	S 5       rS	\
4S jrS rS	\4S jrSS S	\4S jrSS S	\4S jr " S S\\5      rSrg)r#  i'  a  
ProfileIdentityRequest.

:param str identifier: Identifier of the identity that can assume the trusted
      profiles. This can be a user identifier (IAM id), serviceid or crn. Internally
      it uses account id of the service id for the identifier 'serviceid' and for the
      identifier 'crn' it uses account id contained in the CRN.
:param str type: Type of the identity.
:param List[str] accounts: (optional) Only valid for the type user. Accounts
      from which a user can assume the trusted profile.
:param str description: (optional) Description of the identity that can assume
      the trusted profile. This is optional field for all the types of identities.
      When this field is not set for the identity type 'serviceid' then the
      description of the service id is used. Description is recommended for the
      identity type 'crn' E.g. 'Instance 1234 of IBM Cloud Service project'.
Nr'  r*  r   r(  rK   r   c                4    Xl         X l        X0l        X@l        g)a  
Initialize a ProfileIdentityRequest object.

:param str identifier: Identifier of the identity that can assume the
       trusted profiles. This can be a user identifier (IAM id), serviceid or crn.
       Internally it uses account id of the service id for the identifier
       'serviceid' and for the identifier 'crn' it uses account id contained in
       the CRN.
:param str type: Type of the identity.
:param List[str] accounts: (optional) Only valid for the type user.
       Accounts from which a user can assume the trusted profile.
:param str description: (optional) Description of the identity that can
       assume the trusted profile. This is optional field for all the types of
       identities. When this field is not set for the identity type 'serviceid'
       then the description of the service id is used. Description is recommended
       for the identity type 'crn' E.g. 'Instance 1234 of IBM Cloud Service
       project'.
Nr.  )r$   r*  r   r(  rK   s        r   r"   ProfileIdentityRequest.__init__'  s    4 %	 &r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   U " S0 UD6$ )BInitialize a ProfileIdentityRequest object from a json dictionary.r*  zIRequired property 'identifier' not present in ProfileIdentityRequest JSONr   zCRequired property 'type' not present in ProfileIdentityRequest JSONr(  rK   rg   r  )r   r  r  r*  r   r(  rK   s          r   r   ProfileIdentityRequest.from_dict'  s     ))L11J>!+jkkIIf%%D2Ldee		*--H:' 99]33K@"-{T{r   c                 $    U R                  U5      $ )r   r  r  s     r   r  !ProfileIdentityRequest._from_dict(  r  r   c                 r   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r*  r   r(  rK   )r  r*  r   r(  rK   r  s     r   r  ProfileIdentityRequest.to_dict(  s    4&&4??+F"&//E,4  TYY%: IIE&M4$$)B $E*4''D,<,<,H#'#3#3E- r   c                 "    U R                  5       $ r  r  r  s    r   r  ProfileIdentityRequest._to_dict!(  r  r   c                 H    [         R                  " U R                  5       SS9$ )z=Return a `str` version of this ProfileIdentityRequest object.r  r  r  r  s    r   r  ProfileIdentityRequest.__str__%(  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ProfileIdentityRequest.__eq__)(  r  r   c                     X:X  + $ r  rg   r  s     r   r  ProfileIdentityRequest.__ne__/(  r  r   c                   $    \ rS rSrSrSrSrSrSrg)ProfileIdentityRequest.TypeEnumi3(  rB  r3  r4  r  rg   NrC  rg   r   r   TypeEnumr/  3(  rF  r   r0  )r(  rK   r*  r   r  r  r  r  r  r  r   r   r"   r  r   r  r  r  r  r  r  r  r  r   r0  r  rg   r   r   r#  r#  '  s    , )-%)'' '
 49%' c]' 
'> d '?  " $ $ 4 4/4 / /!4 ! !3 r   r#  c                       \ rS rSrSrSSS.S\S\S\S\\\      S	\\   S
S4S jjr\	S\
S
S 4S j5       r\	S 5       rS
\
4S jrS rS
\4S jrSS S
\4S jrSS S
\4S jr " S S\\5      rSrg)r	  i=(  a  
ProfileIdentityResponse.

:param str iam_id: IAM ID of the identity.
:param str identifier: Identifier of the identity that can assume the trusted
      profiles. This can be a user identifier (IAM id), serviceid or crn. Internally
      it uses account id of the service id for the identifier 'serviceid' and for the
      identifier 'crn' it uses account id contained in the CRN.
:param str type: Type of the identity.
:param List[str] accounts: (optional) Only valid for the type user. Accounts
      from which a user can assume the trusted profile.
:param str description: (optional) Description of the identity that can assume
      the trusted profile. This is optional field for all the types of identities.
      When this field is not set for the identity type 'serviceid' then the
      description of the service id is used. Description is recommended for the
      identity type 'crn' E.g. 'Instance 1234 of IBM Cloud Service project'.
Nr'  r   r*  r   r(  rK   r   c                @    Xl         X l        X0l        X@l        XPl        g)a  
Initialize a ProfileIdentityResponse object.

:param str iam_id: IAM ID of the identity.
:param str identifier: Identifier of the identity that can assume the
       trusted profiles. This can be a user identifier (IAM id), serviceid or crn.
       Internally it uses account id of the service id for the identifier
       'serviceid' and for the identifier 'crn' it uses account id contained in
       the CRN.
:param str type: Type of the identity.
:param List[str] accounts: (optional) Only valid for the type user.
       Accounts from which a user can assume the trusted profile.
:param str description: (optional) Description of the identity that can
       assume the trusted profile. This is optional field for all the types of
       identities. When this field is not set for the identity type 'serviceid'
       then the description of the service id is used. Description is recommended
       for the identity type 'crn' E.g. 'Instance 1234 of IBM Cloud Service
       project'.
N)r   r*  r   r(  rK   )r$   r   r*  r   r(  rK   s         r   r"    ProfileIdentityResponse.__init__P(  s    8 $	 &r   r  c                 N   0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   U " S	0 UD6$ )
CInitialize a ProfileIdentityResponse object from a json dictionary.r   zFRequired property 'iam_id' not present in ProfileIdentityResponse JSONr*  zJRequired property 'identifier' not present in ProfileIdentityResponse JSONr   zDRequired property 'type' not present in ProfileIdentityResponse JSONr(  rK   rg   r  )r   r  r  r   r*  r   r(  rK   s           r   r  !ProfileIdentityResponse.from_dictr(  s     ii))F6#Nghh))L11J>!+kllIIf%%D2Leff		*--H:' 99]33K@"-{T{r   c                 $    U R                  U5      $ )r6  r  r  s     r   r  "ProfileIdentityResponse._from_dict(  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   U$ )r  r   r*  r   r(  rK   )r  r   r*  r   r(  rK   r  s     r   r  ProfileIdentityResponse.to_dict(  s    4""t{{'>"kkE(O4&&4??+F"&//E,4  TYY%: IIE&M4$$)B $E*4''D,<,<,H#'#3#3E- r   c                 "    U R                  5       $ r  r  r  s    r   r   ProfileIdentityResponse._to_dict(  r  r   c                 H    [         R                  " U R                  5       SS9$ )z>Return a `str` version of this ProfileIdentityResponse object.r  r  r  r  s    r   r  ProfileIdentityResponse.__str__(  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ProfileIdentityResponse.__eq__(  r  r   c                     X:X  + $ r  rg   r  s     r   r  ProfileIdentityResponse.__ne__(  r  r   c                   $    \ rS rSrSrSrSrSrSrg) ProfileIdentityResponse.TypeEnumi(  rB  r3  r4  r  rg   NrC  rg   r   r   r0  rE  (  rF  r   r0  )r(  rK   r   r*  r   r1  rg   r   r   r	  r	  =(  s    0 )-%) ' '  ' 	 ' 49% ' c] ' 
 'D d '@  * $ $ 4 4/5 /$ /!5 !$ !3 r   r	  c                       \ rS rSrSrSS.S\S\S\S\S	\S
SS\\   SS4S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ProfileLinki(  a  
Link details.

:param str id: the unique identifier of the link.
:param str entity_tag: version of the link.
:param datetime created_at: If set contains a date time string of the creation
      date in ISO format.
:param datetime modified_at: If set contains a date time string of the last
      modification date in ISO format.
:param str name: (optional) Optional name of the Link.
:param str cr_type: The compute resource type. Valid values are VSI, BMS,
      IKS_SA, ROKS_SA, CE.
:param ProfileLinkLink link:
Nr   rb   r'  rU  r  r   r  ProfileLinkLinkr)   r   c                X    Xl         X l        X0l        X@l        Xpl        XPl        X`l        g)a  
Initialize a ProfileLink object.

:param str id: the unique identifier of the link.
:param str entity_tag: version of the link.
:param datetime created_at: If set contains a date time string of the
       creation date in ISO format.
:param datetime modified_at: If set contains a date time string of the last
       modification date in ISO format.
:param str cr_type: The compute resource type. Valid values are VSI, BMS,
       IKS_SA, ROKS_SA, CE.
:param ProfileLinkLink link:
:param str name: (optional) Optional name of the Link.
N)rb   r'  rU  r  r)   r   r  )r$   rb   r'  rU  r  r   r  r)   s           r   r"   ProfileLink.__init__(  s(    2 $$&		r   r  c                 F   0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  [        U5      US'   O[        S5      eUR                  S5      =nb  [        U5      US'   O[        S5      eUR                  S	5      =nb  XrS	'   UR                  S
5      =nb  XS
'   O[        S5      eUR                  S5      =n	b  [        R	                  U	5      US'   O[        S5      eU " S0 UD6$ )7Initialize a ProfileLink object from a json dictionary.rb   z6Required property 'id' not present in ProfileLink JSONr'  z>Required property 'entity_tag' not present in ProfileLink JSONrU  z>Required property 'created_at' not present in ProfileLink JSONr  z?Required property 'modified_at' not present in ProfileLink JSONr)   r   z;Required property 'cr_type' not present in ProfileLink JSONr  z8Required property 'link' not present in ProfileLink JSONrg   )rC   rY   r   rH  r  )
r   r  r  rb   r'  rU  r  r)   r   r  s
             r   r  ProfileLink.from_dict(  s7    ))D/!B.JWXX))L11J>!+_``))L11J>!3J!?D_`` 99]33K@"4["AD`aaIIf%%D2Lyy++G8%O\]]IIf%%D2*44T:DLYZZ{T{r   c                 $    U R                  U5      $ )rL  r  r  s     r   r  ProfileLink._from_dict	)  r  r   c                     0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a%  U R                  b  [	        U R                  5      US'   [        U S5      (       a%  U R
                  b  [	        U R
                  5      US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       aZ  U R                  bM  [        U R                  [        5      (       a  U R                  US'   U$ U R                  R                  5       US'   U$ )r  rb   r'  rU  r  r)   r   r  )r  rb   r'  rU  r   r  r)   r   r  r  rj   r  r  s     r   r  ProfileLink.to_dict)  sC   4477#6''E$K4&&4??+F"&//E,4&&4??+F"4T__"EE,4''D,<,<,H#5d6F6F#GE- 4  TYY%: IIE&M4##(@#||E)4  TYY%:$))T** $		f  !%		 1 1 3fr   c                 "    U R                  5       $ r  r  r  s    r   r  ProfileLink._to_dict$)  r  r   c                 H    [         R                  " U R                  5       SS9$ )z2Return a `str` version of this ProfileLink object.r  r  r  r  s    r   r  ProfileLink.__str__()  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ProfileLink.__eq__,)  r  r   c                     X:X  + $ r  rg   r  s     r   r  ProfileLink.__ne__2)  r  r   )r   rU  r'  rb   r  r  r)   )r  r  r  r  r  r  r   r   r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   rG  rG  (  s    0 #  	
     sm 
B d }  > $ $ ,4 4/M /d /!M !d !r   rG  c                       \ rS rSrSrSSSSSS.S\\   S\\   S\\   S\\   S	\\   S
S4S jjr\S\	S
S 4S j5       r
\S 5       rS
\	4S jrS rS
\4S jrSS S
\4S jrSS S
\4S jrSrg)rH  i7)  a  
ProfileLinkLink.

:param str crn: (optional) The CRN of the compute resource.
:param str namespace: (optional) The compute resource namespace, only required
      if cr_type is IKS_SA or ROKS_SA.
:param str name: (optional) Name of the compute resource, only required if
      cr_type is IKS_SA or ROKS_SA.
:param str component_type: (optional) Component type of the compute resource,
      only required if cr_type is CE.
:param str component_name: (optional) Component name of the compute resource,
      only required if cr_type is CE.
Nr
  r  r  r)   r  r  r   c                @    Xl         X l        X0l        X@l        XPl        g)a4  
Initialize a ProfileLinkLink object.

:param str crn: (optional) The CRN of the compute resource.
:param str namespace: (optional) The compute resource namespace, only
       required if cr_type is IKS_SA or ROKS_SA.
:param str name: (optional) Name of the compute resource, only required if
       cr_type is IKS_SA or ROKS_SA.
:param str component_type: (optional) Component type of the compute
       resource, only required if cr_type is CE.
:param str component_name: (optional) Component name of the compute
       resource, only required if cr_type is CE.
Nr
  r  s         r   r"   ProfileLinkLink.__init__F)  r  r   r  c                    0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   U " S0 UD6$ );Initialize a ProfileLinkLink object from a json dictionary.r  r  r)   r  r  rg   rj  r  s           r   r  ProfileLinkLink.from_dictb)  s     99U##C0K;//I< )IIf%%D2L#ii(899NF%3!"#ii(899NF%3!"{T{r   c                 $    U R                  U5      $ )r^  r  r  s     r   r  ProfileLinkLink._from_dictr)  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   U$ r  r  r  s     r   r  ProfileLinkLink.to_dictw)  r  r   c                 "    U R                  5       $ r  r  r  s    r   r  ProfileLinkLink._to_dict)  r  r   c                 H    [         R                  " U R                  5       SS9$ )z6Return a `str` version of this ProfileLinkLink object.r  r  r  r  s    r   r  ProfileLinkLink.__str__)  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ProfileLinkLink.__eq__)  r  r   c                     X:X  + $ r  rg   r  s     r   r  ProfileLinkLink.__ne__)  r  r   r  rx  rg   r   r   rH  rH  7)  s    " "#'"(,(,- c]- C=	-
 sm- !- !- 
-8 d '8   $ $ 4 4/- /$ /!- !$ !r   rH  c                       \ rS rSrSrS\S   SS4S jr\S\SS 4S	 j5       r	\S
 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ProfileLinkListi)  zW
ProfileLinkList.

:param List[ProfileLink] links: List of links to a trusted profile.
linksrG  r   Nc                     Xl         g)zk
Initialize a ProfileLinkList object.

:param List[ProfileLink] links: List of links to a trusted profile.
Nrn  )r$   rn  s     r   r"   ProfileLinkList.__init__)  s	     
r   r  c                     0 nUR                  S5      =nb*  U Vs/ s H  n[        R                  U5      PM     snUS'   O[        S5      eU " S0 UD6$ s  snf );Initialize a ProfileLinkList object from a json dictionary.rn  z=Required property 'links' not present in ProfileLinkList JSONrg   )rC   rG  r  rY   )r   r  r  rn  r^   s        r   r  ProfileLinkList.from_dict)  s^     YYw''E4?DEu![2215uEDM^__{T{ Frw  c                 $    U R                  U5      $ )rs  r  r  s     r   r  ProfileLinkList._from_dict)  r  r   c                    0 n[        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR	                  U5        M+  UR	                  UR                  5       5        ML     X!S'   U$ )r  rn  )r  rn  r  rj   r  r  )r$   r  
links_listr^   s       r   r  ProfileLinkList.to_dict)  sm    4!!djj&<JZZa&&%%a(%%aiik2	  
 ('Nr   c                 "    U R                  5       $ r  r  r  s    r   r  ProfileLinkList._to_dict)  r  r   c                 H    [         R                  " U R                  5       SS9$ )z6Return a `str` version of this ProfileLinkList object.r  r  r  r  s    r   r  ProfileLinkList.__str__)  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ProfileLinkList.__eq__)  r  r   c                     X:X  + $ r  rg   r  s     r   r  ProfileLinkList.__ne__)  r  r   rp  r  rg   r   r   rm  rm  )  s    	M"	 
	 d '8   $ $ 4 4/- /$ /!- !$ !r   rm  c                       \ rS rSrSrSSSSS.S\S\S\S\S	\S
\\S      S\\S      S\\S      S\\S      SS4S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)Reporti)  aT  
Report.

:param str created_by: IAMid of the user who triggered the report.
:param str reference: Unique reference used to generate the report.
:param str report_duration: Duration in hours for which the report is generated.
:param str report_start_time: Start time of the report.
:param str report_end_time: End time of the report.
:param List[UserActivity] users: (optional) List of users.
:param List[ApikeyActivity] apikeys: (optional) List of apikeys.
:param List[EntityActivity] serviceids: (optional) List of serviceids.
:param List[EntityActivity] profiles: (optional) List of profiles.
N)usersr;  
serviceidsprofilesr  rA  report_durationreport_start_timereport_end_timer  UserActivityr;  rO  r  r  r  r   c                p    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        g)ao  
Initialize a Report object.

:param str created_by: IAMid of the user who triggered the report.
:param str reference: Unique reference used to generate the report.
:param str report_duration: Duration in hours for which the report is
       generated.
:param str report_start_time: Start time of the report.
:param str report_end_time: End time of the report.
:param List[UserActivity] users: (optional) List of users.
:param List[ApikeyActivity] apikeys: (optional) List of apikeys.
:param List[EntityActivity] serviceids: (optional) List of serviceids.
:param List[EntityActivity] profiles: (optional) List of profiles.
N)	r  rA  r  r  r  r  r;  r  r  )
r$   r  rA  r  r  r  r  r;  r  r  s
             r   r"   Report.__init__)  s4    6 %".!2.
$ r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eUR                  S	5      =nb  XrS	'   O[        S
5      eUR                  S5      =nb)  U V	s/ s H  n	[        R                  U	5      PM     sn	US'   UR                  S5      =n
b)  U
 V	s/ s H  n	[        R                  U	5      PM     sn	US'   UR                  S5      =nb)  U V	s/ s H  n	[
        R                  U	5      PM     sn	US'   UR                  S5      =nb)  U V	s/ s H  n	[
        R                  U	5      PM     sn	US'   U " S0 UD6$ s  sn	f s  sn	f s  sn	f s  sn	f )2Initialize a Report object from a json dictionary.r  z9Required property 'created_by' not present in Report JSONrA  z8Required property 'reference' not present in Report JSONr  z>Required property 'report_duration' not present in Report JSONr  z@Required property 'report_start_time' not present in Report JSONr  z>Required property 'report_end_time' not present in Report JSONr  r;  r  r  rg   )rC   rY   r  r  rO  r  )r   r  r  r  rA  r  r  r  r  r^   r;  r  r  s                r   r  Report.from_dict*  s    ))L11J>!+Z[[;//I< )YZZ$yy):;;OH&5"#_``!&+>!??L(9$%abb$yy):;;OH&5"#_``YYw''E4@EF1\33A6FDMyy++G8DKLGq~77:GLDO))L11J>GQ!Rz!.":":1"=z!RD		*--H:EMNX 8 8 ;XND{T{ GL!RNs   F3F8	F=Gc                 $    U R                  U5      $ )r  r  r  s     r   r  Report._from_dict0*  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     XAS'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     XQS'   [        U S	5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     XaS	'   U$ )
r  r  rA  r  r  r  r  r;  r  r  )r  r  rA  r  r  r  r  r  rj   r  r  r;  r  r  )r$   r  
users_listr^   rD  serviceids_listprofiles_lists          r   r  Report.to_dict5*  sY   4&&4??+F"&//E,4%%$..*D!%E+4*++0D0D0P'+';';E#$4,--$2H2H2T)-)?)?E%&4*++0D0D0P'+';';E#$4!!djj&<JZZa&&%%a(%%aiik2	  
 ('N4##(@L\\a&& ''* ''		4	 "
  ,)4&&4??+F O__a&&#**1-#**199;7	 %
 #2,4$$)BM]]a&&!((+!((5	 #
 !.*r   c                 "    U R                  5       $ r  r  r  s    r   r  Report._to_dictd*  r  r   c                 H    [         R                  " U R                  5       SS9$ )z-Return a `str` version of this Report object.r  r  r  r  s    r   r  Report.__str__h*  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  Report.__eq__l*  r  r   c                     X:X  + $ r  rg   r  s     r   r  Report.__ne__r*  r  r   )	r;  r  r  rA  r  r  r  r  r  r  rg   r   r   r  r  )  s#   , 15487;59#!#! #! 	#!
 #! #! ^,-#! $/01#! T"234#! 4 012#! 
#!J d x  B $ $- -^4 4/H / /!H ! !r   r  c                       \ rS rSrSrSSS.S\S\S\S\S	\\   S
\\S      SS4S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ReportMfaEnrollmentStatusiw*  a  
ReportMfaEnrollmentStatus.

:param str created_by: IAMid of the user who triggered the report.
:param str reference: Unique reference used to generate the report.
:param str report_time: Date time at which report is generated. Date is in ISO
      format.
:param str account_id: BSS account id of the user who triggered the report.
:param str ims_account_id: (optional) IMS account id of the user who triggered
      the report.
:param List[UserReportMfaEnrollmentStatus] users: (optional) List of users.
N)ims_account_idr  r  rA  report_timer'   r  r  UserReportMfaEnrollmentStatusr   c                L    Xl         X l        X0l        X@l        XPl        X`l        g)a  
Initialize a ReportMfaEnrollmentStatus object.

:param str created_by: IAMid of the user who triggered the report.
:param str reference: Unique reference used to generate the report.
:param str report_time: Date time at which report is generated. Date is in
       ISO format.
:param str account_id: BSS account id of the user who triggered the report.
:param str ims_account_id: (optional) IMS account id of the user who
       triggered the report.
:param List[UserReportMfaEnrollmentStatus] users: (optional) List of users.
N)r  rA  r  r'   r  r  )r$   r  rA  r  r'   r  r  s          r   r"   "ReportMfaEnrollmentStatus.__init__*  s$    , %"&$,
r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eUR                  S	5      =nb  XrS	'   UR                  S
5      =nb)  U V	s/ s H  n	[        R                  U	5      PM     sn	US
'   U " S0 UD6$ s  sn	f )EInitialize a ReportMfaEnrollmentStatus object from a json dictionary.r  zLRequired property 'created_by' not present in ReportMfaEnrollmentStatus JSONrA  zKRequired property 'reference' not present in ReportMfaEnrollmentStatus JSONr  zMRequired property 'report_time' not present in ReportMfaEnrollmentStatus JSONr'   zLRequired property 'account_id' not present in ReportMfaEnrollmentStatus JSONr  r  rg   )rC   rY   r  r  )
r   r  r  r  rA  r  r'   r  r  r^   s
             r   r  #ReportMfaEnrollmentStatus.from_dict*  s    ))L11J>!+mnn;//I< )lmm 99]33K@"-noo))L11J>!+mnn#ii(899NF%3!"YYw''E4QVWQVA:DDQGQVWDM{T{ Xs   C0c                 $    U R                  U5      $ )r  r  r  s     r   r  $ReportMfaEnrollmentStatus._from_dict*  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   U$ )r  r  rA  r  r'   r  r  )r  r  rA  r  r'   r  r  r  rj   r  r  )r$   r  r  r^   s       r   r  !ReportMfaEnrollmentStatus.to_dict*  s+   4&&4??+F"&//E,4%%$..*D!%E+4''D,<,<,H#'#3#3E- 4&&4??+F"&//E,4)**t/B/B/N&*&9&9E"#4!!djj&<JZZa&&%%a(%%aiik2	  
 ('Nr   c                 "    U R                  5       $ r  r  r  s    r   r  "ReportMfaEnrollmentStatus._to_dict*  r  r   c                 H    [         R                  " U R                  5       SS9$ )z@Return a `str` version of this ReportMfaEnrollmentStatus object.r  r  r  r  s    r   r  !ReportMfaEnrollmentStatus.__str__*  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r   ReportMfaEnrollmentStatus.__eq__*  r  r   c                     X:X  + $ r  rg   r  s     r   r   ReportMfaEnrollmentStatus.__ne__*  r  r   )r'   r  r  rA  r  r  r  rg   r   r   r  r  w*  s    ( )-AE  	
  ! <=> 
: d 'B  2 $ $ .4 4/7 /D /!7 !D !r   r  c                       \ rS rSrSrS\SS4S jr\S\SS 4S j5       r	\S	 5       r
S\4S
 jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ReportReferencei*  zS
ReportReference.

:param str reference: Reference for the report to be generated.
rA  r   Nc                     Xl         g)zg
Initialize a ReportReference object.

:param str reference: Reference for the report to be generated.
NrA  )r$   rA  s     r   r"   ReportReference.__init__*  s	     #r   r  c                 ^    0 nUR                  S5      =nb  X2S'   O[        S5      eU " S0 UD6$ );Initialize a ReportReference object from a json dictionary.rA  zARequired property 'reference' not present in ReportReference JSONrg   r  )r   r  r  rA  s       r   r  ReportReference.from_dict*  s=     ;//I< )bcc{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  ReportReference._from_dict+  r  r   c                 d    0 n[        U S5      (       a  U R                  b  U R                  US'   U$ )r  rA  )r  rA  r  s     r   r  ReportReference.to_dict+  s0    4%%$..*D!%E+r   c                 "    U R                  5       $ r  r  r  s    r   r  ReportReference._to_dict+  r  r   c                 H    [         R                  " U R                  5       SS9$ )z6Return a `str` version of this ReportReference object.r  r  r  r  s    r   r  ReportReference.__str__+  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ReportReference.__eq__+  r  r   c                     X:X  + $ r  rg   r  s     r   r  ReportReference.__ne__!+  r  r   r  r  rg   r   r   r  r  *  s    	#	# 
	# d '8   $ $ 4 4/- /$ /!- !$ !r   r  c                   "   \ rS rSrSrSSSSSSSSSSSS.S\\   S\\   S\\   S\\   S	\\   S
\\   S\\   S\\   S\\   S\\   S\\   SS4S jjr\S\	SS 4S j5       r
\S 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r   i&+  a~  
Context with key properties for problem determination.

:param str transaction_id: (optional) The transaction ID of the inbound REST
      request.
:param str operation: (optional) The operation of the inbound REST request.
:param str user_agent: (optional) The user agent of the inbound REST request.
:param str url: (optional) The URL of that cluster.
:param str instance_id: (optional) The instance ID of the server instance
      processing the request.
:param str thread_id: (optional) The thread ID of the server instance processing
      the request.
:param str host: (optional) The host of the server instance processing the
      request.
:param str start_time: (optional) The start time of the request.
:param str end_time: (optional) The finish time of the request.
:param str elapsed_time: (optional) The elapsed time in msec.
:param str cluster_name: (optional) The cluster name.
Ntransaction_id	operation
user_agentr>   instance_id	thread_idhost
start_timeend_timeelapsed_timecluster_namer  r  r  r>   r  r  r  r  r  r  r  r   c                    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        Xl	        Xl
        g)aw  
Initialize a ResponseContext object.

:param str transaction_id: (optional) The transaction ID of the inbound
       REST request.
:param str operation: (optional) The operation of the inbound REST request.
:param str user_agent: (optional) The user agent of the inbound REST
       request.
:param str url: (optional) The URL of that cluster.
:param str instance_id: (optional) The instance ID of the server instance
       processing the request.
:param str thread_id: (optional) The thread ID of the server instance
       processing the request.
:param str host: (optional) The host of the server instance processing the
       request.
:param str start_time: (optional) The start time of the request.
:param str end_time: (optional) The finish time of the request.
:param str elapsed_time: (optional) The elapsed time in msec.
:param str cluster_name: (optional) The cluster name.
Nr  )r$   r  r  r  r>   r  r  r  r  r  r  r  s               r   r"   ResponseContext.__init__;+  s@    F -"$&"	$ ((r   r  c                 &   0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S5      =nb  XS'   UR                  S5      =n	b  XS'   UR                  S5      =n
b  XS'   UR                  S	5      =nb  XS	'   UR                  S
5      =nb  XS
'   UR                  S5      =nb  XS'   U " S0 UD6$ );Initialize a ResponseContext object from a json dictionary.r  r  r  r>   r  r  r  r  r  r  r  rg   rj  )r   r  r  r  r  r  r>   r  r  r  r  r  r  r  s                 r   r  ResponseContext.from_dictj+  sI    #ii(899NF%3!";//I< )))L11J>!+99U##C0K 99]33K@"-;//I< )IIf%%D2L))L11J>!+		*--H:'!IIn55LB#/ !IIn55LB#/ {T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  ResponseContext._from_dict+  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S	5      (       a  U R                  b  U R                  US	'   [        U S
5      (       a  U R                  b  U R                  US
'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r  r  r  r>   r  r  r  r  r  r  r  )r  r  r  r  r>   r  r  r  r  r  r  r  r  s     r   r  ResponseContext.to_dict+  s   4)**t/B/B/N&*&9&9E"#4%%$..*D!%E+4&&4??+F"&//E,4DHH$888E%L4''D,<,<,H#'#3#3E- 4%%$..*D!%E+4  TYY%: IIE&M4&&4??+F"&//E,4$$)B $E*4((T->->-J$($5$5E.!4((T->->-J$($5$5E.!r   c                 "    U R                  5       $ r  r  r  s    r   r  ResponseContext._to_dict+  r  r   c                 H    [         R                  " U R                  5       SS9$ )z6Return a `str` version of this ResponseContext object.r  r  r  r  s    r   r  ResponseContext.__str__+  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ResponseContext.__eq__+  r  r   c                     X:X  + $ r  rg   r  s     r   r  ResponseContext.__ne__+  r  r   )r  r  r  r  r  r  r  r  r  r>   r  rx  rg   r   r   r   r   &+  sP   . )-#'$(!%)#'"$("&&*&*-) !-) C=	-)
 SM-) c]-) c]-) C=-) sm-) SM-) 3--) sm-) sm-) 
-)^ d '8  6 $ $ 64 4/- /$ /!- !$ !r   r   c            #       "   \ rS rSrSrSSSSSSSS.S\S\S\S\S	\S
\S\S\S\S\S   S\\   S\\   S\\	\      S\\	S      S\S   S\S   SS4"S jjr
\S\SS 4S j5       r\S 5       rS\4S jrS rS\4S  jrS!S S\4S" jrS!S S\4S# jrS$rg)%	ServiceIdi+  aH  
Response body format for service ID V1 REST requests.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param str id: Unique identifier of this Service Id.
:param str iam_id: Cloud wide identifier for identities of this service ID.
:param str entity_tag: Version of the service ID details object. You need to
      specify this value when updating the service ID to avoid stale updates.
:param str crn: Cloud Resource Name of the item. Example Cloud Resource Name:
      'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::serviceid:1234-5678-9012'.
:param bool locked: The service ID cannot be changed if set to true.
:param datetime created_at: If set contains a date time string of the creation
      date in ISO format.
:param datetime modified_at: If set contains a date time string of the last
      modification date in ISO format.
:param str account_id: ID of the account the service ID belongs to.
:param str group_id: (optional) ID of the group to which the service ID belongs
      to. Only set if requested via parameter `show_group_id`.
:param str name: Name of the Service Id. The name is not checked for uniqueness.
      Therefore multiple names with the same value can exist. Access is done via the
      UUID of the Service Id.
:param str description: (optional) The optional description of the Service Id.
      The 'description' property is only available if a description was provided
      during a create of a Service Id.
:param List[str] unique_instance_crns: (optional) Optional list of CRNs (string
      array) which point to the services connected to the service ID.
:param List[EnityHistoryRecord] history: (optional) History of the Service ID.
:param ApiKey apikey: (optional) Response body format for API key V1 REST
      requests.
:param Activity activity: (optional)
N)r   r(   rK   rL   r&  rM   r  rb   r   r'  r  r  rU  r  r'   r)   r   r   r(   rK   rL   r&  r(  rM   r  r  r  r   c
                    Xl         Xl        X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl	        Xl
        Xl        Xl        Xl        Xl        UU l        g)aK  
Initialize a ServiceId object.

:param str id: Unique identifier of this Service Id.
:param str iam_id: Cloud wide identifier for identities of this service ID.
:param str entity_tag: Version of the service ID details object. You need
       to specify this value when updating the service ID to avoid stale updates.
:param str crn: Cloud Resource Name of the item. Example Cloud Resource
       Name:
       'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::serviceid:1234-5678-9012'.
:param bool locked: The service ID cannot be changed if set to true.
:param datetime created_at: If set contains a date time string of the
       creation date in ISO format.
:param datetime modified_at: If set contains a date time string of the last
       modification date in ISO format.
:param str account_id: ID of the account the service ID belongs to.
:param str name: Name of the Service Id. The name is not checked for
       uniqueness. Therefore multiple names with the same value can exist. Access
       is done via the UUID of the Service Id.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param str group_id: (optional) ID of the group to which the service ID
       belongs to. Only set if requested via parameter `show_group_id`.
:param str description: (optional) The optional description of the Service
       Id. The 'description' property is only available if a description was
       provided during a create of a Service Id.
:param List[str] unique_instance_crns: (optional) Optional list of CRNs
       (string array) which point to the services connected to the service ID.
:param List[EnityHistoryRecord] history: (optional) History of the Service
       ID.
:param ApiKey apikey: (optional) Response body format for API key V1 REST
       requests.
:param Activity activity: (optional)
N)r   rb   r   r'  r  r  rU  r  r'   r(   r)   rK   rL   r&  rM   r  )r$   rb   r   r'  r  r  rU  r  r'   r)   r   r(   rK   rL   r&  rM   r  s                    r   r"   ServiceId.__init__+  sZ    l $$&$ 	&$8! r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eUR                  S5      =nb  XrS'   O[        S	5      eUR                  S
5      =nb  XS
'   O[        S5      eUR                  S5      =n	b  [	        U	5      US'   O[        S5      eUR                  S5      =n
b  [	        U
5      US'   O[        S5      eUR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  XS'   UR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  XS'   UR                  S5      =nb  XS'   UR                  S5      =nb)  U Vs/ s H  n[
        R                  U5      PM     snUS'   UR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  [        R                  U5      US'   U " S0 UD6$ s  snf )5Initialize a ServiceId object from a json dictionary.r   rb   z4Required property 'id' not present in ServiceId JSONr   z8Required property 'iam_id' not present in ServiceId JSONr'  z<Required property 'entity_tag' not present in ServiceId JSONr  z5Required property 'crn' not present in ServiceId JSONr  z8Required property 'locked' not present in ServiceId JSONrU  z<Required property 'created_at' not present in ServiceId JSONr  z=Required property 'modified_at' not present in ServiceId JSONr'   z<Required property 'account_id' not present in ServiceId JSONr(   r)   z6Required property 'name' not present in ServiceId JSONrK   rL   r&  rM   r  rg   )rC   r   r  rY   r   r(  r  r  )r   r  r  r   rb   r   r'  r  r  rU  r  r'   r(   r)   rK   rL   r&  r^   rM   r  s                       r   r  ServiceId.from_dict",  s    yy++G8-77@DO))D/!B.JUVVii))F6#NYZZ))L11J>!+]^^99U##C0KVWWii))F6#NYZZ))L11J>!3J!?D]^^ 99]33K@"4["AD^__))L11J>!+]^^		*--H:'IIf%%D2LWXX 99]33K@"-$)II.D$EE R+?'(yy++G8HOP11;;A>PDOii))F6#--f5DN		*--H:'11(;D{T{ Qs   'I,c                 $    U R                  U5      $ )r  r  r  s     r   r  ServiceId._from_dictZ,  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a%  U R                  b  [        U R                  5      US'   [        U S5      (       a%  U R                  b  [        U R                  5      US'   [        U S	5      (       a  U R                  b  U R                  US	'   [        U S
5      (       a  U R                  b  U R                  US
'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                   b  U R                   US'   [        U S5      (       a  U R"                  b  U R"                  US'   [        U S5      (       am  U R$                  b`  / nU R$                   HJ  n[        U[        5      (       a  UR'                  U5        M+  UR'                  UR	                  5       5        ML     X!S'   [        U S5      (       aY  U R(                  bL  [        U R(                  [        5      (       a  U R(                  US'   OU R(                  R	                  5       US'   [        U S5      (       aZ  U R*                  bM  [        U R*                  [        5      (       a  U R*                  US'   U$ U R*                  R	                  5       US'   U$ )r  r   rb   r   r'  r  r  rU  r  r'   r(   r)   rK   rL   r&  rM   r  )r  r   r  rj   r  rb   r   r'  r  r  rU  r   r  r'   r(   r)   rK   rL   r&  r  rM   r  rm  s       r   r  ServiceId.to_dict_,  s   4##(@$,,--#'<<i #'<<#7#7#9i 4477#6''E$K4""t{{'>"kkE(O4&&4??+F"&//E,4DHH$888E%L4""t{{'>"kkE(O4&&4??+F"4T__"EE,4''D,<,<,H#5d6F6F#GE- 4&&4??+F"&//E,4$$)B $E*4  TYY%: IIE&M4''D,<,<,H#'#3#3E- 4/00T5N5N5Z,0,E,EE()4##(@L\\a&& ''* ''		4	 "
  ,)4""t{{'>$++t,,"&++h"&++"5"5"7h4$$)B$--..$(MMj!  %)MM$9$9$;j!r   c                 "    U R                  5       $ r  r  r  s    r   r  ServiceId._to_dict,  r  r   c                 H    [         R                  " U R                  5       SS9$ )z0Return a `str` version of this ServiceId object.r  r  r  r  s    r   r  ServiceId.__str__,  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ServiceId.__eq__,  r  r   c                     X:X  + $ r  rg   r  s     r   r  ServiceId.__ne__,  r  r   )r'   r  rM   r   rU  r  rK   r'  r(   r&  r   rb   r  r  r)   rL   )r  r  r  r  r  r  r  r   r   r   r"   r  r   r  r  r  r  r  r  r  r  rg   r   r   r  r  +  s   Z 04"&%)488<%))-%E!E! E! 	E!
 E! E! E! E! E! E! +,E! 3-E! c]E! 'tCy1E!  $345!E!" "#E!$ :&%E!& 
'E!N 5d 5{ 5 5n $ $2 2h4 4/K /D /!K !D !r   r  c                       \ rS rSrSrSSSSS.S\S\S\S\S	\S
\\   S\\   S\\   S\\   SS4S jjr\S\	SS 4S j5       r
\S 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ServiceIdGroupi,  a  
ServiceIdGroup.

:param str id: ID of the the service ID group.
:param str entity_tag: (optional) Version of the service ID group details
      object. You need to specify this value when updating the service ID group to
      avoid stale updates.
:param str account_id: ID of the account the service ID group belongs to.
:param str crn: Cloud Resource Name of the item.
:param str name: Name of the service ID group. Unique in the account.
:param str description: (optional) Description of the service ID group.
:param str created_at: (optional) Timestamp of when the service ID group was
      created.
:param str created_by: IAM ID of the user or service which created the Service
      Id group.
:param str modified_at: (optional) Timestamp of when the service ID group was
      modified.
N)r'  rK   rU  r  rb   r'   r  r)   r  r'  rK   rU  r  r   c                p    Xl         X`l        X l        X0l        X@l        Xpl        Xl        XPl        Xl        g)a4  
Initialize a ServiceIdGroup object.

:param str id: ID of the the service ID group.
:param str account_id: ID of the account the service ID group belongs to.
:param str crn: Cloud Resource Name of the item.
:param str name: Name of the service ID group. Unique in the account.
:param str created_by: IAM ID of the user or service which created the
       Service Id group.
:param str entity_tag: (optional) Version of the service ID group details
       object. You need to specify this value when updating the service ID group
       to avoid stale updates.
:param str description: (optional) Description of the service ID group.
:param str created_at: (optional) Timestamp of when the service ID group
       was created.
:param str modified_at: (optional) Timestamp of when the service ID group
       was modified.
N)	rb   r'  r'   r  r)   rK   rU  r  r  )
r$   rb   r'   r  r)   r  r'  rK   rU  r  s
             r   r"   ServiceIdGroup.__init__,  s3    > $$	&$$&r   r  c                 >   0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eUR                  S5      =nb  XrS'   O[        S	5      eUR                  S
5      =nb  XS
'   UR                  S5      =n	b  XS'   UR                  S5      =n
b  XS'   O[        S5      eUR                  S5      =nb  XS'   U " S0 UD6$ ):Initialize a ServiceIdGroup object from a json dictionary.rb   z9Required property 'id' not present in ServiceIdGroup JSONr'  r'   zARequired property 'account_id' not present in ServiceIdGroup JSONr  z:Required property 'crn' not present in ServiceIdGroup JSONr)   z;Required property 'name' not present in ServiceIdGroup JSONrK   rU  r  zARequired property 'created_by' not present in ServiceIdGroup JSONr  rg   r  )r   r  r  rb   r'  r'   r  r)   rK   rU  r  r  s               r   r  ServiceIdGroup.from_dict,  sI    ))D/!B.JZ[[))L11J>!+))L11J>!+bcc99U##C0K[\\IIf%%D2L\]] 99]33K@"-))L11J>!+))L11J>!+bcc 99]33K@"-{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  ServiceIdGroup._from_dict-  r  r   c                 4   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S	5      (       a  U R                  b  U R                  US	'   U$ )
r  rb   r'  r'   r  r)   rK   rU  r  r  )
r  rb   r'  r'   r  r)   rK   rU  r  r  r  s     r   r  ServiceIdGroup.to_dict
-  sU   4477#6''E$K4&&4??+F"&//E,4&&4??+F"&//E,4DHH$888E%L4  TYY%: IIE&M4''D,<,<,H#'#3#3E- 4&&4??+F"&//E,4&&4??+F"&//E,4''D,<,<,H#'#3#3E- r   c                 "    U R                  5       $ r  r  r  s    r   r  ServiceIdGroup._to_dict!-  r  r   c                 H    [         R                  " U R                  5       SS9$ )z5Return a `str` version of this ServiceIdGroup object.r  r  r  r  s    r   r  ServiceIdGroup.__str__%-  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ServiceIdGroup.__eq__)-  r  r   c                     X:X  + $ r  rg   r  s     r   r  ServiceIdGroup.__ne__/-  r  r   )	r'   rU  r  r  rK   r'  rb   r  r)   rc  rg   r   r   r  r  ,  s
   6 %)%)$(%)'''' '' 	''
 '' '' SM'' c]'' SM'' c]'' 
''R d '7  B $ $ .4 4/, / /!, ! !r   r  c                       \ rS rSrSrS\S   SS4S jr\S\SS 4S	 j5       r	\S
 5       r
S\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ServiceIdGroupListi4-  z
ServiceIdGroupList.

:param List[ServiceIdGroup] serviceid_groups: List of Service ID groups based on
      the query parameter.
serviceid_groupsr  r   Nc                     Xl         g)z
Initialize a ServiceIdGroupList object.

:param List[ServiceIdGroup] serviceid_groups: List of Service ID groups
       based on the query parameter.
Nr  )r$   r  s     r   r"   ServiceIdGroupList.__init__<-  s
     !1r   r  c                     0 nUR                  S5      =nb*  U Vs/ s H  n[        R                  U5      PM     snUS'   O[        S5      eU " S0 UD6$ s  snf )>Initialize a ServiceIdGroupList object from a json dictionary.r  zKRequired property 'serviceid_groups' not present in ServiceIdGroupList JSONrg   )rC   r  r  rY   )r   r  r  r  r^   s        r   r  ServiceIdGroupList.from_dictH-  sd      %		*< ==JM]'^M](@(@(CM]'^D#$lmm{T{ (_rw  c                 $    U R                  U5      $ )r  r  r  s     r   r  ServiceIdGroupList._from_dictR-  r  r   c                    0 n[        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR	                  U5        M+  UR	                  UR                  5       5        ML     X!S'   U$ )r  r  )r  r  r  rj   r  r  )r$   r  serviceid_groups_listr^   s       r   r  ServiceIdGroupList.to_dictW-  su    4+,,1F1F1R$&!**a&&)003)00=	 +
 )>$%r   c                 "    U R                  5       $ r  r  r  s    r   r  ServiceIdGroupList._to_dictd-  r  r   c                 H    [         R                  " U R                  5       SS9$ )z9Return a `str` version of this ServiceIdGroupList object.r  r  r  r  s    r   r  ServiceIdGroupList.__str__h-  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ServiceIdGroupList.__eq__l-  r  r   c                     X:X  + $ r  rg   r  s     r   r  ServiceIdGroupList.__ne__r-  r  r   r  r  rg   r   r   r  r  4-  s    
1/0
1 

1 d ';   $ $ 4 4/0 /T /!0 !T !r   r  c                       \ rS rSrSrSSSSSSS.S\S   S\S   S	\\   S
\\   S\\   S\\   S\\   SS4S jjr	\
S\SS 4S j5       r\
S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)ServiceIdListiw-  a  
Response body format for the list service ID V1 REST request.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page. Default is 20 items
      per page. Valid range is 1 to 100.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
      'previous' property is not part of the response no previous page is available.
:param str next: (optional) Link to the next available page. If 'next' property
      is not part of the response no next page is available.
:param List[ServiceId] serviceids: List of service IDs based on the query
      paramters and the page size. The service IDs array is always part of the
      response but might be empty depending on the query parameter values provided.
NrF  r  r  r   r   rG  r  rH  rI  rJ  r   c                X    X l         X0l        X@l        XPl        X`l        Xpl        Xl        g)a  
Initialize a ServiceIdList object.

:param List[ServiceId] serviceids: List of service IDs based on the query
       paramters and the page size. The service IDs array is always part of the
       response but might be empty depending on the query parameter values
       provided.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page. Default is 20
       items per page. Valid range is 1 to 100.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
       'previous' property is not part of the response no previous page is
       available.
:param str next: (optional) Link to the next available page. If 'next'
       property is not part of the response no next page is available.
N)r   rG  r  rH  rI  rJ  r  )r$   r  r   rG  r  rH  rI  rJ  s           r   r"   ServiceIdList.__init__-  s'    < 

 	$r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S5      =nb  XS'   UR                  S5      =n	b*  U	 V
s/ s H  n
[        R                  U
5      PM     sn
US'   O[	        S5      eU " S	0 UD6$ s  sn
f )
9Initialize a ServiceIdList object from a json dictionary.r   rG  r  rH  rI  rJ  r  z@Required property 'serviceids' not present in ServiceIdList JSONrg   )rC   r   r  r  rY   )r   r  r  r   rG  r  rH  rI  rJ  r  r^   s              r   r  ServiceIdList.from_dict-  s    yy++G8-77@DOii))F6#NYYw''E4!MYYw''E4!M		*--H:'IIf%%D2L))L11J>BL!M*Q)"5"5a"8*!MDabb{T{ "NrR  c                 $    U R                  U5      $ )r'  r  r  s     r   r  ServiceIdList._from_dict-  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S'   U$ )r  r   rG  r  rH  rI  rJ  r  )r  r   r  rj   r  rG  r  rH  rI  rJ  r  r  )r$   r  r  r^   s       r   r  ServiceIdList.to_dict-  sj   4##(@$,,--#'<<i #'<<#7#7#9i 4""t{{'>"kkE(O4!!djj&<!ZZE'N4!!djj&<!ZZE'N4$$)B $E*4  TYY%: IIE&M4&&4??+F O__a&&#**1-#**199;7	 %
 #2,r   c                 "    U R                  5       $ r  r  r  s    r   r  ServiceIdList._to_dict-  r  r   c                 H    [         R                  " U R                  5       SS9$ )z4Return a `str` version of this ServiceIdList object.r  r  r  r  s    r   r  ServiceIdList.__str__-  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  ServiceIdList.__eq__-  r  r   c                     X:X  + $ r  rg   r  s     r   r  ServiceIdList.__ne__-  r  r   )r   rH  r  rJ  rG  rI  r  r`  rg   r   r   r#  r#  w-  s   , 04 $##"&"$%%$% +,	$%
 $% }$% }$% 3-$% sm$% 
$%L d   * $ $ 84 4/O / /!O ! !r   r#  c                      \ rS rSrSrSSSSSSSSSSSSS.S\\   S\\   S\\   S\\   S	\\S
      S\\   S\\   S\\   S\\   S\\   S\\   S\S   SS4S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jr " S S\\5      r " S  S!\\5      r " S" S#\\5      r " S$ S%\\5      rS&rg)'r  i-  a  
Input body parameters for the Account Settings REST request.

:param str restrict_create_service_id: (optional) Defines whether or not
      creating the resource is access controlled. Valid values:
        * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM
      Identity Service can create service IDs, including the account owner
        * NOT_RESTRICTED - all members of an account can create service IDs
        * NOT_SET - to 'unset' a previous set value.
:param str restrict_create_platform_apikey: (optional) Defines whether or not
      creating the resource is access controlled. Valid values:
        * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM
      Identity Service can create service IDs, including the account owner
        * NOT_RESTRICTED - all members of an account can create service IDs
        * NOT_SET - to 'unset' a previous set value.
:param str allowed_ip_addresses: (optional) Defines the IP addresses and subnets
      from which IAM tokens can be created for the account.
:param str mfa: (optional) MFA trait definitions as follows:
        * NONE - No MFA trait set
        * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
        * TOTP - For all non-federated IBMId users
        * TOTP4ALL - For all users
        * LEVEL1 - Email-based MFA for all users
        * LEVEL2 - TOTP-based MFA for all users
        * LEVEL3 - U2F MFA for all users.
:param List[UserMfa] user_mfa: (optional) List of users that are exempted from
      the MFA requirement of the account.
:param str session_expiration_in_seconds: (optional) Defines the session
      expiration in seconds for the account. Valid values:
        * Any whole number between between '900' and '86400'
        * NOT_SET - To unset account setting and use service default.
:param str session_invalidation_in_seconds: (optional) Defines the period of
      time in seconds in which a session will be invalidated due to inactivity. Valid
      values:
        * Any whole number between '900' and '7200'
        * NOT_SET - To unset account setting and use service default.
:param str max_sessions_per_identity: (optional) Defines the max allowed
      sessions per identity required by the account. Valid values:
        * Any whole number greater than 0
        * NOT_SET - To unset account setting and use service default.
:param str system_access_token_expiration_in_seconds: (optional) Defines the
      access token expiration in seconds. Valid values:
        * Any whole number between '900' and '3600'
        * NOT_SET - To unset account setting and use service default.
:param str system_refresh_token_expiration_in_seconds: (optional) Defines the
      refresh token expiration in seconds. Valid values:
        * Any whole number between '900' and '259200'
        * NOT_SET - To unset account setting and use service default.
:param str restrict_user_list_visibility: (optional) Defines whether or not user
      visibility is access controlled. Valid values:
        * RESTRICTED - users can view only specific types of users in the account,
      such as those the user has invited to the account, or descendants of those users
      based on the classic infrastructure hierarchy
        * NOT_RESTRICTED - any user in the account can view other users from the Users
      page in IBM Cloud console
        * NOT_SET - to 'unset' a previous set value.
:param TemplateAccountSettingsRestrictUserDomains restrict_user_domains:
      (optional)
NrN  rO  rP  rQ  rR  rS  r[  rT  rU  rV  rW  rX  rY  rZ  *TemplateAccountSettingsRestrictUserDomainsr   c                    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        Xl	        Xl
        Xl        g)a  
Initialize a TemplateAccountSettings object.

:param str restrict_create_service_id: (optional) Defines whether or not
       creating the resource is access controlled. Valid values:
         * RESTRICTED - only users assigned the 'Service ID creator' role on the
       IAM Identity Service can create service IDs, including the account owner
         * NOT_RESTRICTED - all members of an account can create service IDs
         * NOT_SET - to 'unset' a previous set value.
:param str restrict_create_platform_apikey: (optional) Defines whether or
       not creating the resource is access controlled. Valid values:
         * RESTRICTED - only users assigned the 'Service ID creator' role on the
       IAM Identity Service can create service IDs, including the account owner
         * NOT_RESTRICTED - all members of an account can create service IDs
         * NOT_SET - to 'unset' a previous set value.
:param str allowed_ip_addresses: (optional) Defines the IP addresses and
       subnets from which IAM tokens can be created for the account.
:param str mfa: (optional) MFA trait definitions as follows:
         * NONE - No MFA trait set
         * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
         * TOTP - For all non-federated IBMId users
         * TOTP4ALL - For all users
         * LEVEL1 - Email-based MFA for all users
         * LEVEL2 - TOTP-based MFA for all users
         * LEVEL3 - U2F MFA for all users.
:param List[UserMfa] user_mfa: (optional) List of users that are exempted
       from the MFA requirement of the account.
:param str session_expiration_in_seconds: (optional) Defines the session
       expiration in seconds for the account. Valid values:
         * Any whole number between between '900' and '86400'
         * NOT_SET - To unset account setting and use service default.
:param str session_invalidation_in_seconds: (optional) Defines the period
       of time in seconds in which a session will be invalidated due to
       inactivity. Valid values:
         * Any whole number between '900' and '7200'
         * NOT_SET - To unset account setting and use service default.
:param str max_sessions_per_identity: (optional) Defines the max allowed
       sessions per identity required by the account. Valid values:
         * Any whole number greater than 0
         * NOT_SET - To unset account setting and use service default.
:param str system_access_token_expiration_in_seconds: (optional) Defines
       the access token expiration in seconds. Valid values:
         * Any whole number between '900' and '3600'
         * NOT_SET - To unset account setting and use service default.
:param str system_refresh_token_expiration_in_seconds: (optional) Defines
       the refresh token expiration in seconds. Valid values:
         * Any whole number between '900' and '259200'
         * NOT_SET - To unset account setting and use service default.
:param str restrict_user_list_visibility: (optional) Defines whether or not
       user visibility is access controlled. Valid values:
         * RESTRICTED - users can view only specific types of users in the
       account, such as those the user has invited to the account, or descendants
       of those users based on the classic infrastructure hierarchy
         * NOT_RESTRICTED - any user in the account can view other users from the
       Users page in IBM Cloud console
         * NOT_SET - to 'unset' a previous set value.
:param TemplateAccountSettingsRestrictUserDomains restrict_user_domains:
       (optional)
NrN  )r$   rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  s                r   r"    TemplateAccountSettings.__init__7.  sL    V +E'/N,$8! -J*/N,)B&9b6:d7-J*%:"r   r  c                    0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   UR                  S5      =n	b  XS'   UR                  S5      =n
b  XS'   UR                  S5      =nb  XS'   UR                  S	5      =n b  XS	'   UR                  S
5      =n b  XS
'   UR                  S5      =nb  XS'   UR                  S5      =nb  [        R                  U5      US'   U " S0 UD6$ s  snf )CInitialize a TemplateAccountSettings object from a json dictionary.rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  rg   )rC   r[  r  r6  )r   r  r  rO  rP  rQ  rR  rS  r^   rT  rU  rV  rW  rX  rY  rZ  s                   r   r  !TemplateAccountSettings.from_dict.  s    */))4P*QQ&^1K-./4yy9Z/[[+h6U23$)II.D$EE R+?'(99U##C0K		*--H:>FGh 1 1! 4hGD-2YY7V-WW)d4Q01/4yy9Z/[[+h6U23).3N)OO%\0I,-9>Cn9oo5 Aj<=:?))Dp:qq6 Bl=>-2YY7V-WW)d4Q01%*YY/F%GG!T,V,`,`av,wD(){T{'  Hs   ;E&c                 $    U R                  U5      $ )r:  r  r  s     r   r  "TemplateAccountSettings._from_dict.  r  r   c                 `   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R
                  b`  / nU R
                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S	5      (       a  U R                  b  U R                  US	'   [        U S
5      (       a  U R                  b  U R                  US
'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       aZ  U R                   bM  [        U R                   [        5      (       a  U R                   US'   U$ U R                   R                  5       US'   U$ )r  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  )r  rO  rP  rQ  rR  rS  r  rj   r  r  rT  rU  rV  rW  rX  rY  rZ  r  s       r   r  TemplateAccountSettings.to_dict.  sm   45664;Z;Z;f262Q2QE./4:;;@d@d@p7;7[7[E344/00T5N5N5Z,0,E,EE()4DHH$888E%L4$$)BM]]a&&!((+!((5	 #
 !.*4899d>`>`>l595W5WE124:;;@d@d@p7;7[7[E344455$:X:X:d151O1OE-.DEFF>>JAEAoAoE=>DFGG??KBFBqBqE>?4899d>`>`>l595W5WE124011d6P6P6\$44d;;151K1K-.  261K1K1S1S1U-.r   c                 "    U R                  5       $ r  r  r  s    r   r   TemplateAccountSettings._to_dict.  r  r   c                 H    [         R                  " U R                  5       SS9$ )z>Return a `str` version of this TemplateAccountSettings object.r  r  r  r  s    r   r  TemplateAccountSettings.__str__.  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  TemplateAccountSettings.__eq__.  r  r   c                     X:X  + $ r  rg   r  s     r   r  TemplateAccountSettings.__ne__.  r  r   c                   $    \ rS rSrSrSrSrSrSrg)3TemplateAccountSettings.RestrictCreateServiceIdEnumi.  r  r  r  r  rg   Nr  rg   r   r   r  rI  .  r  r   r  c                   $    \ rS rSrSrSrSrSrSrg)8TemplateAccountSettings.RestrictCreatePlatformApikeyEnumi/  r  r  r  r  rg   Nr  rg   r   r   r  rK  /  r  r   r  c                   4    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg)TemplateAccountSettings.MfaEnumi/  r  r  r  r  r  r  r  r  rg   Nr  rg   r   r   r  rM  /  r  r   r  c                   $    \ rS rSrSrSrSrSrSrg)6TemplateAccountSettings.RestrictUserListVisibilityEnumi"/  r  r  r  r  rg   Nr  rg   r   r   r  rO  "/  r  r   r  )rQ  rV  rR  rP  rO  rZ  rY  rT  rU  rW  rX  rS  )r  r  r  r  r  r   r  r   r"   r  r   r  r  r  r  r  r  r  r  r   r  r  r  r  r  rg   r   r   r  r  -  s   :~ 599=.2!.27;9=37CGDH7;X\V; %-SMV; *2#	V;
 'smV; c]V; 4	?+V; (0}V; *2#V; $,C=V; 4<C=V; 5=SMV; (0}V;  ((TUV; 
V;p d '@  B $ $* *X4 4/5 /$ /!5 !$ !c4 3 #t (d r   r  c                       \ rS rSrSrSSS.S\\   S\\S      SS4S	 jjr\	S
\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r6  i2/  aY  
TemplateAccountSettingsRestrictUserDomains.

:param bool account_sufficient: (optional)
:param List[AccountSettingsUserDomainRestriction] restrictions: (optional)
      Defines if account invitations are restricted to specified domains. To remove an
      entry for a realm_id, perform an update (PUT) request with only the realm_id
      set.
Nr  r  r  r\  r   c                    Xl         X l        g)ap  
Initialize a TemplateAccountSettingsRestrictUserDomains object.

:param bool account_sufficient: (optional)
:param List[AccountSettingsUserDomainRestriction] restrictions: (optional)
       Defines if account invitations are restricted to specified domains. To
       remove an entry for a realm_id, perform an update (PUT) request with only
       the realm_id set.
Nr  r  s      r   r"   3TemplateAccountSettingsRestrictUserDomains.__init__=/  r  r   r  c                     0 nUR                  S5      =nb  X2S'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   U " S0 UD6$ s  snf )VInitialize a TemplateAccountSettingsRestrictUserDomains object from a json dictionary.r  r  rg   r  r  s         r   r  4TemplateAccountSettingsRestrictUserDomains.from_dictO/  r  r  c                 $    U R                  U5      $ )rT  r  r  s     r   r  5TemplateAccountSettingsRestrictUserDomains._from_dictY/  r  r   c                 `   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   U$ r  r  r  s       r   r  2TemplateAccountSettingsRestrictUserDomains.to_dict^/  r  r   c                 "    U R                  5       $ r  r  r  s    r   r  3TemplateAccountSettingsRestrictUserDomains._to_dictm/  r  r   c                 H    [         R                  " U R                  5       SS9$ )zQReturn a `str` version of this TemplateAccountSettingsRestrictUserDomains object.r  r  r  r  s    r   r  2TemplateAccountSettingsRestrictUserDomains.__str__q/  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  1TemplateAccountSettingsRestrictUserDomains.__eq__u/  r  r   c                     X:X  + $ r  rg   r  s     r   r  1TemplateAccountSettingsRestrictUserDomains.__ne__{/  r  r   r  rg   r   r   r6  r6  2/  s     .2OS	) %TN) t$JKL	)
 
)$ d 'S   $ $ 4 4/H /T /!H !T !r   r6  c                       \ rS rSrSrSSSSSSS.S\S   S\S   S	\\   S
\\   S\\   S\\   S\\   SS4S jjr	\
S\SS 4S j5       r\
S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)TemplateAssignmentListResponsei/  a  
List Response body format for Template Assignments Records.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page. Default is 20 items
      per page. Valid range is 1 to 100.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
      'previous' property is not part of the response no previous page is available.
:param str next: (optional) Link to the next available page. If 'next' property
      is not part of the response no next page is available.
:param List[TemplateAssignmentResponse] assignments: List of Assignments based
      on the query paramters and the page size. The assignments array is always part
      of the response but might be empty depending on the query parameter values
      provided.
NrF  assignmentsTemplateAssignmentResponser   r   rG  r  rH  rI  rJ  r   c                X    X l         X0l        X@l        XPl        X`l        Xpl        Xl        g)a  
Initialize a TemplateAssignmentListResponse object.

:param List[TemplateAssignmentResponse] assignments: List of Assignments
       based on the query paramters and the page size. The assignments array is
       always part of the response but might be empty depending on the query
       parameter values provided.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page. Default is 20
       items per page. Valid range is 1 to 100.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
       'previous' property is not part of the response no previous page is
       available.
:param str next: (optional) Link to the next available page. If 'next'
       property is not part of the response no next page is available.
N)r   rG  r  rH  rI  rJ  rd  )r$   rd  r   rG  r  rH  rI  rJ  s           r   r"   'TemplateAssignmentListResponse.__init__/  s(    < 

 	&r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S5      =nb  XS'   UR                  S5      =n	b*  U	 V
s/ s H  n
[        R                  U
5      PM     sn
US'   O[	        S5      eU " S	0 UD6$ s  sn
f )
JInitialize a TemplateAssignmentListResponse object from a json dictionary.r   rG  r  rH  rI  rJ  rd  zRRequired property 'assignments' not present in TemplateAssignmentListResponse JSONrg   )rC   r   r  re  rY   )r   r  r  r   rG  r  rH  rI  rJ  rd  r^   s              r   r  (TemplateAssignmentListResponse.from_dict/  s    yy++G8-77@DOii))F6#NYYw''E4!MYYw''E4!M		*--H:'IIf%%D2L 99]33K@T_"`T_q#=#G#G#JT_"`Dstt{T{ #arR  c                 $    U R                  U5      $ )ri  r  r  s     r   r  )TemplateAssignmentListResponse._from_dict/  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S'   U$ )r  r   rG  r  rH  rI  rJ  rd  )r  r   r  rj   r  rG  r  rH  rI  rJ  rd  r  )r$   r  assignments_listr^   s       r   r  &TemplateAssignmentListResponse.to_dict/  so   4##(@$,,--#'<<i #'<<#7#7#9i 4""t{{'>"kkE(O4!!djj&<!ZZE'N4!!djj&<!ZZE'N4$$)B $E*4  TYY%: IIE&M4''D,<,<,H!%%a&&$++A.$++AIIK8	 &
 $4- r   c                 "    U R                  5       $ r  r  r  s    r   r  'TemplateAssignmentListResponse._to_dict/  r  r   c                 H    [         R                  " U R                  5       SS9$ )zEReturn a `str` version of this TemplateAssignmentListResponse object.r  r  r  r  s    r   r  &TemplateAssignmentListResponse.__str__/  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  %TemplateAssignmentListResponse.__eq__/  r  r   c                     X:X  + $ r  rg   r  s     r   r  %TemplateAssignmentListResponse.__ne__/  r  r   )rd  r   rH  r  rJ  rG  rI  r`  rg   r   r   rc  rc  /  s   . 04 $##"&"$'67$' +,	$'
 $' }$' }$' 3-$' sm$' 
$'L d 'G  * $ $ 84 4/< / /!< ! !r   rc  c                       \ rS rSrSrSS.S\\   SS4S jjr\S\	SS 4S	 j5       r
\S
 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)TemplateAssignmentResourcei0  z^
Body parameters for created resource.

:param str id: (optional) Id of the created resource.
Nrb   rb   r   c                    Xl         g)zh
Initialize a TemplateAssignmentResource object.

:param str id: (optional) Id of the created resource.
Nrz  )r$   rb   s     r   r"   #TemplateAssignmentResource.__init__0  s	     r   r  c                 F    0 nUR                  S5      =nb  X2S'   U " S0 UD6$ )FInitialize a TemplateAssignmentResource object from a json dictionary.rb   rg   rj  )r   r  r  rb   s       r   r  $TemplateAssignmentResource.from_dict0  s/     ))D/!B.J{T{r   c                 $    U R                  U5      $ )r~  r  r  s     r   r  %TemplateAssignmentResource._from_dict0  r  r   c                 d    0 n[        U S5      (       a  U R                  b  U R                  US'   U$ )r  rb   )r  rb   r  s     r   r  "TemplateAssignmentResource.to_dict$0  s/    4477#6''E$Kr   c                 "    U R                  5       $ r  r  r  s    r   r  #TemplateAssignmentResource._to_dict+0  r  r   c                 H    [         R                  " U R                  5       SS9$ )zAReturn a `str` version of this TemplateAssignmentResource object.r  r  r  r  s    r   r  "TemplateAssignmentResource.__str__/0  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  !TemplateAssignmentResource.__eq__30  r  r   c                     X:X  + $ r  rg   r  s     r   r  !TemplateAssignmentResource.__ne__90  r  r   rx  rg   r   r   ry  ry  0  s     !
 SM
 
	
 d 'C   $ $ 4 4/8 /T /!8 !T !r   ry  c                       \ rS rSrSrSSSSS.S\\   S\\   S\\   S\\   S	S4
S
 jjr\S\	S	S 4S j5       r
\S 5       rS	\	4S jrS rS	\4S jrSS S	\4S jrSS S	\4S jrSrg)TemplateAssignmentResourceErrori>0  a%  
Body parameters for assignment error.

:param str name: (optional) Name of the error.
:param str error_code: (optional) Internal error code.
:param str message: (optional) Error message detailing the nature of the error.
:param str status_code: (optional) Internal status code for the error.
Nr)   
error_coder  r   r)   r  r  r   r   c                4    Xl         X l        X0l        X@l        g)a;  
Initialize a TemplateAssignmentResourceError object.

:param str name: (optional) Name of the error.
:param str error_code: (optional) Internal error code.
:param str message: (optional) Error message detailing the nature of the
       error.
:param str status_code: (optional) Internal status code for the error.
Nr  )r$   r)   r  r  r   s        r   r"   (TemplateAssignmentResourceError.__init__H0  s    " 	$&r   r  c                     0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   U " S0 UD6$ )KInitialize a TemplateAssignmentResourceError object from a json dictionary.r)   	errorCoder  r  
statusCoder   rg   rj  )r   r  r  r)   r  r  r   s          r   r  )TemplateAssignmentResourceError.from_dict^0  s     IIf%%D2L))K00J=!+yy++G8%O 99\22K?"-{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  *TemplateAssignmentResourceError._from_dictl0  r  r   c                 r   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r)   r  r  r  r   r  )r  r)   r  r  r   r  s     r   r  'TemplateAssignmentResourceError.to_dictq0  s    4  TYY%: IIE&M4&&4??+F!%E+4##(@#||E)4''D,<,<,H"&"2"2E,r   c                 "    U R                  5       $ r  r  r  s    r   r  (TemplateAssignmentResourceError._to_dict~0  r  r   c                 H    [         R                  " U R                  5       SS9$ )zFReturn a `str` version of this TemplateAssignmentResourceError object.r  r  r  r  s    r   r  'TemplateAssignmentResourceError.__str__0  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  &TemplateAssignmentResourceError.__eq__0  r  r   c                     X:X  + $ r  rg   r  s     r   r  &TemplateAssignmentResourceError.__ne__0  r  r   )r  r  r)   r   rx  rg   r   r   r  r  >0  s     #$(!%%)' sm' SM	'
 #' c]' 
', d 'H   $ $ 4 4/= /$ /!= !$ !r   r  c            #       
   \ rS rSrSrSSSSS.S\S\S\S\S	\S
\S\S\S\S\S\S\S\S   S\\S      S\\S      S\\   SS4"S jjr	\
S\SS 4S j5       r\
S 5       rS\4S jrS rS\4S jrS S S\4S! jrS S S\4S" jrS#rg)$re  i0  a  
Response body format for Template Assignment Record.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param str id: Assignment record Id.
:param str account_id: Enterprise account Id.
:param str template_id: Template Id.
:param int template_version: Template version.
:param str target_type: Assignment target type.
:param str target: Assignment target.
:param str status: Assignment status.
:param List[TemplateAssignmentResponseResource] resources: (optional) Status
      breakdown per target account of IAM resources created or errors encountered in
      attempting to create those IAM resources. IAM resources are only included in the
      response providing the assignment is not in progress. IAM resources are also
      only included when getting a single assignment, and excluded by list APIs.
:param List[EnityHistoryRecord] history: (optional) Assignment history.
:param str href: (optional) Href.
:param str created_at: Assignment created at.
:param str created_by_id: IAMid of the identity that created the assignment.
:param str last_modified_at: Assignment modified at.
:param str last_modified_by_id: IAMid of the identity that last modified the
      assignment.
:param str entity_tag: Entity tag for this assignment record.
N)r   	resourcesr&  hrefrb   r'   r  r  r  r  statusrU  rb  rV  rc  r'  r   r   r  "TemplateAssignmentResponseResourcer&  r(  r  r   c                    Xl         Xl        X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl	        UU l
        Xl        Xl        Xl        Xl        Xl        g)a%  
Initialize a TemplateAssignmentResponse object.

:param str id: Assignment record Id.
:param str account_id: Enterprise account Id.
:param str template_id: Template Id.
:param int template_version: Template version.
:param str target_type: Assignment target type.
:param str target: Assignment target.
:param str status: Assignment status.
:param str created_at: Assignment created at.
:param str created_by_id: IAMid of the identity that created the
       assignment.
:param str last_modified_at: Assignment modified at.
:param str last_modified_by_id: IAMid of the identity that last modified
       the assignment.
:param str entity_tag: Entity tag for this assignment record.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param List[TemplateAssignmentResponseResource] resources: (optional)
       Status breakdown per target account of IAM resources created or errors
       encountered in attempting to create those IAM resources. IAM resources are
       only included in the response providing the assignment is not in progress.
       IAM resources are also only included when getting a single assignment, and
       excluded by list APIs.
:param List[EnityHistoryRecord] history: (optional) Assignment history.
:param str href: (optional) Href.
N)r   rb   r'   r  r  r  r  r  r  r&  r  rU  rb  rV  rc  r'  )r$   rb   r'   r  r  r  r  r  rU  rb  rV  rc  r'  r   r  r&  r  s                    r   r"   #TemplateAssignmentResponse.__init__0  s]    ` $& 0&"	$* 0#6 $r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eUR                  S5      =nb  XrS'   O[        S	5      eUR                  S
5      =nb  XS
'   O[        S5      eUR                  S5      =n	b  XS'   O[        S5      eUR                  S5      =n
b  XS'   O[        S5      eUR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   UR                  S5      =nb)  U Vs/ s H  n[
        R                  U5      PM     snUS'   UR                  S5      =nb  XS'   UR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  UUS'   O[        S5      eUR                  S5      =nb  UUS'   O[        S5      eUR                  S5      =nb  UUS'   O[        S5      eUR                  S5      =nb  UUS'   O[        S5      eU " S0 UD6$ s  snf s  snf )FInitialize a TemplateAssignmentResponse object from a json dictionary.r   rb   zERequired property 'id' not present in TemplateAssignmentResponse JSONr'   zMRequired property 'account_id' not present in TemplateAssignmentResponse JSONr  zNRequired property 'template_id' not present in TemplateAssignmentResponse JSONr  zSRequired property 'template_version' not present in TemplateAssignmentResponse JSONr  zNRequired property 'target_type' not present in TemplateAssignmentResponse JSONr  zIRequired property 'target' not present in TemplateAssignmentResponse JSONr  zIRequired property 'status' not present in TemplateAssignmentResponse JSONr  r&  r  rU  zMRequired property 'created_at' not present in TemplateAssignmentResponse JSONrb  zPRequired property 'created_by_id' not present in TemplateAssignmentResponse JSONrV  zSRequired property 'last_modified_at' not present in TemplateAssignmentResponse JSONrc  zVRequired property 'last_modified_by_id' not present in TemplateAssignmentResponse JSONr'  zMRequired property 'entity_tag' not present in TemplateAssignmentResponse JSONrg   )rC   r   r  rY   r  r(  )r   r  r  r   rb   r'   r  r  r  r  r  r  r^   r&  r  rU  rb  rV  rc  r'  s                       r   r  $TemplateAssignmentResponse.from_dict0  s    yy++G8-77@DO))D/!B.Jfgg))L11J>!+noo 99]33K@"-opp %		*< ==J'7#$tuu 99]33K@"-oppii))F6#Njkkii))F6#Njkk;//I<Zc dZcUV!C!M!Ma!PZc dDyy++G8HOP11;;A>PDOIIf%%D2L))L11J>!+noo"YY77MD$1D!qrr %		*< ==J'7D#$tuu#(99-B#CCP*=D&'wxx))L11J>!+Dnoo{T{3 !ePs   I= Jc                 $    U R                  U5      $ )r  r  r  s     r   r  %TemplateAssignmentResponse._from_dict,1  r  r   c                 h   0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S	5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S	'   [        U S
5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     XAS
'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                   b  U R                   US'   [        U S5      (       a  U R"                  b  U R"                  US'   [        U S5      (       a  U R$                  b  U R$                  US'   [        U S5      (       a  U R&                  b  U R&                  US'   [        U S5      (       a  U R(                  b  U R(                  US'   U$ )r  r   rb   r'   r  r  r  r  r  r  r&  r  rU  rb  rV  rc  r'  )r  r   r  rj   r  rb   r'   r  r  r  r  r  r  r  r&  r  rU  rb  rV  rc  r'  )r$   r  resources_listr^   r1  s        r   r  "TemplateAssignmentResponse.to_dict11  s
   4##(@$,,--#'<<i #'<<#7#7#9i 4477#6''E$K4&&4??+F"&//E,4''D,<,<,H#'#3#3E- 4+,,1F1F1R(,(=(=E$%4''D,<,<,H#'#3#3E- 4""t{{'>"kkE(O4""t{{'>"kkE(O4%%$..*DN^^a&&"))!,"))!))+6	 $
 "0+4##(@L\\a&& ''* ''		4	 "
  ,)4  TYY%: IIE&M4&&4??+F"&//E,4))d.@.@.L%)%7%7E/"4+,,1F1F1R(,(=(=E$%4.//D4L4L4X+/+C+CE'(4&&4??+F"&//E,r   c                 "    U R                  5       $ r  r  r  s    r   r  #TemplateAssignmentResponse._to_dicte1  r  r   c                 H    [         R                  " U R                  5       SS9$ )zAReturn a `str` version of this TemplateAssignmentResponse object.r  r  r  r  s    r   r  "TemplateAssignmentResponse.__str__i1  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  !TemplateAssignmentResponse.__eq__m1  r  r   c                     X:X  + $ r  rg   r  s     r   r  !TemplateAssignmentResponse.__ne__s1  r  r   )r'   r   rU  rb  r'  r&  r  rb   rV  rc  r  r  r  r  r  r  )r  r  r  r  r  r  r  r   r   r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   re  re  0  sb   T 04JN8<"%?%?% ?% 	?%
 ?% ?% ?% ?% ?% ?% ?% !?% ?% +,?%  D!EFG!?%" $345#?%$ sm%?%& 
'?%B ;d ;'C ; ;z $ $2 2h4 4/8 /T /!8 !T !r   re  c                       \ rS rSrSrSSSS.S\S\S   S\S   S	\\S      S
S4
S jjr\	S\
S
S 4S j5       r\	S 5       rS
\
4S jrS rS
\4S jrSS S
\4S jrSS S
\4S jrSrg)r  ix1  a  
Overview of resources assignment per target account.

:param str target: Target account where the IAM resource is created.
:param TemplateAssignmentResponseResourceDetail profile: (optional)
:param TemplateAssignmentResponseResourceDetail account_settings: (optional)
:param List[TemplateAssignmentResponseResourceDetail]
      policy_template_references: (optional) Policy resource(s) included only for
      trusted profile assignments with policy references.
N)r  r  r  r  r  (TemplateAssignmentResponseResourceDetailr  r  r   c                4    Xl         X l        X0l        X@l        g)a  
Initialize a TemplateAssignmentResponseResource object.

:param str target: Target account where the IAM resource is created.
:param TemplateAssignmentResponseResourceDetail profile: (optional)
:param TemplateAssignmentResponseResourceDetail account_settings:
       (optional)
:param List[TemplateAssignmentResponseResourceDetail]
       policy_template_references: (optional) Policy resource(s) included only for
       trusted profile assignments with policy references.
N)r  r  r  r  )r$   r  r  r  r  s        r   r"   +TemplateAssignmentResponseResource.__init__1  s    &  0*D'r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   U " S0 UD6$ s  snf )NInitialize a TemplateAssignmentResponseResource object from a json dictionary.r  zQRequired property 'target' not present in TemplateAssignmentResponseResource JSONr  r  r  rg   )rC   rY   r  r  )r   r  r  r  r  r  r  r^   s           r   r  ,TemplateAssignmentResponseResource.from_dict1  s     ii))F6#Nrssyy++G8FPPQXYDO %		*< ==J'O'Y'YZj'kD#$*/))4P*QQ&^Oi2Oi!8BB1EOi2D-. {T{2s   Cc                 $    U R                  U5      $ )r  r  r  s     r   r  -TemplateAssignmentResponseResource._from_dict1  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R                  5       US'   [        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R                  5       US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   U$ )r  r  r  r  r  )	r  r  r  r  rj   r  r  r  r  )r$   r  policy_template_references_listr^   s       r   r  *TemplateAssignmentResponseResource.to_dict1  s<   4""t{{'>"kkE(O4##(@$,,--#'<<i #'<<#7#7#9i 4+,,1F1F1R$//66,0,A,A(),0,A,A,I,I,K()45664;Z;Z;f.0+44a&&3::1=3::199;G	 5
 3R./r   c                 "    U R                  5       $ r  r  r  s    r   r  +TemplateAssignmentResponseResource._to_dict1  r  r   c                 H    [         R                  " U R                  5       SS9$ )zIReturn a `str` version of this TemplateAssignmentResponseResource object.r  r  r  r  s    r   r  *TemplateAssignmentResponseResource.__str__1  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  )TemplateAssignmentResponseResource.__eq__1  r  r   c                     X:X  + $ r  rg   r  s     r   r  )TemplateAssignmentResponseResource.__ne__1  r  r   )r  r  r  r  r  rg   r   r   r  r  x1  s    	 IMQUaeEE DE	E
 ##MNE %-T2\-]$^E 
E0 d 'K  " $ $ 24 4/@ /T /!@ !T !r   r  c                       \ rS rSrSrSSSSS.S\S\\   S\\   S\S	   S
\S   SS4S jjr\S\	SS 4S j5       r
\S 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r  i1  a*  
TemplateAssignmentResponseResourceDetail.

:param str id: (optional) Policy Template Id, only returned for a profile
      assignment with policy references.
:param str version: (optional) Policy version, only returned for a profile
      assignment with policy references.
:param TemplateAssignmentResource resource_created: (optional) Body parameters
      for created resource.
:param TemplateAssignmentResourceError error_message: (optional) Body parameters
      for assignment error.
:param str status: Status for the target account's assignment.
N)rb   r  resource_createderror_messager  rb   r  r  ry  r  r  r   c                @    X l         X0l        X@l        XPl        Xl        g)aB  
Initialize a TemplateAssignmentResponseResourceDetail object.

:param str status: Status for the target account's assignment.
:param str id: (optional) Policy Template Id, only returned for a profile
       assignment with policy references.
:param str version: (optional) Policy version, only returned for a profile
       assignment with policy references.
:param TemplateAssignmentResource resource_created: (optional) Body
       parameters for created resource.
:param TemplateAssignmentResourceError error_message: (optional) Body
       parameters for assignment error.
N)rb   r  r  r  r  )r$   r  rb   r  r  r  s         r   r"   1TemplateAssignmentResponseResourceDetail.__init__1  s    ,  0*r   r  c                 n   0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   UR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XrS'   O[	        S5      eU " S0 UD6$ )TInitialize a TemplateAssignmentResponseResourceDetail object from a json dictionary.rb   r  r  r  r  zWRequired property 'status' not present in TemplateAssignmentResponseResourceDetail JSONrg   )rC   ry  r  r  rY   )r   r  r  rb   r  r  r  r  s           r   r  2TemplateAssignmentResponseResourceDetail.from_dict
2  s     ))D/!B.Jyy++G8%O %		*< ==J'A'K'KL\']D#$"YY77MD$C$M$Mm$\D!ii))F6#Nk  {T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  3TemplateAssignmentResponseResourceDetail._from_dict2  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       aY  U R                  bL  [	        U R                  [
        5      (       a  U R                  US'   OU R                  R                  5       US'   [        U S5      (       aY  U R                  bL  [	        U R                  [
        5      (       a  U R                  US'   OU R                  R                  5       US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  rb   r  r  r  r  )	r  rb   r  r  r  rj   r  r  r  r  s     r   r  0TemplateAssignmentResponseResourceDetail.to_dict#2  s!   4477#6''E$K4##(@#||E)4+,,1F1F1R$//66,0,A,A(),0,A,A,I,I,K()4))d.@.@.L$,,d33)-););o&)-););)C)C)Eo&4""t{{'>"kkE(Or   c                 "    U R                  5       $ r  r  r  s    r   r  1TemplateAssignmentResponseResourceDetail._to_dict82  r  r   c                 H    [         R                  " U R                  5       SS9$ )zOReturn a `str` version of this TemplateAssignmentResponseResourceDetail object.r  r  r  r  s    r   r  0TemplateAssignmentResponseResourceDetail.__str__<2  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  /TemplateAssignmentResponseResourceDetail.__eq__@2  r  r   c                     X:X  + $ r  rg   r  s     r   r  /TemplateAssignmentResponseResourceDetail.__ne__F2  r  r   )r  rb   r  r  r  rc  rg   r   r   r  r  1  s    $ !!%CGEI SM	
 # ##?@   AB 
8 d 'Q  & $ $ *4 4/F /4 /!F !4 !r   r  c                       \ rS rSrSrSSSSS.S\S\\   S\\   S\\S	      S
\\S      SS4S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r  iK2  at  
Input body parameters for the TemplateProfileComponent.

:param str name: Name of the Profile.
      You can use replacement variables in the profile name to adjust the name per
      account.
      The following variables are supported:
      - `${template_id}` will be replaced by a unique identifier representing the
      trusted profile template
      - `${template_name}` will be replaced by the current name of the trusted profile
      template
      - `${template_version}` will be replaced by the current version of the trusted
      profile template
      - `${account_id}` will be replaced by the account identifier to which this
      trusted profile template is assigned to
      - `${account_name}` will be replaced by the account name to which this trusted
      profile template is assigned to
      Changes to e.g. the name of the account will NOT cause an update of the trusted
      profile name. The profile name is  processed during account assignment and any
      template version upgrade, i.e. during that operation, the updated account name
      would be used.
:param str description: (optional) Description of the Profile.
:param str email: (optional) Email of the trusted profile.
:param List[TrustedProfileTemplateClaimRule] rules: (optional) Rules for the
      Profile.
:param List[ProfileIdentityRequest] identities: (optional) Identities for the
      Profile.
N)rK   r   r  r"  r)   rK   r   r  TrustedProfileTemplateClaimRuler"  r#  r   c                @    Xl         X l        X0l        X@l        XPl        g)a  
Initialize a TemplateProfileComponentRequest object.

:param str name: Name of the Profile.
       You can use replacement variables in the profile name to adjust the name
       per account.
       The following variables are supported:
       - `${template_id}` will be replaced by a unique identifier representing the
       trusted profile template
       - `${template_name}` will be replaced by the current name of the trusted
       profile template
       - `${template_version}` will be replaced by the current version of the
       trusted profile template
       - `${account_id}` will be replaced by the account identifier to which this
       trusted profile template is assigned to
       - `${account_name}` will be replaced by the account name to which this
       trusted profile template is assigned to
       Changes to e.g. the name of the account will NOT cause an update of the
       trusted profile name. The profile name is  processed during account
       assignment and any template version upgrade, i.e. during that operation,
       the updated account name would be used.
:param str description: (optional) Description of the Profile.
:param str email: (optional) Email of the trusted profile.
:param List[TrustedProfileTemplateClaimRule] rules: (optional) Rules for
       the Profile.
:param List[ProfileIdentityRequest] identities: (optional) Identities for
       the Profile.
N)r)   rK   r   r  r"  )r$   r)   rK   r   r  r"  s         r   r"   (TemplateProfileComponentRequest.__init__i2  s    J 	&

$r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   U " S0 UD6$ s  snf s  snf )KInitialize a TemplateProfileComponentRequest object from a json dictionary.r)   zLRequired property 'name' not present in TemplateProfileComponentRequest JSONrK   r   r  r"  rg   )rC   rY   r  r  r#  )	r   r  r  r)   rK   r   r  r^   r"  s	            r   r  )TemplateProfileComponentRequest.from_dict2  s     IIf%%D2Lmnn 99]33K@"-YYw''E4!MYYw''E4SXYSXa<FFqISXYDM))L11J>OY!Zz!"8"B"B1"Ez!ZD{T{ Z!Zs   /C,Cc                 $    U R                  U5      $ )r  r  r  s     r   r  *TemplateProfileComponentRequest._from_dict2  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     XAS'   U$ )r  r)   rK   r   r  r"  )
r  r)   rK   r   r  r  rj   r  r  r"  r$   r  r  r^   r  s        r   r  'TemplateProfileComponentRequest.to_dict2  s=   4  TYY%: IIE&M4''D,<,<,H#'#3#3E- 4!!djj&<!ZZE'N4!!djj&<JZZa&&%%a(%%aiik2	  
 ('N4&&4??+F O__a&&#**1-#**199;7	 %
 #2,r   c                 "    U R                  5       $ r  r  r  s    r   r  (TemplateProfileComponentRequest._to_dict2  r  r   c                 H    [         R                  " U R                  5       SS9$ )zFReturn a `str` version of this TemplateProfileComponentRequest object.r  r  r  r  s    r   r  'TemplateProfileComponentRequest.__str__2  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  &TemplateProfileComponentRequest.__eq__2  r  r   c                     X:X  + $ r  rg   r  s     r   r  &TemplateProfileComponentRequest.__ne__2  r  r   rK   r   r"  r)   r  r  rg   r   r   r  r  K2  s    B &*#CG?C)%)% c]	)%
 })% >?@)% T":;<)% 
)%V d 'H  " $ $ 64 4/= /$ /!= !$ !r   r  c                       \ rS rSrSrSSSSS.S\S\\   S\\S      S	\\   S
\\S      SS4S jjr\	S\
SS 4S j5       r\	S 5       rS\
4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg) TemplateProfileComponentResponsei2  a  
Input body parameters for the TemplateProfileComponent.

:param str name: Name of the Profile.
:param str description: (optional) Description of the Profile.
:param List[TrustedProfileTemplateClaimRule] rules: (optional) Rules for the
      Profile.
:param str email: (optional) Email of the trusted profile.
:param List[ProfileIdentityResponse] identities: (optional) Identities for the
      Profile.
N)rK   r  r   r"  r)   rK   r  r  r   r"  r	  r   c                @    Xl         X l        X0l        X@l        XPl        g)a  
Initialize a TemplateProfileComponentResponse object.

:param str name: Name of the Profile.
:param str description: (optional) Description of the Profile.
:param List[TrustedProfileTemplateClaimRule] rules: (optional) Rules for
       the Profile.
:param str email: (optional) Email of the trusted profile.
:param List[ProfileIdentityResponse] identities: (optional) Identities for
       the Profile.
N)r)   rK   r  r   r"  )r$   r)   rK   r  r   r"  s         r   r"   )TemplateProfileComponentResponse.__init__2  s    ( 	&

$r   r  c                    0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   UR                  S5      =nb  XrS'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   U " S0 UD6$ s  snf s  snf )LInitialize a TemplateProfileComponentResponse object from a json dictionary.r)   zMRequired property 'name' not present in TemplateProfileComponentResponse JSONrK   r  r   r"  rg   )rC   rY   r  r  r	  )	r   r  r  r)   rK   r  r^   r   r"  s	            r   r  *TemplateProfileComponentResponse.from_dict 3  s     IIf%%D2Lnoo 99]33K@"-YYw''E4SXYSXa<FFqISXYDMYYw''E4!M))L11J>PZ![PZ1"9"C"CA"FPZ![D{T{ Z "\s   C,Cc                 $    U R                  U5      $ )r  r  r  s     r   r  +TemplateProfileComponentResponse._from_dict3  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[	        U[
        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[	        U[
        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     XAS'   U$ )r  r)   rK   r  r   r"  )
r  r)   rK   r  r  rj   r  r  r   r"  r  s        r   r  (TemplateProfileComponentResponse.to_dict3  s=   4  TYY%: IIE&M4''D,<,<,H#'#3#3E- 4!!djj&<JZZa&&%%a(%%aiik2	  
 ('N4!!djj&<!ZZE'N4&&4??+F O__a&&#**1-#**199;7	 %
 #2,r   c                 "    U R                  5       $ r  r  r  s    r   r  )TemplateProfileComponentResponse._to_dict23  r  r   c                 H    [         R                  " U R                  5       SS9$ )zGReturn a `str` version of this TemplateProfileComponentResponse object.r  r  r  r  s    r   r  (TemplateProfileComponentResponse.__str__63  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  'TemplateProfileComponentResponse.__eq__:3  r  r   c                     X:X  + $ r  rg   r  s     r   r  'TemplateProfileComponentResponse.__ne__@3  r  r   r  r  rg   r   r   r  r  2  s    
  &*CG#@D%% c]	%
 >?@% }% T";<=% 
%4 d 'I  " $ $ 64 4/> /4 /!> !4 !r   r  c            %       @   \ rS rSrSrSSSSSSSSSSSS.S\S\S\S\S	\S
\S\S   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\	S      S\S   SS4$S jjr
\S\SS 4S j5       r\S 5       rS\4S jrS rS\4S  jrS!S S\4S" jrS!S S\4S# jrS$rg)%TrustedProfileiE3  a	  
Response body format for trusted profile V1 REST requests.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param str id: the unique identifier of the trusted profile.
      Example:'Profile-94497d0d-2ac3-41bf-a993-a49d1b14627c'.
:param str entity_tag: Version of the trusted profile details object. You need
      to specify this value when updating the trusted profile to avoid stale updates.
:param str crn: Cloud Resource Name of the item. Example Cloud Resource Name:
      'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::profile:Profile-94497d0d-2ac3-41bf-a993-a49d1b14627c'.
:param str name: Name of the trusted profile. The name is checked for
      uniqueness. Therefore trusted profiles with the same names can not exist in the
      same account.
:param str description: (optional) The optional description of the trusted
      profile. The 'description' property is only available if a description was
      provided during a create of a trusted profile.
:param str email: (optional) The optional email of the trusted profile. The
      'email' property is only available if an email was provided during a create of a
      trusted profile.
:param datetime created_at: (optional) If set contains a date time string of the
      creation date in ISO format.
:param datetime modified_at: (optional) If set contains a date time string of
      the last modification date in ISO format.
:param str iam_id: The iam_id of this trusted profile.
:param str account_id: ID of the account that this trusted profile belong to.
:param str template_id: (optional) ID of the IAM template that was used to
      create an enterprise-managed trusted profile in your account. When returned,
      this indicates that the trusted profile is created from and managed by a
      template in the root enterprise account.
:param str assignment_id: (optional) ID of the assignment that was used to
      create an enterprise-managed trusted profile in your account. When returned,
      this indicates that the trusted profile is created from and managed by a
      template in the root enterprise account.
:param int ims_account_id: (optional) IMS acount ID of the trusted profile.
:param int ims_user_id: (optional) IMS user ID of the trusted profile.
:param List[EnityHistoryRecord] history: (optional) History of the trusted
      profile.
:param Activity activity: (optional)
N)r   rK   r   rU  r  r  r  r  ims_user_idr&  r  rb   r'  r  r)   r   r'   r   r   rK   r   rU  r  r  r  r  r  r&  r(  r  r  r   c                    Xpl         Xl        X l        X0l        X@l        Xl        Xl        Xl        Xl        XPl	        X`l
        Xl        Xl        Xl        Xl        UU l        UU l        g)a	  
Initialize a TrustedProfile object.

:param str id: the unique identifier of the trusted profile.
       Example:'Profile-94497d0d-2ac3-41bf-a993-a49d1b14627c'.
:param str entity_tag: Version of the trusted profile details object. You
       need to specify this value when updating the trusted profile to avoid stale
       updates.
:param str crn: Cloud Resource Name of the item. Example Cloud Resource
       Name:
       'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::profile:Profile-94497d0d-2ac3-41bf-a993-a49d1b14627c'.
:param str name: Name of the trusted profile. The name is checked for
       uniqueness. Therefore trusted profiles with the same names can not exist in
       the same account.
:param str iam_id: The iam_id of this trusted profile.
:param str account_id: ID of the account that this trusted profile belong
       to.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param str description: (optional) The optional description of the trusted
       profile. The 'description' property is only available if a description was
       provided during a create of a trusted profile.
:param str email: (optional) The optional email of the trusted profile. The
       'email' property is only available if an email was provided during a create
       of a trusted profile.
:param datetime created_at: (optional) If set contains a date time string
       of the creation date in ISO format.
:param datetime modified_at: (optional) If set contains a date time string
       of the last modification date in ISO format.
:param str template_id: (optional) ID of the IAM template that was used to
       create an enterprise-managed trusted profile in your account. When
       returned, this indicates that the trusted profile is created from and
       managed by a template in the root enterprise account.
:param str assignment_id: (optional) ID of the assignment that was used to
       create an enterprise-managed trusted profile in your account. When
       returned, this indicates that the trusted profile is created from and
       managed by a template in the root enterprise account.
:param int ims_account_id: (optional) IMS acount ID of the trusted profile.
:param int ims_user_id: (optional) IMS user ID of the trusted profile.
:param List[EnityHistoryRecord] history: (optional) History of the trusted
       profile.
:param Activity activity: (optional)
N)r   rb   r'  r  r)   rK   r   rU  r  r   r'   r  r  r  r  r&  r  )r$   rb   r'  r  r)   r   r'   r   rK   r   rU  r  r  r  r  r  r&  r  s                     r   r"   TrustedProfile.__init__o3  sd    @ $	&
$&$&*,& r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eUR                  S5      =nb  XrS'   O[        S	5      eUR                  S
5      =nb  XS
'   UR                  S5      =n	b  XS'   UR                  S5      =n
b  [	        U
5      US'   UR                  S5      =nb  [	        U5      US'   UR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  XS'   O[        S5      eUR                  S5      =nb  XS'   UR                  S5      =nb  XS'   UR                  S5      =nb  UUS'   UR                  S5      =nb  UUS'   UR                  S5      =nb)  U Vs/ s H  n[
        R                  U5      PM     snUS'   UR                  S5      =nb  [        R                  U5      US'   U " S0 UD6$ s  snf ):Initialize a TrustedProfile object from a json dictionary.r   rb   z9Required property 'id' not present in TrustedProfile JSONr'  zARequired property 'entity_tag' not present in TrustedProfile JSONr  z:Required property 'crn' not present in TrustedProfile JSONr)   z;Required property 'name' not present in TrustedProfile JSONrK   r   rU  r  r   z=Required property 'iam_id' not present in TrustedProfile JSONr'   zARequired property 'account_id' not present in TrustedProfile JSONr  r  r  r  r&  r  rg   r  )r   r  r  r   rb   r'  r  r)   rK   r   rU  r  r   r'   r  r  r  r  r&  r^   r  s                        r   r  TrustedProfile.from_dict3  s    yy++G8-77@DO))D/!B.JZ[[))L11J>!+bcc99U##C0K[\\IIf%%D2L\]] 99]33K@"-YYw''E4!M))L11J>!3J!?D 99]33K@"4["ADii))F6#N^__))L11J>!+bcc 99]33K@"-"YY77MD$1!#ii(899NF%3D!" 99]33K@"-Dyy++G8HOP11;;A>PDO		*--H:'11(;D{T{ Qs   5Ic                 $    U R                  U5      $ )r  r  r  s     r   r  TrustedProfile._from_dict3  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a%  U R                  b  [        U R                  5      US'   [        U S	5      (       a%  U R                  b  [        U R                  5      US	'   [        U S
5      (       a  U R                  b  U R                  US
'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                   b  U R                   US'   [        U S5      (       a  U R"                  b  U R"                  US'   [        U S5      (       a  U R$                  b  U R$                  US'   [        U S5      (       a  U R&                  b  U R&                  US'   [        U S5      (       am  U R(                  b`  / nU R(                   HJ  n[        U[        5      (       a  UR+                  U5        M+  UR+                  UR	                  5       5        ML     X!S'   [        U S5      (       aZ  U R,                  bM  [        U R,                  [        5      (       a  U R,                  US'   U$ U R,                  R	                  5       US'   U$ )r  r   rb   r'  r  r)   rK   r   rU  r  r   r'   r  r  r  r  r&  r  )r  r   r  rj   r  rb   r'  r  r)   rK   r   rU  r   r  r   r'   r  r  r  r  r&  r  r  rm  s       r   r  TrustedProfile.to_dict3  s&   4##(@$,,--#'<<i #'<<#7#7#9i 4477#6''E$K4&&4??+F"&//E,4DHH$888E%L4  TYY%: IIE&M4''D,<,<,H#'#3#3E- 4!!djj&<!ZZE'N4&&4??+F"4T__"EE,4''D,<,<,H#5d6F6F#GE- 4""t{{'>"kkE(O4&&4??+F"&//E,4''D,<,<,H#'#3#3E- 4))d.@.@.L%)%7%7E/"4)**t/B/B/N&*&9&9E"#4''D,<,<,H#'#3#3E- 4##(@L\\a&& ''* ''		4	 "
  ,)4$$)B$--..$(MMj!  %)MM$9$9$;j!r   c                 "    U R                  5       $ r  r  r  s    r   r  TrustedProfile._to_dict-4  r  r   c                 H    [         R                  " U R                  5       SS9$ )z5Return a `str` version of this TrustedProfile object.r  r  r  r  s    r   r  TrustedProfile.__str__14  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  TrustedProfile.__eq__54  r  r   c                     X:X  + $ r  rg   r  s     r   r  TrustedProfile.__ne__;4  r  r   )r'   r  r  r   rU  r  rK   r   r'  r&  r   rb   r  r  r  r)   r  )r  r  r  r  r  r  r   r   r  r   r"   r  r   r  r  r  r  r  r  r  r  r  rg   r   r   r  r  E3  s   'd 04%)#)-*.%)'+(,%)8<)-'P!P! P! 	P!
 P! P! P! +,P! c]P! }P! X&P! h'P! c]P!  }P!  !!P!" c]#P!$ $345%P!& :&'P!( 
)P!d 1d 1'7 1 1f $ $1 1f4 4/, / /!, ! !r   r  c                       \ rS rSrSrSSSS.S\S\S   S\\   S	\\   S
\\   SS4S jjr	\
S\SS 4S j5       r\
S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S jr " S S\\5      rSrg)r  i@4  a  
TrustedProfileTemplateClaimRule.

:param str name: (optional) Name of the claim rule to be created or updated.
:param str type: Type of the claim rule.
:param str realm_name: (optional) The realm name of the Idp this claim rule
      applies to. This field is required only if the type is specified as
      'Profile-SAML'.
:param int expiration: (optional) Session expiration in seconds, only required
      if type is 'Profile-SAML'.
:param List[ProfileClaimRuleConditions] conditions: Conditions of this claim
      rule.
N)r)   r   r   r   r   r   r)   r   r   r   c                @    X0l         Xl        X@l        XPl        X l        g)a-  
Initialize a TrustedProfileTemplateClaimRule object.

:param str type: Type of the claim rule.
:param List[ProfileClaimRuleConditions] conditions: Conditions of this
       claim rule.
:param str name: (optional) Name of the claim rule to be created or
       updated.
:param str realm_name: (optional) The realm name of the Idp this claim rule
       applies to. This field is required only if the type is specified as
       'Profile-SAML'.
:param int expiration: (optional) Session expiration in seconds, only
       required if type is 'Profile-SAML'.
N)r)   r   r   r   r   )r$   r   r   r)   r   r   s         r   r"   (TrustedProfileTemplateClaimRule.__init__O4  s    . 		$$$r   r  c                    0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb*  U Vs/ s H  n[        R                  U5      PM     snUS'   O[        S5      eU " S0 UD6$ s  snf )	KInitialize a TrustedProfileTemplateClaimRule object from a json dictionary.r)   r   zLRequired property 'type' not present in TrustedProfileTemplateClaimRule JSONr   r   r   zRRequired property 'conditions' not present in TrustedProfileTemplateClaimRule JSONrg   )rC   rY   r   r  )	r   r  r  r)   r   r   r   r   r^   s	            r   r  )TrustedProfileTemplateClaimRule.from_dictl4  s     IIf%%D2LIIf%%D2Lmnn))L11J>!+))L11J>!+))L11J>S]!^S]a"<"F"Fq"IS]!^Dstt{T{ "_s   C c                 $    U R                  U5      $ )r"  r  r  s     r   r  *TrustedProfileTemplateClaimRule._from_dict4  r  r   c                 n   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R
                  b`  / nU R
                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   U$ )r  r)   r   r   r   r   )
r  r)   r   r   r   r   r  rj   r  r  r  s       r   r  'TrustedProfileTemplateClaimRule.to_dict4  s    4  TYY%: IIE&M4  TYY%: IIE&M4&&4??+F"&//E,4&&4??+F"&//E,4&&4??+F O__a&&#**1-#**199;7	 %
 #2,r   c                 "    U R                  5       $ r  r  r  s    r   r  (TrustedProfileTemplateClaimRule._to_dict4  r  r   c                 H    [         R                  " U R                  5       SS9$ )zFReturn a `str` version of this TrustedProfileTemplateClaimRule object.r  r  r  r  s    r   r  'TrustedProfileTemplateClaimRule.__str__4  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  &TrustedProfileTemplateClaimRule.__eq__4  r  r   c                     X:X  + $ r  rg   r  s     r   r  &TrustedProfileTemplateClaimRule.__ne__4  r  r   c                       \ rS rSrSrSrSrg)(TrustedProfileTemplateClaimRule.TypeEnumi4  z
Type of the claim rule.
zProfile-SAMLrg   N)r  r  r  r  r  PROFILE_SAMLr  rg   r   r   r0  r1  4  s    	 &r   r0  )r   r   r)   r   r   )r  r  r  r  r  r  r   r   r  r"   r  r   r  r  r  r  r  r  r  r  r   r0  r  rg   r   r   r  r  @4  s    & #$($(%% 56%
 sm% SM% SM% 
%: d 'H  & $ $ *4 4/= /$ /!= !$ !&3 &r   r  c                       \ rS rSrSrSSSSSSS.S\S   S\S   S	\\   S
\\   S\\   S\\   S\\   SS4S jjr	\
S\SS 4S j5       r\
S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)TrustedProfileTemplateListi4  a{  
TrustedProfileTemplateList.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
      'previous' property is not part of the response no previous page is available.
:param str next: (optional) Link to the next available page. If 'next' property
      is not part of the response no next page is available.
:param List[TrustedProfileTemplateResponse] profile_templates: List of Profile
      Templates based on the query paramters and the page size. The profile_templates
      array is always part of the response but might be empty depending on the query
      parameter values provided.
NrF  profile_templatesTrustedProfileTemplateResponser   r   rG  r  rH  rI  rJ  r   c                X    X l         X0l        X@l        XPl        X`l        Xpl        Xl        g)a  
Initialize a TrustedProfileTemplateList object.

:param List[TrustedProfileTemplateResponse] profile_templates: List of
       Profile Templates based on the query paramters and the page size. The
       profile_templates array is always part of the response but might be empty
       depending on the query parameter values provided.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
       'previous' property is not part of the response no previous page is
       available.
:param str next: (optional) Link to the next available page. If 'next'
       property is not part of the response no next page is available.
N)r   rG  r  rH  rI  rJ  r5  )r$   r5  r   rG  r  rH  rI  rJ  s           r   r"   #TrustedProfileTemplateList.__init__4  s(    : 

 	!2r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S5      =nb  XS'   UR                  S5      =n	b*  U	 V
s/ s H  n
[        R                  U
5      PM     sn
US'   O[	        S5      eU " S	0 UD6$ s  sn
f )
FInitialize a TrustedProfileTemplateList object from a json dictionary.r   rG  r  rH  rI  rJ  r5  zTRequired property 'profile_templates' not present in TrustedProfileTemplateList JSONrg   )rC   r   r  r6  rY   )r   r  r  r   rG  r  rH  rI  rJ  r5  r^   s              r   r  $TrustedProfileTemplateList.from_dict4  s    yy++G8-77@DOii))F6#NYYw''E4!MYYw''E4!M		*--H:'IIf%%D2L!&+>!??L^o(p^oYZ)G)Q)QRS)T^o(pD$%uvv{T{ )qrR  c                 $    U R                  U5      $ )r:  r  r  s     r   r  %TrustedProfileTemplateList._from_dict5  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S'   U$ )r  r   rG  r  rH  rI  rJ  r5  )r  r   r  rj   r  rG  r  rH  rI  rJ  r5  r  )r$   r  profile_templates_listr^   s       r   r  "TrustedProfileTemplateList.to_dict5  sr   4##(@$,,--#'<<i #'<<#7#7#9i 4""t{{'>"kkE(O4!!djj&<!ZZE'N4!!djj&<!ZZE'N4$$)B $E*4  TYY%: IIE&M4,--$2H2H2T%'"++a&&*11!4*11!))+>	 ,
 *@%&r   c                 "    U R                  5       $ r  r  r  s    r   r  #TrustedProfileTemplateList._to_dict#5  r  r   c                 H    [         R                  " U R                  5       SS9$ )zAReturn a `str` version of this TrustedProfileTemplateList object.r  r  r  r  s    r   r  "TrustedProfileTemplateList.__str__'5  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  !TrustedProfileTemplateList.__eq__+5  r  r   c                     X:X  + $ r  rg   r  s     r   r  !TrustedProfileTemplateList.__ne__15  r  r   )r   rH  r  rJ  rG  rI  r5  r`  rg   r   r   r4  r4  4  s   , 04 $##"&"#3 @A#3 +,	#3
 #3 }#3 }#3 3-#3 sm#3 
#3J d 'C  * $ $ 84 4/8 /T /!8 !T !r   r4  c            #       J   \ rS rSrSrSSSSSSSSSSSSS.S\S\S\S\S	\\   S
\\   S\S   S\\	S      S\S   S\\	S      S\\   S\\   S\\   S\\   S\\   S\\   SS4"S jjr
\S\SS 4S j5       r\S 5       rS\4S jrS rS\4S  jrS!S S\4S" jrS!S S\4S# jrS$rg)%r6  i65  a  
Response body format for Trusted Profile Template REST requests.

:param str id: ID of the the template.
:param int version: Version of the the template.
:param str account_id: ID of the account where the template resides.
:param str name: The name of the trusted profile template. This is visible only
      in the enterprise account.
:param str description: (optional) The description of the trusted profile
      template. Describe the template for enterprise account users.
:param bool committed: (optional) Committed flag determines if the template is
      ready for assignment.
:param TemplateProfileComponentResponse profile: (optional) Input body
      parameters for the TemplateProfileComponent.
:param List[PolicyTemplateReference] policy_template_references: (optional)
      Existing policy templates that you can reference to assign access in the trusted
      profile component.
:param ActionControls action_controls: (optional)
:param List[EnityHistoryRecord] history: (optional) History of the trusted
      profile template.
:param str entity_tag: (optional) Entity tag for this templateId-version
      combination.
:param str crn: (optional) Cloud resource name.
:param str created_at: (optional) Timestamp of when the template was created.
:param str created_by_id: (optional) IAMid of the creator.
:param str last_modified_at: (optional) Timestamp of when the template was last
      modified.
:param str last_modified_by_id: (optional) IAMid of the identity that made the
      latest modification.
N)rK   rd  r  r  r  r&  r'  r  rU  rb  rV  rc  rb   r  r'   r)   rK   rd  r  r  r  r  r  r  r&  r(  r'  r  rU  rb  rV  rc  r   c                    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        Xl	        Xl
        Xl        Xl        Xl        Xl        UU l        g)a  
Initialize a TrustedProfileTemplateResponse object.

:param str id: ID of the the template.
:param int version: Version of the the template.
:param str account_id: ID of the account where the template resides.
:param str name: The name of the trusted profile template. This is visible
       only in the enterprise account.
:param str description: (optional) The description of the trusted profile
       template. Describe the template for enterprise account users.
:param bool committed: (optional) Committed flag determines if the template
       is ready for assignment.
:param TemplateProfileComponentResponse profile: (optional) Input body
       parameters for the TemplateProfileComponent.
:param List[PolicyTemplateReference] policy_template_references: (optional)
       Existing policy templates that you can reference to assign access in the
       trusted profile component.
:param ActionControls action_controls: (optional)
:param List[EnityHistoryRecord] history: (optional) History of the trusted
       profile template.
:param str entity_tag: (optional) Entity tag for this templateId-version
       combination.
:param str crn: (optional) Cloud resource name.
:param str created_at: (optional) Timestamp of when the template was
       created.
:param str created_by_id: (optional) IAMid of the creator.
:param str last_modified_at: (optional) Timestamp of when the template was
       last modified.
:param str last_modified_by_id: (optional) IAMid of the identity that made
       the latest modification.
N)rb   r  r'   r)   rK   rd  r  r  r  r&  r'  r  rU  rb  rV  rc  )r$   rb   r  r'   r)   rK   rd  r  r  r  r&  r'  r  rU  rb  rV  rc  s                    r   r"   'TrustedProfileTemplateResponse.__init__V5  s]    f $	&"*D'.$$* 0#6 r   r  c                 v   0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   O[        S5      eUR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   O[        S5      eUR                  S	5      =nb  XrS	'   UR                  S
5      =nb  XS
'   UR                  S5      =n	b  [        R                  U	5      US'   UR                  S5      =n
b)  U
 Vs/ s H  n[        R                  U5      PM     snUS'   UR                  S5      =nb  [
        R                  U5      US'   UR                  S5      =nb)  U Vs/ s H  n[        R                  U5      PM     snUS'   UR                  S5      =nb  XS'   UR                  S5      =nb  XS'   UR                  S5      =nb  UUS'   UR                  S5      =nb  UUS'   UR                  S5      =nb  UUS'   UR                  S5      =nb  UUS'   U " S0 UD6$ s  snf s  snf )JInitialize a TrustedProfileTemplateResponse object from a json dictionary.rb   zIRequired property 'id' not present in TrustedProfileTemplateResponse JSONr  zNRequired property 'version' not present in TrustedProfileTemplateResponse JSONr'   zQRequired property 'account_id' not present in TrustedProfileTemplateResponse JSONr)   zKRequired property 'name' not present in TrustedProfileTemplateResponse JSONrK   rd  r  r  r  r&  r'  r  rU  rb  rV  rc  rg   )rC   rY   r  r  r  r  r(  )r   r  r  rb   r  r'   r)   rK   rd  r  r  r^   r  r&  r'  r  rU  rb  rV  rc  s                       r   r  (TrustedProfileTemplateResponse.from_dict5  sx    ))D/!B.Jjkkyy++G8%Oopp))L11J>!+rssIIf%%D2Llmm 99]33K@"-;//I< )yy++G8>HHQDO*/))4P*QQ&^>X2>X'11!4>X2D-.  %yy):;;OH&4&>&>&OD"#yy++G8HOP11;;A>PDO))L11J>!+99U##C0K))L11J>!+D"YY77MD$1D! %		*< ==J'7D#$#(99-B#CCP*=D&'{T{'2 Qs   H10H6c                 $    U R                  U5      $ )rM  r  r  s     r   r  )TrustedProfileTemplateResponse._from_dict5  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R                  5       US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     X!S'   [        U S	5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US	'   OU R                  R                  5       US	'   [        U S
5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     XAS
'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                   b  U R                   US'   [        U S5      (       a  U R"                  b  U R"                  US'   [        U S5      (       a  U R$                  b  U R$                  US'   [        U S5      (       a  U R&                  b  U R&                  US'   [        U S5      (       a  U R(                  b  U R(                  US'   U$ )r  rb   r  r'   r)   rK   rd  r  r  r  r&  r'  r  rU  rb  rV  rc  )r  rb   r  r'   r)   rK   rd  r  r  rj   r  r  r  r  r&  r'  r  rU  rb  rV  rc  )r$   r  r  r^   r1  s        r   r  &TrustedProfileTemplateResponse.to_dict5  s<   4477#6''E$K4##(@#||E)4&&4??+F"&//E,4  TYY%: IIE&M4''D,<,<,H#'#3#3E- 4%%$..*D!%E+4##(@$,,--#'<<i #'<<#7#7#9i 45664;Z;Z;f.0+44a&&3::1=3::199;G	 5
 3R./4*++0D0D0P$..55+/+?+?'(+/+?+?+G+G+I'(4##(@L\\a&& ''* ''		4	 "
  ,)4&&4??+F"&//E,4DHH$888E%L4&&4??+F"&//E,4))d.@.@.L%)%7%7E/"4+,,1F1F1R(,(=(=E$%4.//D4L4L4X+/+C+CE'(r   c                 "    U R                  5       $ r  r  r  s    r   r  'TrustedProfileTemplateResponse._to_dict6  r  r   c                 H    [         R                  " U R                  5       SS9$ )zEReturn a `str` version of this TrustedProfileTemplateResponse object.r  r  r  r  s    r   r  &TrustedProfileTemplateResponse.__str__
6  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  %TrustedProfileTemplateResponse.__eq__6  r  r   c                     X:X  + $ r  rg   r  s     r   r  %TrustedProfileTemplateResponse.__ne__6  r  r   )r'   r  rd  rU  rb  r  rK   r'  r&  rb   rV  rc  r)   r  r  r  )r  r  r  r  r  r  r  r   r  r   r"   r  r   r  r  r  r  r  r  r  r  rg   r   r   r6  r6  65  s   L &*$(@DPT6:8<$(!$('+*.-1%B7B7 B7 	B7
 B7 c]B7 D>B7 <=B7 %-T2K-L$MB7 ""23B7 $345B7 SMB7 c]B7 SMB7   }!B7" #3-#B7$ &c]%B7& 
'B7H -d -'G - -^ $ $5 5n4 4/< / /!< ! !r   r6  c                       \ rS rSrSrSSSSSSS.S\S   S\S   S	\\   S
\\   S\\   S\\   S\\   SS4S jjr	\
S\SS 4S j5       r\
S 5       rS\4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)TrustedProfilesListi6  a  
Response body format for the List trusted profiles V1 REST request.

:param ResponseContext context: (optional) Context with key properties for
      problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page. Default is 20 items
      per page. Valid range is 1 to 100.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
      'previous' property is not part of the response no previous page is available.
:param str next: (optional) Link to the next available page. If 'next' property
      is not part of the response no next page is available.
:param List[TrustedProfile] profiles: List of trusted profiles.
NrF  r  r  r   r   rG  r  rH  rI  rJ  r   c                X    X l         X0l        X@l        XPl        X`l        Xpl        Xl        g)a  
Initialize a TrustedProfilesList object.

:param List[TrustedProfile] profiles: List of trusted profiles.
:param ResponseContext context: (optional) Context with key properties for
       problem determination.
:param int offset: (optional) The offset of the current page.
:param int limit: (optional) Optional size of a single page. Default is 20
       items per page. Valid range is 1 to 100.
:param str first: (optional) Link to the first page.
:param str previous: (optional) Link to the previous available page. If
       'previous' property is not part of the response no previous page is
       available.
:param str next: (optional) Link to the next available page. If 'next'
       property is not part of the response no next page is available.
N)r   rG  r  rH  rI  rJ  r  )r$   r  r   rG  r  rH  rI  rJ  s           r   r"   TrustedProfilesList.__init__*6  s'    6 

 	 r   r  c                    0 nUR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   UR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   UR                  S5      =nb  XS'   UR                  S5      =n	b*  U	 V
s/ s H  n
[        R                  U
5      PM     sn
US'   O[	        S5      eU " S	0 UD6$ s  sn
f )
?Initialize a TrustedProfilesList object from a json dictionary.r   rG  r  rH  rI  rJ  r  zDRequired property 'profiles' not present in TrustedProfilesList JSONrg   )rC   r   r  r  rY   )r   r  r  r   rG  r  rH  rI  rJ  r  r^   s              r   r  TrustedProfilesList.from_dictM6  s    yy++G8-77@DOii))F6#NYYw''E4!MYYw''E4!M		*--H:'IIf%%D2L		*--H:EMNX 8 8 ;XNDeff{T{  OrR  c                 $    U R                  U5      $ )r`  r  r  s     r   r  TrustedProfilesList._from_dictc6  r  r   c                    0 n[        U S5      (       aY  U R                  bL  [        U R                  [        5      (       a  U R                  US'   OU R                  R	                  5       US'   [        U S5      (       a  U R
                  b  U R
                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       am  U R                  b`  / nU R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR	                  5       5        ML     X!S'   U$ )r  r   rG  r  rH  rI  rJ  r  )r  r   r  rj   r  rG  r  rH  rI  rJ  r  r  )r$   r  r  r^   s       r   r  TrustedProfilesList.to_dicth6  sj   4##(@$,,--#'<<i #'<<#7#7#9i 4""t{{'>"kkE(O4!!djj&<!ZZE'N4!!djj&<!ZZE'N4$$)B $E*4  TYY%: IIE&M4$$)BM]]a&&!((+!((5	 #
 !.*r   c                 "    U R                  5       $ r  r  r  s    r   r  TrustedProfilesList._to_dict6  r  r   c                 H    [         R                  " U R                  5       SS9$ )z:Return a `str` version of this TrustedProfilesList object.r  r  r  r  s    r   r  TrustedProfilesList.__str__6  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  TrustedProfilesList.__eq__6  r  r   c                     X:X  + $ r  rg   r  s     r   r  TrustedProfilesList.__ne__6  r  r   )r   rH  r  rJ  rG  rI  r  r`  rg   r   r   r\  r\  6  s   ( 04 $##"&"!!'(!! +,	!!
 !! }!! }!! 3-!! sm!! 
!!F d '<  * $ $ 84 4/1 /d /!1 !d !r   r\  c                       \ rS rSrSrSSSS.S\S\S\\   S\\   S	\\   S
S4S jjr\S\	S
S 4S j5       r
\S 5       rS
\	4S jrS rS
\4S jrSS S
\4S jrSS S
\4S jrSrg)r  i6  a  
UserActivity.

:param str iam_id: IAMid of the user.
:param str name: (optional) Name of the user.
:param str username: Username of the user.
:param str email: (optional) Email of the user.
:param str last_authn: (optional) Time when the user was last authenticated.
N)r)   r   r  r   r{  r)   r   r  r   c                @    Xl         X0l        X l        X@l        XPl        g)a'  
Initialize a UserActivity object.

:param str iam_id: IAMid of the user.
:param str username: Username of the user.
:param str name: (optional) Name of the user.
:param str email: (optional) Email of the user.
:param str last_authn: (optional) Time when the user was last
       authenticated.
N)r   r)   r{  r   r  )r$   r   r{  r)   r   r  s         r   r"   UserActivity.__init__6  s    & 	 
$r   r  c                 6   0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   UR                  S5      =nb  XrS'   U " S0 UD6$ )	8Initialize a UserActivity object from a json dictionary.r   z;Required property 'iam_id' not present in UserActivity JSONr)   r{  z=Required property 'username' not present in UserActivity JSONr   r  rg   r  )r   r  r  r   r)   r{  r   r  s           r   r  UserActivity.from_dict6  s     ii))F6#N\]]IIf%%D2L		*--H:'^__YYw''E4!M))L11J>!+{T{r   c                 $    U R                  U5      $ )rr  r  r  s     r   r  UserActivity._from_dict6  r  r   c                    0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R
                  b  U R
                  US'   U$ )r  r   r)   r{  r   r  )r  r   r)   r{  r   r  r  s     r   r  UserActivity.to_dict6  s    4""t{{'>"kkE(O4  TYY%: IIE&M4$$)B $E*4!!djj&<!ZZE'N4&&4??+F"&//E,r   c                 "    U R                  5       $ r  r  r  s    r   r  UserActivity._to_dict6  r  r   c                 H    [         R                  " U R                  5       SS9$ )z3Return a `str` version of this UserActivity object.r  r  r  r  s    r   r  UserActivity.__str__6  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  UserActivity.__eq__6  r  r   c                     X:X  + $ r  rg   r  s     r   r  UserActivity.__ne__6  r  r   )r   r   r  r)   r{  rc  rg   r   r   r  r  6  s     ##$(%% %
 sm% }% SM% 
%2 d ~  & $ $ 4 4/N /t /!N !t !r   r  c                       \ rS rSrSrSSS.S\\   S\\   SS4S jjr\S	\	SS 4S
 j5       r
\S 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jr " S S\\5      rSrg)r[  i6  a  
UserMfa.

:param str iam_id: (optional) The iam_id of the user.
:param str mfa: (optional) MFA trait definitions as follows:
        * NONE - No MFA trait set
        * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
        * TOTP - For all non-federated IBMId users
        * TOTP4ALL - For all users
        * LEVEL1 - Email-based MFA for all users
        * LEVEL2 - TOTP-based MFA for all users
        * LEVEL3 - U2F MFA for all users.
Nr   rR  r   rR  r   c                    Xl         X l        g)a  
Initialize a UserMfa object.

:param str iam_id: (optional) The iam_id of the user.
:param str mfa: (optional) MFA trait definitions as follows:
         * NONE - No MFA trait set
         * NONE_NO_ROPC- No MFA, disable CLI logins with only a password
         * TOTP - For all non-federated IBMId users
         * TOTP4ALL - For all users
         * LEVEL1 - Email-based MFA for all users
         * LEVEL2 - TOTP-based MFA for all users
         * LEVEL3 - U2F MFA for all users.
Nr  )r$   r   rR  s      r   r"   UserMfa.__init__7  s    & r   r  c                 v    0 nUR                  S5      =nb  X2S'   UR                  S5      =nb  XBS'   U " S0 UD6$ )3Initialize a UserMfa object from a json dictionary.r   rR  rg   rj  )r   r  r  r   rR  s        r   r  UserMfa.from_dict7  sK     ii))F6#N99U##C0K{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  UserMfa._from_dict%7  r  r   c                     0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   U$ )r  r   rR  )r  r   rR  r  s     r   r  UserMfa.to_dict*7  sR    4""t{{'>"kkE(O4DHH$888E%Lr   c                 "    U R                  5       $ r  r  r  s    r   r  UserMfa._to_dict37  r  r   c                 H    [         R                  " U R                  5       SS9$ )z.Return a `str` version of this UserMfa object.r  r  r  r  s    r   r  UserMfa.__str__77  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  UserMfa.__eq__;7  r  r   c                     X:X  + $ r  rg   r  s     r   r  UserMfa.__ne__A7  r  r   c                   4    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rg)UserMfa.MfaEnumiE7  r  r  r  r  r  r  r  r  rg   Nr  rg   r   r   r  r  E7  r  r   r  )r  r  r  r  r  r   r  r"   r  r   r  r  r  r  r  r  r  r  r   r  r  rg   r   r   r[  r[  6  s    " !%!	  c]	
 
, d y   $ $ 4 4/I /$ /!I !$ !#t r   r[  c                       \ rS rSrSrSSSS.S\S\\   S\S   S	\S
   SS4
S jjr\S\	SS 4S j5       r
\S 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)UserMfaEnrollmentsiZ7  a%  
UserMfaEnrollments.

:param str iam_id: IAMid of the user.
:param str effective_mfa_type: (optional) currently effective mfa type i.e.
      id_based_mfa or account_based_mfa.
:param IdBasedMfaEnrollment id_based_mfa: (optional)
:param AccountBasedMfaEnrollment account_based_mfa: (optional)
Nr  r   r  r  r5  r  r  r   c                4    Xl         X l        X0l        X@l        g)a:  
Initialize a UserMfaEnrollments object.

:param str iam_id: IAMid of the user.
:param str effective_mfa_type: (optional) currently effective mfa type i.e.
       id_based_mfa or account_based_mfa.
:param IdBasedMfaEnrollment id_based_mfa: (optional)
:param AccountBasedMfaEnrollment account_based_mfa: (optional)
N)r   r  r  r  )r$   r   r  r  r  s        r   r"   UserMfaEnrollments.__init__e7  s    " "4(!2r   r  c                 >   0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  [        R                  U5      US'   UR                  S5      =nb  [        R                  U5      US'   U " S0 UD6$ )>Initialize a UserMfaEnrollments object from a json dictionary.r   zARequired property 'iam_id' not present in UserMfaEnrollments JSONr  r  r  rg   r  )r   r  r  r   r  r  r  s          r   r  UserMfaEnrollments.from_dict{7  s     ii))F6#Nbcc"')),@"AAN);%&!IIn55LB#7#A#A,#OD !&+>!??L(A(K(KL](^D$%{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  UserMfaEnrollments._from_dict7  r  r   c                 h   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       aY  U R                  bL  [	        U R                  [
        5      (       a  U R                  US'   OU R                  R                  5       US'   [        U S5      (       aZ  U R                  bM  [	        U R                  [
        5      (       a  U R                  US'   U$ U R                  R                  5       US'   U$ )r  r   r  r  r  )r  r   r  r  r  rj   r  r  r  s     r   r  UserMfaEnrollments.to_dict7  s   4""t{{'>"kkE(O4-..43J3J3V*.*A*AE&'4((T->->-J$++T22(,(9(9n%(,(9(9(A(A(Cn%4,--$2H2H2T$00$77-1-C-C)*  .2-C-C-K-K-M)*r   c                 "    U R                  5       $ r  r  r  s    r   r  UserMfaEnrollments._to_dict7  r  r   c                 H    [         R                  " U R                  5       SS9$ )z9Return a `str` version of this UserMfaEnrollments object.r  r  r  r  s    r   r  UserMfaEnrollments.__str__7  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  UserMfaEnrollments.__eq__7  r  r   c                     X:X  + $ r  rg   r  s     r   r  UserMfaEnrollments.__ne__7  r  r   )r  r  r   r  rc  rg   r   r   r  r  Z7  s     -19=CG33 %SM	3
 563 $$?@3 
3, d ';   $ $ &4 4/0 /T /!0 !T !r   r  c                       \ rS rSrSrSSS.S\S\SSS	\\   S
\\   SS4S jjr\S\	SS 4S j5       r
\S 5       rS\	4S jrS rS\4S jrSS S\4S jrSS S\4S jrSrg)r  i7  z
UserReportMfaEnrollmentStatus.

:param str iam_id: IAMid of the user.
:param str name: (optional) Name of the user.
:param str username: Username of the user.
:param str email: (optional) Email of the user.
:param MfaEnrollments enrollments:
N)r)   r   r   r{  enrollmentsr  r)   r   r   c                @    Xl         X@l        X l        XPl        X0l        g)a  
Initialize a UserReportMfaEnrollmentStatus object.

:param str iam_id: IAMid of the user.
:param str username: Username of the user.
:param MfaEnrollments enrollments:
:param str name: (optional) Name of the user.
:param str email: (optional) Email of the user.
N)r   r)   r{  r   r  )r$   r   r{  r  r)   r   s         r   r"   &UserReportMfaEnrollmentStatus.__init__7  s    $ 	 
&r   r  c                 v   0 nUR                  S5      =nb  X2S'   O[        S5      eUR                  S5      =nb  XBS'   UR                  S5      =nb  XRS'   O[        S5      eUR                  S5      =nb  XbS'   UR                  S5      =nb  [        R                  U5      US'   O[        S5      eU " S	0 UD6$ )
IInitialize a UserReportMfaEnrollmentStatus object from a json dictionary.r   zLRequired property 'iam_id' not present in UserReportMfaEnrollmentStatus JSONr)   r{  zNRequired property 'username' not present in UserReportMfaEnrollmentStatus JSONr   r  zQRequired property 'enrollments' not present in UserReportMfaEnrollmentStatus JSONrg   )rC   rY   r  r  )r   r  r  r   r)   r{  r   r  s           r   r  'UserReportMfaEnrollmentStatus.from_dict7  s     ii))F6#NmnnIIf%%D2L		*--H:'oppYYw''E4!M 99]33K@"0":":;"GDrss{T{r   c                 $    U R                  U5      $ )r  r  r  s     r   r  (UserReportMfaEnrollmentStatus._from_dict7  r  r   c                 H   0 n[        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       a  U R                  b  U R                  US'   [        U S5      (       aZ  U R
                  bM  [        U R
                  [        5      (       a  U R
                  US'   U$ U R
                  R                  5       US'   U$ )r  r   r)   r{  r   r  )	r  r   r)   r{  r   r  r  rj   r  r  s     r   r  %UserReportMfaEnrollmentStatus.to_dict7  s    4""t{{'>"kkE(O4  TYY%: IIE&M4$$)B $E*4!!djj&<!ZZE'N4''D,<,<,H$**D11'+'7'7m$  (,'7'7'?'?'Am$r   c                 "    U R                  5       $ r  r  r  s    r   r  &UserReportMfaEnrollmentStatus._to_dict8  r  r   c                 H    [         R                  " U R                  5       SS9$ )zDReturn a `str` version of this UserReportMfaEnrollmentStatus object.r  r  r  r  s    r   r  %UserReportMfaEnrollmentStatus.__str__
8  r  r   r  c                 j    [        XR                  5      (       d  gU R                  UR                  :H  $ r  r  r  s     r   r  $UserReportMfaEnrollmentStatus.__eq__8  r  r   c                     X:X  + $ r  rg   r  s     r   r  $UserReportMfaEnrollmentStatus.__ne__8  r  r   )r   r  r   r)   r{  rc  rg   r   r   r  r  7  s      ##'' ' &	' sm' }' 
'0 d 'F  * $ $ $4 4/; / /!; ! !r   r  )gr  r   enumr   typingr   r   r   r[   ibm_cloud_sdk_corer   r	   /ibm_cloud_sdk_core.authenticators.authenticatorr
   $ibm_cloud_sdk_core.get_authenticatorr   ibm_cloud_sdk_core.utilsr   r   r   commonr   r   r  r)  r;  r?  rJ  rN  rR  rc  rj  r  r  r  r  r  r  r%  rE  rL  r\  r  r  r  r  r  r  r  rO   r:  rO  rP  rQ  r  r  r  r(  r  r  r  r5  rZ  ro  r  r  r  r  r   r  r  r#  r	  rG  rH  rm  r  r  r  r   r  r  r  r#  r  r6  rc  ry  r  re  r  r  r  r  r  r  r4  r6  r\  r  r[  r  r  rg   r   r   <module>r     s$  &   ' '  < I S Z Z #]SK ]S@g  @     0 0 > 0 0 H_! _!D[ [|
d dN	Q" Q"hD! D!NE! E!PT! T!nE EPT! T!nB! B!JB! B!JB! B!JD! D!NE! E!Pk! k!\! !Dp! p!f?! ?!DO! O!dK! K!\a! a!Ht! t!nk! k!\J! J!Z[! [!|^! ^!B^( ^(Bj! j!Z@! @!FB! B!JQ! Q!hB! B!J\! \!~S! S!lL! L!^G! G!Tn nbx xv|! |!~_! _!D>! >!BZ! Z!zq! q!h8! 8!vP! P!fj! j!ZK! K!\@! @!F@! @!Fu up	K! K!\A! A!H7! 7!tP! P!fd! d!Nd! d!Ni! i!XK! K!\i! i!Xx! x!vq& q&h! !D`! `!F{! {!|\! \!~a aHY! Y!x`! `!r   