
com.oracle.bmc.identity.Identity Maven / Gradle / Ivy
/**
* Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.identity;
import com.oracle.bmc.identity.requests.*;
import com.oracle.bmc.identity.responses.*;
@javax.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
public interface Identity extends AutoCloseable {
/**
* Sets the endpoint to call (ex, https://www.example.com).
* @param endpoint The endpoint of the service.
*/
void setEndpoint(String endpoint);
/**
* Sets the region to call (ex, Region.US_PHOENIX_1).
*
* Note, this will call {@link #setEndpoint(String) setEndpoint} after resolving the endpoint. If the service is not available in this Region, however, an IllegalArgumentException will be raised.
* @param region The region of the service.
*/
void setRegion(com.oracle.bmc.Region region);
/**
* Sets the region to call (ex, 'us-phoenix-1').
*
* Note, this will first try to map the region ID to a known Region and call
* {@link #setRegion(Region) setRegion}.
*
* If no known Region could be determined, it will create an endpoint based on the
* default endpoint format ({@link com.oracle.bmc.Region#formatDefaultRegionEndpoint(Service, String)}
* and then call {@link #setEndpoint(String) setEndpoint}.
* @param regionId The public region ID.
*/
void setRegion(String regionId);
/**
* Activates the specified MFA TOTP device for the user. Activation requires manual interaction with the Console.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ActivateMfaTotpDeviceResponse activateMfaTotpDevice(ActivateMfaTotpDeviceRequest request);
/**
* Adds the specified user to the specified group and returns a `UserGroupMembership` object with its own OCID.
*
* After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
* object, first make sure its `lifecycleState` has changed to ACTIVE.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
AddUserToGroupResponse addUserToGroup(AddUserToGroupRequest request);
/**
* Assembles tag defaults in the specified compartment and any parent compartments to determine
* the tags to apply. Tag defaults from parent compartments do not override tag defaults
* referencing the same tag in a compartment lower down the hierarchy. This set of tag defaults
* includes all tag defaults from the current compartment back to the root compartment.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
AssembleEffectiveTagSetResponse assembleEffectiveTagSet(AssembleEffectiveTagSetRequest request);
/**
* Moves the specified tag namespace to the specified compartment within the same tenancy.
*
* To move the tag namespace, you must have the manage tag-namespaces permission on both compartments.
* For more information about IAM policies, see [Details for IAM](https://docs.cloud.oracle.com/Content/Identity/Reference/iampolicyreference.htm).
*
* Moving a tag namespace moves all the tag key definitions contained in the tag namespace.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ChangeTagNamespaceCompartmentResponse changeTagNamespaceCompartment(
ChangeTagNamespaceCompartmentRequest request);
/**
* Creates a new auth token for the specified user. For information about what auth tokens are for, see
* [Managing User Credentials](https://docs.cloud.oracle.com/Content/Identity/Tasks/managingcredentials.htm).
*
* You must specify a *description* for the auth token (although it can be an empty string). It does not
* have to be unique, and you can change it anytime with
* {@link #updateAuthToken(UpdateAuthTokenRequest) updateAuthToken}.
*
* Every user has permission to create an auth token for *their own user ID*. An administrator in your organization
* does not need to write a policy to give users this ability. To compare, administrators who have permission to the
* tenancy can use this operation to create an auth token for any user, including themselves.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateAuthTokenResponse createAuthToken(CreateAuthTokenRequest request);
/**
* Creates a new compartment in the specified compartment.
*
**Important:** Compartments cannot be deleted.
*
* Specify the parent compartment's OCID as the compartment ID in the request object. Remember that the tenancy
* is simply the root compartment. For information about OCIDs, see
* [Resource Identifiers](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
*
* You must also specify a *name* for the compartment, which must be unique across all compartments in
* your tenancy. You can use this name or the OCID when writing policies that apply
* to the compartment. For more information about policies, see
* [How Policies Work](https://docs.cloud.oracle.com/Content/Identity/Concepts/policies.htm).
*
* You must also specify a *description* for the compartment (although it can be an empty string). It does
* not have to be unique, and you can change it anytime with
* {@link #updateCompartment(UpdateCompartmentRequest) updateCompartment}.
*
* After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
* object, first make sure its `lifecycleState` has changed to ACTIVE.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateCompartmentResponse createCompartment(CreateCompartmentRequest request);
/**
* Creates a new secret key for the specified user. Secret keys are used for authentication with the Object Storage Service's Amazon S3
* compatible API. For information, see
* [Managing User Credentials](https://docs.cloud.oracle.com/Content/Identity/Tasks/managingcredentials.htm).
*
* You must specify a *description* for the secret key (although it can be an empty string). It does not
* have to be unique, and you can change it anytime with
* {@link #updateCustomerSecretKey(UpdateCustomerSecretKeyRequest) updateCustomerSecretKey}.
*
* Every user has permission to create a secret key for *their own user ID*. An administrator in your organization
* does not need to write a policy to give users this ability. To compare, administrators who have permission to the
* tenancy can use this operation to create a secret key for any user, including themselves.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateCustomerSecretKeyResponse createCustomerSecretKey(CreateCustomerSecretKeyRequest request);
/**
* Creates a new dynamic group in your tenancy.
*
* You must specify your tenancy's OCID as the compartment ID in the request object (remember that the tenancy
* is simply the root compartment). Notice that IAM resources (users, groups, compartments, and some policies)
* reside within the tenancy itself, unlike cloud resources such as compute instances, which typically
* reside within compartments inside the tenancy. For information about OCIDs, see
* [Resource Identifiers](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
*
* You must also specify a *name* for the dynamic group, which must be unique across all dynamic groups in your
* tenancy, and cannot be changed. Note that this name has to be also unique across all groups in your tenancy.
* You can use this name or the OCID when writing policies that apply to the dynamic group. For more information
* about policies, see [How Policies Work](https://docs.cloud.oracle.com/Content/Identity/Concepts/policies.htm).
*
* You must also specify a *description* for the dynamic group (although it can be an empty string). It does not
* have to be unique, and you can change it anytime with {@link #updateDynamicGroup(UpdateDynamicGroupRequest) updateDynamicGroup}.
*
* After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
* object, first make sure its `lifecycleState` has changed to ACTIVE.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateDynamicGroupResponse createDynamicGroup(CreateDynamicGroupRequest request);
/**
* Creates a new group in your tenancy.
*
* You must specify your tenancy's OCID as the compartment ID in the request object (remember that the tenancy
* is simply the root compartment). Notice that IAM resources (users, groups, compartments, and some policies)
* reside within the tenancy itself, unlike cloud resources such as compute instances, which typically
* reside within compartments inside the tenancy. For information about OCIDs, see
* [Resource Identifiers](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
*
* You must also specify a *name* for the group, which must be unique across all groups in your tenancy and
* cannot be changed. You can use this name or the OCID when writing policies that apply to the group. For more
* information about policies, see [How Policies Work](https://docs.cloud.oracle.com/Content/Identity/Concepts/policies.htm).
*
* You must also specify a *description* for the group (although it can be an empty string). It does not
* have to be unique, and you can change it anytime with {@link #updateGroup(UpdateGroupRequest) updateGroup}.
*
* After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
* object, first make sure its `lifecycleState` has changed to ACTIVE.
*
* After creating the group, you need to put users in it and write policies for it.
* See {@link #addUserToGroup(AddUserToGroupRequest) addUserToGroup} and
* {@link #createPolicy(CreatePolicyRequest) createPolicy}.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateGroupResponse createGroup(CreateGroupRequest request);
/**
* Creates a new identity provider in your tenancy. For more information, see
* [Identity Providers and Federation](https://docs.cloud.oracle.com/Content/Identity/Concepts/federation.htm).
*
* You must specify your tenancy's OCID as the compartment ID in the request object.
* Remember that the tenancy is simply the root compartment. For information about
* OCIDs, see [Resource Identifiers](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
*
* You must also specify a *name* for the `IdentityProvider`, which must be unique
* across all `IdentityProvider` objects in your tenancy and cannot be changed.
*
* You must also specify a *description* for the `IdentityProvider` (although
* it can be an empty string). It does not have to be unique, and you can change
* it anytime with
* {@link #updateIdentityProvider(UpdateIdentityProviderRequest) updateIdentityProvider}.
*
* After you send your request, the new object's `lifecycleState` will temporarily
* be CREATING. Before using the object, first make sure its `lifecycleState` has
* changed to ACTIVE.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateIdentityProviderResponse createIdentityProvider(CreateIdentityProviderRequest request);
/**
* Creates a single mapping between an IdP group and an IAM Service
* {@link Group}.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateIdpGroupMappingResponse createIdpGroupMapping(CreateIdpGroupMappingRequest request);
/**
* Creates a new MFA TOTP device for the user. A user can have one MFA TOTP device.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateMfaTotpDeviceResponse createMfaTotpDevice(CreateMfaTotpDeviceRequest request);
/**
* Creates a new Console one-time password for the specified user. For more information about user
* credentials, see [User Credentials](https://docs.cloud.oracle.com/Content/Identity/Concepts/usercredentials.htm).
*
* Use this operation after creating a new user, or if a user forgets their password. The new one-time
* password is returned to you in the response, and you must securely deliver it to the user. They'll
* be prompted to change this password the next time they sign in to the Console. If they don't change
* it within 7 days, the password will expire and you'll need to create a new one-time password for the
* user.
*
**Note:** The user's Console login is the unique name you specified when you created the user
* (see {@link #createUser(CreateUserRequest) createUser}).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateOrResetUIPasswordResponse createOrResetUIPassword(CreateOrResetUIPasswordRequest request);
/**
* Creates a new policy in the specified compartment (either the tenancy or another of your compartments).
* If you're new to policies, see [Getting Started with Policies](https://docs.cloud.oracle.com/Content/Identity/Concepts/policygetstarted.htm).
*
* You must specify a *name* for the policy, which must be unique across all policies in your tenancy
* and cannot be changed.
*
* You must also specify a *description* for the policy (although it can be an empty string). It does not
* have to be unique, and you can change it anytime with {@link #updatePolicy(UpdatePolicyRequest) updatePolicy}.
*
* You must specify one or more policy statements in the statements array. For information about writing
* policies, see [How Policies Work](https://docs.cloud.oracle.com/Content/Identity/Concepts/policies.htm) and
* [Common Policies](https://docs.cloud.oracle.com/Content/Identity/Concepts/commonpolicies.htm).
*
* After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
* object, first make sure its `lifecycleState` has changed to ACTIVE.
*
* New policies take effect typically within 10 seconds.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreatePolicyResponse createPolicy(CreatePolicyRequest request);
/**
* Creates a subscription to a region for a tenancy.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateRegionSubscriptionResponse createRegionSubscription(
CreateRegionSubscriptionRequest request);
/**
* Creates a new SMTP credential for the specified user. An SMTP credential has an SMTP user name and an SMTP password.
* You must specify a *description* for the SMTP credential (although it can be an empty string). It does not
* have to be unique, and you can change it anytime with
* {@link #updateSmtpCredential(UpdateSmtpCredentialRequest) updateSmtpCredential}.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateSmtpCredentialResponse createSmtpCredential(CreateSmtpCredentialRequest request);
/**
* **Deprecated. Use {@link #createAuthToken(CreateAuthTokenRequest) createAuthToken} instead.**
*
* Creates a new Swift password for the specified user. For information about what Swift passwords are for, see
* [Managing User Credentials](https://docs.cloud.oracle.com/Content/Identity/Tasks/managingcredentials.htm).
*
* You must specify a *description* for the Swift password (although it can be an empty string). It does not
* have to be unique, and you can change it anytime with
* {@link #updateSwiftPassword(UpdateSwiftPasswordRequest) updateSwiftPassword}.
*
* Every user has permission to create a Swift password for *their own user ID*. An administrator in your organization
* does not need to write a policy to give users this ability. To compare, administrators who have permission to the
* tenancy can use this operation to create a Swift password for any user, including themselves.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateSwiftPasswordResponse createSwiftPassword(CreateSwiftPasswordRequest request);
/**
* Creates a new tag in the specified tag namespace.
*
* You must specify either the OCID or the name of the tag namespace that will contain this tag definition.
*
* You must also specify a *name* for the tag, which must be unique across all tags in the tag namespace
* and cannot be changed. The name can contain any ASCII character except the space (_) or period (.) characters.
* Names are case insensitive. That means, for example, \"myTag\" and \"mytag\" are not allowed in the same namespace.
* If you specify a name that's already in use in the tag namespace, a 409 error is returned.
*
* You must also specify a *description* for the tag.
* It does not have to be unique, and you can change it with
* {@link #updateTag(UpdateTagRequest) updateTag}.
*
* If no 'validator' is set on this tag definition, then any (valid) value can be set for this definedTag.
*
* If a 'validator' is set on this tag definition, then the only valid values that can be set for this
* definedTag those that pass the additional validation imposed by the set 'validator'.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateTagResponse createTag(CreateTagRequest request);
/**
* Creates a new tag default in the specified compartment for the specified tag definition.
*
* If you specify that a value is required, a value is set during resource creation (either by
* the user creating the resource or another tag defualt). If no value is set, resource creation
* is blocked.
*
* If the `isRequired` flag is set to \"true\", the value is set during resource creation.
* * If the `isRequired` flag is set to \"false\", the value you enter is set during resource creation.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateTagDefaultResponse createTagDefault(CreateTagDefaultRequest request);
/**
* Creates a new tag namespace in the specified compartment.
*
* You must specify the compartment ID in the request object (remember that the tenancy is simply the root
* compartment).
*
* You must also specify a *name* for the namespace, which must be unique across all namespaces in your tenancy
* and cannot be changed. The name can contain any ASCII character except the space (_) or period (.).
* Names are case insensitive. That means, for example, \"myNamespace\" and \"mynamespace\" are not allowed
* in the same tenancy. Once you created a namespace, you cannot change the name.
* If you specify a name that's already in use in the tenancy, a 409 error is returned.
*
* You must also specify a *description* for the namespace.
* It does not have to be unique, and you can change it with
* {@link #updateTagNamespace(UpdateTagNamespaceRequest) updateTagNamespace}.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateTagNamespaceResponse createTagNamespace(CreateTagNamespaceRequest request);
/**
* Creates a new user in your tenancy. For conceptual information about users, your tenancy, and other
* IAM Service components, see [Overview of the IAM Service](https://docs.cloud.oracle.com/Content/Identity/Concepts/overview.htm).
*
* You must specify your tenancy's OCID as the compartment ID in the request object (remember that the
* tenancy is simply the root compartment). Notice that IAM resources (users, groups, compartments, and
* some policies) reside within the tenancy itself, unlike cloud resources such as compute instances,
* which typically reside within compartments inside the tenancy. For information about OCIDs, see
* [Resource Identifiers](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
*
* You must also specify a *name* for the user, which must be unique across all users in your tenancy
* and cannot be changed. Allowed characters: No spaces. Only letters, numerals, hyphens, periods,
* underscores, +, and @. If you specify a name that's already in use, you'll get a 409 error.
* This name will be the user's login to the Console. You might want to pick a
* name that your company's own identity system (e.g., Active Directory, LDAP, etc.) already uses.
* If you delete a user and then create a new user with the same name, they'll be considered different
* users because they have different OCIDs.
*
* You must also specify a *description* for the user (although it can be an empty string).
* It does not have to be unique, and you can change it anytime with
* {@link #updateUser(UpdateUserRequest) updateUser}. You can use the field to provide the user's
* full name, a description, a nickname, or other information to generally identify the user.
*
* After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before
* using the object, first make sure its `lifecycleState` has changed to ACTIVE.
*
* A new user has no permissions until you place the user in one or more groups (see
* {@link #addUserToGroup(AddUserToGroupRequest) addUserToGroup}). If the user needs to
* access the Console, you need to provide the user a password (see
* {@link #createOrResetUIPassword(CreateOrResetUIPasswordRequest) createOrResetUIPassword}).
* If the user needs to access the Oracle Cloud Infrastructure REST API, you need to upload a
* public API signing key for that user (see
* [Required Keys and OCIDs](https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm) and also
* {@link #uploadApiKey(UploadApiKeyRequest) uploadApiKey}).
*
**Important:** Make sure to inform the new user which compartment(s) they have access to.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
CreateUserResponse createUser(CreateUserRequest request);
/**
* Deletes the specified API signing key for the specified user.
*
* Every user has permission to use this operation to delete a key for *their own user ID*. An
* administrator in your organization does not need to write a policy to give users this ability.
* To compare, administrators who have permission to the tenancy can use this operation to delete
* a key for any user, including themselves.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteApiKeyResponse deleteApiKey(DeleteApiKeyRequest request);
/**
* Deletes the specified auth token for the specified user.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteAuthTokenResponse deleteAuthToken(DeleteAuthTokenRequest request);
/**
* Deletes the specified compartment. The compartment must be empty.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteCompartmentResponse deleteCompartment(DeleteCompartmentRequest request);
/**
* Deletes the specified secret key for the specified user.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteCustomerSecretKeyResponse deleteCustomerSecretKey(DeleteCustomerSecretKeyRequest request);
/**
* Deletes the specified dynamic group.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteDynamicGroupResponse deleteDynamicGroup(DeleteDynamicGroupRequest request);
/**
* Deletes the specified group. The group must be empty.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteGroupResponse deleteGroup(DeleteGroupRequest request);
/**
* Deletes the specified identity provider. The identity provider must not have
* any group mappings (see {@link IdpGroupMapping}).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteIdentityProviderResponse deleteIdentityProvider(DeleteIdentityProviderRequest request);
/**
* Deletes the specified group mapping.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteIdpGroupMappingResponse deleteIdpGroupMapping(DeleteIdpGroupMappingRequest request);
/**
* Deletes the specified MFA TOTP device for the specified user.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteMfaTotpDeviceResponse deleteMfaTotpDevice(DeleteMfaTotpDeviceRequest request);
/**
* Deletes the specified policy. The deletion takes effect typically within 10 seconds.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeletePolicyResponse deletePolicy(DeletePolicyRequest request);
/**
* Deletes the specified SMTP credential for the specified user.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteSmtpCredentialResponse deleteSmtpCredential(DeleteSmtpCredentialRequest request);
/**
* **Deprecated. Use {@link #deleteAuthToken(DeleteAuthTokenRequest) deleteAuthToken} instead.**
*
* Deletes the specified Swift password for the specified user.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteSwiftPasswordResponse deleteSwiftPassword(DeleteSwiftPasswordRequest request);
/**
* Deletes the specified tag definition. This operation triggers a process that removes the
* tag from all resources in your tenancy.
*
* These things happen immediately:
* \u00A0
* * If the tag was a cost-tracking tag, it no longer counts against your 10 cost-tracking
* tags limit, whether you first disabled it or not.
* * If the tag was used with dynamic groups, none of the rules that contain the tag will
* be evaluated against the tag.
*
* Once you start the delete operation, the state of the tag changes to DELETING and tag removal
* from resources begins. This can take up to 48 hours depending on the number of resources that
* were tagged as well as the regions in which those resources reside. When all tags have been
* removed, the state changes to DELETED. You cannot restore a deleted tag. Once the deleted tag
* changes its state to DELETED, you can use the same tag name again.
*
* To delete a tag, you must first retire it. Use {@link #updateTag(UpdateTagRequest) updateTag}
* to retire a tag.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteTagResponse deleteTag(DeleteTagRequest request);
/**
* Deletes the the specified tag default.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteTagDefaultResponse deleteTagDefault(DeleteTagDefaultRequest request);
/**
* Deletes the specified tag namespace. Only an empty tag namespace can be deleted. To delete
* a tag namespace, first delete all its tag definitions.
*
* Use {@link #deleteTag(DeleteTagRequest) deleteTag} to delete a tag definition.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteTagNamespaceResponse deleteTagNamespace(DeleteTagNamespaceRequest request);
/**
* Deletes the specified user. The user must not be in any groups.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
DeleteUserResponse deleteUser(DeleteUserRequest request);
/**
* Generate seed for the MFA TOTP device.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GenerateTotpSeedResponse generateTotpSeed(GenerateTotpSeedRequest request);
/**
* Gets the authentication policy for the given tenancy. You must specify your tenant\u2019s OCID as the value for
* the compartment ID (remember that the tenancy is simply the root compartment).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetAuthenticationPolicyResponse getAuthenticationPolicy(GetAuthenticationPolicyRequest request);
/**
* Gets the specified compartment's information.
*
* This operation does not return a list of all the resources inside the compartment. There is no single
* API operation that does that. Compartments can contain multiple types of resources (instances, block
* storage volumes, etc.). To find out what's in a compartment, you must call the \"List\" operation for
* each resource type and specify the compartment's OCID as a query parameter in the request. For example,
* call the {@link #listInstances(ListInstancesRequest) listInstances} operation in the Cloud Compute
* Service or the {@link #listVolumes(ListVolumesRequest) listVolumes} operation in Cloud Block Storage.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetCompartmentResponse getCompartment(GetCompartmentRequest request);
/**
* Gets the specified dynamic group's information.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetDynamicGroupResponse getDynamicGroup(GetDynamicGroupRequest request);
/**
* Gets the specified group's information.
*
* This operation does not return a list of all the users in the group. To do that, use
* {@link #listUserGroupMemberships(ListUserGroupMembershipsRequest) listUserGroupMemberships} and
* provide the group's OCID as a query parameter in the request.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetGroupResponse getGroup(GetGroupRequest request);
/**
* Gets the specified identity provider's information.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetIdentityProviderResponse getIdentityProvider(GetIdentityProviderRequest request);
/**
* Gets the specified group mapping.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetIdpGroupMappingResponse getIdpGroupMapping(GetIdpGroupMappingRequest request);
/**
* Get the specified MFA TOTP device for the specified user.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetMfaTotpDeviceResponse getMfaTotpDevice(GetMfaTotpDeviceRequest request);
/**
* Gets the specified policy's information.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetPolicyResponse getPolicy(GetPolicyRequest request);
/**
* Gets the specified tag's information.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetTagResponse getTag(GetTagRequest request);
/**
* Retrieves the specified tag default.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetTagDefaultResponse getTagDefault(GetTagDefaultRequest request);
/**
* Gets the specified tag namespace's information.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetTagNamespaceResponse getTagNamespace(GetTagNamespaceRequest request);
/**
* Gets details on a specified work request. The workRequestID is returned in the opc-workrequest-id header
* for any asynchronous operation in the Identity and Access Management service.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetTaggingWorkRequestResponse getTaggingWorkRequest(GetTaggingWorkRequestRequest request);
/**
* Get the specified tenancy's information.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetTenancyResponse getTenancy(GetTenancyRequest request);
/**
* Gets the specified user's information.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetUserResponse getUser(GetUserRequest request);
/**
* Gets the specified UserGroupMembership's information.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetUserGroupMembershipResponse getUserGroupMembership(GetUserGroupMembershipRequest request);
/**
* Gets the specified user's console password information. The returned object contains the user's OCID,
* but not the password itself. The actual password is returned only when created or reset.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetUserUIPasswordInformationResponse getUserUIPasswordInformation(
GetUserUIPasswordInformationRequest request);
/**
* Gets details on a specified work request. The workRequestID is returned in the opc-workrequest-id header
* for any asynchronous operation in the Identity and Access Management service.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
GetWorkRequestResponse getWorkRequest(GetWorkRequestRequest request);
/**
* Lists the API signing keys for the specified user. A user can have a maximum of three keys.
*
* Every user has permission to use this API call for *their own user ID*. An administrator in your
* organization does not need to write a policy to give users this ability.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListApiKeysResponse listApiKeys(ListApiKeysRequest request);
/**
* Lists the auth tokens for the specified user. The returned object contains the token's OCID, but not
* the token itself. The actual token is returned only upon creation.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListAuthTokensResponse listAuthTokens(ListAuthTokensRequest request);
/**
* Lists the availability domains in your tenancy. Specify the OCID of either the tenancy or another
* of your compartments as the value for the compartment ID (remember that the tenancy is simply the root compartment).
* See [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five).
* Note that the order of the results returned can change if availability domains are added or removed; therefore, do not
* create a dependency on the list order.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListAvailabilityDomainsResponse listAvailabilityDomains(ListAvailabilityDomainsRequest request);
/**
* Lists the compartments in a specified compartment. The members of the list
* returned depends on the values set for several parameters.
*
* With the exception of the tenancy (root compartment), the ListCompartments operation
* returns only the first-level child compartments in the parent compartment specified in
* `compartmentId`. The list does not include any subcompartments of the child
* compartments (grandchildren).
*
* The parameter `accessLevel` specifies whether to return only those compartments for which the
* requestor has INSPECT permissions on at least one resource directly
* or indirectly (the resource can be in a subcompartment).
*
* The parameter `compartmentIdInSubtree` applies only when you perform ListCompartments on the
* tenancy (root compartment). When set to true, the entire hierarchy of compartments can be returned.
* To get a full list of all compartments and subcompartments in the tenancy (root compartment),
* set the parameter `compartmentIdInSubtree` to true and `accessLevel` to ANY.
*
* See [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListCompartmentsResponse listCompartments(ListCompartmentsRequest request);
/**
* Lists all the tags enabled for cost-tracking in the specified tenancy. For information about
* cost-tracking tags, see [Using Cost-tracking Tags](https://docs.cloud.oracle.com/Content/Identity/Concepts/taggingoverview.htm#costs).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListCostTrackingTagsResponse listCostTrackingTags(ListCostTrackingTagsRequest request);
/**
* Lists the secret keys for the specified user. The returned object contains the secret key's OCID, but not
* the secret key itself. The actual secret key is returned only upon creation.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListCustomerSecretKeysResponse listCustomerSecretKeys(ListCustomerSecretKeysRequest request);
/**
* Lists the dynamic groups in your tenancy. You must specify your tenancy's OCID as the value for
* the compartment ID (remember that the tenancy is simply the root compartment).
* See [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListDynamicGroupsResponse listDynamicGroups(ListDynamicGroupsRequest request);
/**
* Lists the Fault Domains in your tenancy. Specify the OCID of either the tenancy or another
* of your compartments as the value for the compartment ID (remember that the tenancy is simply the root compartment).
* See [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListFaultDomainsResponse listFaultDomains(ListFaultDomainsRequest request);
/**
* Lists the groups in your tenancy. You must specify your tenancy's OCID as the value for
* the compartment ID (remember that the tenancy is simply the root compartment).
* See [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListGroupsResponse listGroups(ListGroupsRequest request);
/**
* Lists the identity provider groups.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListIdentityProviderGroupsResponse listIdentityProviderGroups(
ListIdentityProviderGroupsRequest request);
/**
* Lists all the identity providers in your tenancy. You must specify the identity provider type (e.g., `SAML2` for
* identity providers using the SAML2.0 protocol). You must specify your tenancy's OCID as the value for the
* compartment ID (remember that the tenancy is simply the root compartment).
* See [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListIdentityProvidersResponse listIdentityProviders(ListIdentityProvidersRequest request);
/**
* Lists the group mappings for the specified identity provider.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListIdpGroupMappingsResponse listIdpGroupMappings(ListIdpGroupMappingsRequest request);
/**
* Lists the MFA TOTP devices for the specified user. The returned object contains the device's OCID, but not
* the seed. The seed is returned only upon creation or when the IAM service regenerates the MFA seed for the device.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListMfaTotpDevicesResponse listMfaTotpDevices(ListMfaTotpDevicesRequest request);
/**
* Lists the policies in the specified compartment (either the tenancy or another of your compartments).
* See [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five).
*
* To determine which policies apply to a particular group or compartment, you must view the individual
* statements inside all your policies. There isn't a way to automatically obtain that information via the API.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListPoliciesResponse listPolicies(ListPoliciesRequest request);
/**
* Lists the region subscriptions for the specified tenancy.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListRegionSubscriptionsResponse listRegionSubscriptions(ListRegionSubscriptionsRequest request);
/**
* Lists all the regions offered by Oracle Cloud Infrastructure.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListRegionsResponse listRegions(ListRegionsRequest request);
/**
* Lists the SMTP credentials for the specified user. The returned object contains the credential's OCID,
* the SMTP user name but not the SMTP password. The SMTP password is returned only upon creation.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListSmtpCredentialsResponse listSmtpCredentials(ListSmtpCredentialsRequest request);
/**
* **Deprecated. Use {@link #listAuthTokens(ListAuthTokensRequest) listAuthTokens} instead.**
*
* Lists the Swift passwords for the specified user. The returned object contains the password's OCID, but not
* the password itself. The actual password is returned only upon creation.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListSwiftPasswordsResponse listSwiftPasswords(ListSwiftPasswordsRequest request);
/**
* Lists the tag defaults for tag definitions in the specified compartment.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListTagDefaultsResponse listTagDefaults(ListTagDefaultsRequest request);
/**
* Lists the tag namespaces in the specified compartment.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListTagNamespacesResponse listTagNamespaces(ListTagNamespacesRequest request);
/**
* Gets the errors for a work request.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListTaggingWorkRequestErrorsResponse listTaggingWorkRequestErrors(
ListTaggingWorkRequestErrorsRequest request);
/**
* Gets the logs for a work request.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListTaggingWorkRequestLogsResponse listTaggingWorkRequestLogs(
ListTaggingWorkRequestLogsRequest request);
/**
* Lists the tagging work requests in compartment.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListTaggingWorkRequestsResponse listTaggingWorkRequests(ListTaggingWorkRequestsRequest request);
/**
* Lists the tag definitions in the specified tag namespace.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListTagsResponse listTags(ListTagsRequest request);
/**
* Lists the `UserGroupMembership` objects in your tenancy. You must specify your tenancy's OCID
* as the value for the compartment ID
* (see [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five)).
* You must also then filter the list in one of these ways:
*
* - You can limit the results to just the memberships for a given user by specifying a `userId`.
* - Similarly, you can limit the results to just the memberships for a given group by specifying a `groupId`.
* - You can set both the `userId` and `groupId` to determine if the specified user is in the specified group.
* If the answer is no, the response is an empty list.
* - Although`userId` and `groupId` are not indvidually required, you must set one of them.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListUserGroupMembershipsResponse listUserGroupMemberships(
ListUserGroupMembershipsRequest request);
/**
* Lists the users in your tenancy. You must specify your tenancy's OCID as the value for the
* compartment ID (remember that the tenancy is simply the root compartment).
* See [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListUsersResponse listUsers(ListUsersRequest request);
/**
* Lists the work requests in compartment.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ListWorkRequestsResponse listWorkRequests(ListWorkRequestsRequest request);
/**
* Move the compartment to a different parent compartment in the same tenancy. When you move a
* compartment, all its contents (subcompartments and resources) are moved with it. Note that
* the `CompartmentId` that you specify in the path is the compartment that you want to move.
*
**IMPORTANT**: After you move a compartment to a new parent compartment, the access policies of
* the new parent take effect and the policies of the previous parent no longer apply. Ensure that you
* are aware of the implications for the compartment contents before you move it. For more
* information, see [Moving a Compartment](https://docs.cloud.oracle.com/Content/Identity/Tasks/managingcompartments.htm#MoveCompartment).
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
MoveCompartmentResponse moveCompartment(MoveCompartmentRequest request);
/**
* Removes a user from a group by deleting the corresponding `UserGroupMembership`.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
RemoveUserFromGroupResponse removeUserFromGroup(RemoveUserFromGroupRequest request);
/**
* Resets the OAuth2 client credentials for the SCIM client associated with this identity provider.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
ResetIdpScimClientResponse resetIdpScimClient(ResetIdpScimClientRequest request);
/**
* Updates the specified auth token's description.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateAuthTokenResponse updateAuthToken(UpdateAuthTokenRequest request);
/**
* Updates authentication policy for the specified tenancy
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateAuthenticationPolicyResponse updateAuthenticationPolicy(
UpdateAuthenticationPolicyRequest request);
/**
* Updates the specified compartment's description or name. You can't update the root compartment.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateCompartmentResponse updateCompartment(UpdateCompartmentRequest request);
/**
* Updates the specified secret key's description.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateCustomerSecretKeyResponse updateCustomerSecretKey(UpdateCustomerSecretKeyRequest request);
/**
* Updates the specified dynamic group.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateDynamicGroupResponse updateDynamicGroup(UpdateDynamicGroupRequest request);
/**
* Updates the specified group.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateGroupResponse updateGroup(UpdateGroupRequest request);
/**
* Updates the specified identity provider.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateIdentityProviderResponse updateIdentityProvider(UpdateIdentityProviderRequest request);
/**
* Updates the specified group mapping.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateIdpGroupMappingResponse updateIdpGroupMapping(UpdateIdpGroupMappingRequest request);
/**
* Updates the specified policy. You can update the description or the policy statements themselves.
*
* Policy changes take effect typically within 10 seconds.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdatePolicyResponse updatePolicy(UpdatePolicyRequest request);
/**
* Updates the specified SMTP credential's description.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateSmtpCredentialResponse updateSmtpCredential(UpdateSmtpCredentialRequest request);
/**
* **Deprecated. Use {@link #updateAuthToken(UpdateAuthTokenRequest) updateAuthToken} instead.**
*
* Updates the specified Swift password's description.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateSwiftPasswordResponse updateSwiftPassword(UpdateSwiftPasswordRequest request);
/**
* Updates the specified tag definition.
*
* Setting a 'validator' will enable enforcement of additional validation on values contained in the specified for
* this definedTag. Any values that were previously set will not be changed, but any new value set for the
* definedTag must pass validation.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateTagResponse updateTag(UpdateTagRequest request);
/**
* Updates the specified tag default. If you specify that a value is required, a value is set
* during resource creation (either by the user creating the resource or another tag defualt).
* If no value is set, resource creation is blocked.
*
* If the `isRequired` flag is set to \"true\", the value is set during resource creation.
* * If the `isRequired` flag is set to \"false\", the value you enter is set during resource creation.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateTagDefaultResponse updateTagDefault(UpdateTagDefaultRequest request);
/**
* Updates the the specified tag namespace. You can't update the namespace name.
*
* Updating `isRetired` to 'true' retires the namespace and all the tag definitions in the namespace. Reactivating a
* namespace (changing `isRetired` from 'true' to 'false') does not reactivate tag definitions.
* To reactivate the tag definitions, you must reactivate each one indvidually *after* you reactivate the namespace,
* using {@link #updateTag(UpdateTagRequest) updateTag}. For more information about retiring tag namespaces, see
* [Retiring Key Definitions and Namespace Definitions](https://docs.cloud.oracle.com/Content/Identity/Concepts/taggingoverview.htm#Retiring).
*
* You can't add a namespace with the same name as a retired namespace in the same tenancy.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateTagNamespaceResponse updateTagNamespace(UpdateTagNamespaceRequest request);
/**
* Updates the description of the specified user.
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateUserResponse updateUser(UpdateUserRequest request);
/**
* Updates the capabilities of the specified user.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateUserCapabilitiesResponse updateUserCapabilities(UpdateUserCapabilitiesRequest request);
/**
* Updates the state of the specified user.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UpdateUserStateResponse updateUserState(UpdateUserStateRequest request);
/**
* Uploads an API signing key for the specified user.
*
* Every user has permission to use this operation to upload a key for *their own user ID*. An
* administrator in your organization does not need to write a policy to give users this ability.
* To compare, administrators who have permission to the tenancy can use this operation to upload a
* key for any user, including themselves.
*
**Important:** Even though you have permission to upload an API key, you might not yet
* have permission to do much else. If you try calling an operation unrelated to your own credential
* management (e.g., `ListUsers`, `LaunchInstance`) and receive an \"unauthorized\" error,
* check with an administrator to confirm which IAM Service group(s) you're in and what access
* you have. Also confirm you're working in the correct compartment.
*
* After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using
* the object, first make sure its `lifecycleState` has changed to ACTIVE.
*
* @param request The request object containing the details to send
* @return A response object containing details about the completed operation
* @throws BmcException when an error occurs.
*/
UploadApiKeyResponse uploadApiKey(UploadApiKeyRequest request);
/**
* Gets the pre-configured waiters available for resources for this service.
*
* @return The service waiters.
*/
IdentityWaiters getWaiters();
/**
* Gets the pre-configured paginators available for list operations in this service which may return multiple
* pages of data. These paginators provide an {@link java.lang.Iterable} interface so that service responses, or
* resources/records, can be iterated through without having to manually deal with pagination and page tokens.
*
* @return The service paginators.
*/
IdentityPaginators getPaginators();
}