Skip to content

update_profile async

update_profile(
    profile_id: Uuid,
    *,
    config_overrides: Optional[AsyncRolesAnywhereClientConfig] = None,
    name: Optional[ResourceName] = None,
    session_policy: Optional[str] = None,
    role_arns: Optional[RoleArnList] = None,
    managed_policy_arns: Optional[ManagedPolicyList] = None,
    duration_seconds: Optional[int] = None,
    accept_role_session_name: Optional[bool] = None,
) -> ProfileDetailResponse

Updates a profile, a list of the roles that IAM Roles Anywhere service is trusted to assume. You use profiles to intersect permissions with IAM managed policies.

Required permissions: rolesanywhere:UpdateProfile.

Parameters:

  • profile_id (Uuid) –

    The unique identifier of the profile.

  • name (Optional[ResourceName], default: None ) –

    The name of the profile.

  • session_policy (Optional[str], default: None ) –

    A session policy that applies to the trust boundary of the vended session credentials.

  • role_arns (Optional[RoleArnList], default: None ) –

    A list of IAM roles that this profile can assume in a temporary credential request.

  • managed_policy_arns (Optional[ManagedPolicyList], default: None ) –

    A list of managed policy ARNs that apply to the vended session credentials.

  • duration_seconds (Optional[int], default: None ) –

    Used to determine how long sessions vended using this profile are valid for. See the Expiration section of the CreateSession API documentation page for more details. In requests, if this value is not provided, the default value will be 3600.

  • accept_role_session_name (Optional[bool], default: None ) –

    Used to determine if a custom role session name will be accepted in a temporary credential request.

Raises:

Source code in docs_src/capo_rolesanywhere/_services/async_roles_anywhere.py
async def update_profile(
    self,
    profile_id: "capo_rolesanywhere.types.uuid.Uuid",
    *,
    config_overrides: Optional[AsyncRolesAnywhereClientConfig] = None,
    name: Optional["capo_rolesanywhere.types.resource_name.ResourceName"] = None,
    session_policy: Optional[str] = None,
    role_arns: Optional[
        "capo_rolesanywhere.types.role_arn_list.RoleArnList"
    ] = None,
    managed_policy_arns: Optional[
        "capo_rolesanywhere.types.managed_policy_list.ManagedPolicyList"
    ] = None,
    duration_seconds: Optional[int] = None,
    accept_role_session_name: Optional[bool] = None,
) -> "capo_rolesanywhere.types.profile_detail_response.ProfileDetailResponse":
    """<p>Updates a <i>profile</i>, a list of the roles that IAM Roles Anywhere service is trusted to assume. You use profiles to intersect permissions with IAM managed policies.</p> <p> <b>Required permissions: </b> <code>rolesanywhere:UpdateProfile</code>. </p>

    Args:
        profile_id: <p>The unique identifier of the profile.</p>
        name: <p>The name of the profile.</p>
        session_policy: <p>A session policy that applies to the trust boundary of the vended session credentials. </p>
        role_arns: <p>A list of IAM roles that this profile can assume in a temporary credential request.</p>
        managed_policy_arns: <p>A list of managed policy ARNs that apply to the vended session credentials. </p>
        duration_seconds: <p> Used to determine how long sessions vended using this profile are valid for. See the <code>Expiration</code> section of the <a href="https://docs.aws.amazon.com/rolesanywhere/latest/userguide/authentication-create-session.html#credentials-object">CreateSession API documentation</a> page for more details. In requests, if this value is not provided, the default value will be 3600. </p>
        accept_role_session_name: <p>Used to determine if a custom role session name will be accepted in a temporary credential request.</p>

    Raises:
        capo_rolesanywhere.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action.</p>
        capo_rolesanywhere.errors.resource_not_found_exception.ResourceNotFoundException: <p>The resource could not be found.</p>
        capo_rolesanywhere.errors.validation_exception.ValidationException: <p>Validation exception error.</p>
        capo_rolesanywhere.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_rolesanywhere.types.update_profile_request.UpdateProfileRequest]",
    ) -> AsyncOperationResponse[
        "capo_rolesanywhere.types.profile_detail_response.ProfileDetailResponse"
    ]:
        import capo_rolesanywhere._operations.roles_anywhere.update_profile

        (
            output,
            http_response,
        ) = await capo_rolesanywhere._operations.roles_anywhere.update_profile.async_update_profile(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateProfile")
    )
    input_: capo_rolesanywhere.types.update_profile_request.UpdateProfileRequest = {
        "profile_id": profile_id
    }
    if name is not None:
        input_["name"] = name
    if session_policy is not None:
        input_["session_policy"] = session_policy
    if role_arns is not None:
        input_["role_arns"] = role_arns
    if managed_policy_arns is not None:
        input_["managed_policy_arns"] = managed_policy_arns
    if duration_seconds is not None:
        input_["duration_seconds"] = duration_seconds
    if accept_role_session_name is not None:
        input_["accept_role_session_name"] = accept_role_session_name

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output