pub mod service;
pub mod store;
pub mod wami;
pub use wami_core::arn;
pub use wami_core::context;
pub use wami_core::error;
pub use wami_core::types;
pub use wami_core::error::{AmiError, OptionExt, Result};
pub use wami_core::types::{
AmiResponse, AwsConfig, PaginationParams, PolicyDocument, PolicyStatement, Tag,
};
pub use wami_core::arn::{
available_providers, get_transformer, parse_arn, ArnBuilder, ArnParseError, ArnTransformer,
CloudMapping, ProviderArnInfo, Resource, Service, TenantPath, WamiArn,
};
#[cfg(feature = "aws")]
pub use wami_core::arn::AwsArnTransformer;
#[cfg(feature = "azure")]
pub use wami_core::arn::AzureArnTransformer;
#[cfg(feature = "gcp")]
pub use wami_core::arn::GcpArnTransformer;
#[cfg(feature = "scaleway")]
pub use wami_core::arn::ScalewayArnTransformer;
pub use wami_core::context::{SessionInfo, WamiContext};
pub use store::memory::InMemoryStore;
pub use store::{SsoAdminStore, Store, StsStore, WamiStore};
pub mod credentials;
pub mod provider;
pub use provider::ProviderConfig;
pub use service::{
hash_secret, verify_secret, AccessKeyService, AccountAssignmentService, ApplicationService,
AssumeRoleService, AttachmentService, AuthenticationService, AuthorizationService,
CredentialReportService, EvaluationService, FederationService, GroupService, IdentityService,
InlinePolicyService, InstanceService as SsoInstanceService, LoginProfileService,
MfaDeviceService, OAuthService, PermissionSetService, PolicyService, RoleService,
ServerCertificateService, ServiceCredentialService, ServiceLinkedRoleService, SessionService,
SessionTokenService, SigningCertificateService, TenantService, TrustedTokenIssuerService,
UserService,
};
pub use wami::{instance, sso_admin, sts, tenant};
pub use wami::instance::{InstanceBootstrap, RoleSeed, RootCredentials};
pub use wami::identity::{Group, Role, RootUser, User};
pub use credentials::{
AccessKey, LoginProfile, MfaDevice, ServerCertificate, ServiceSpecificCredential,
};
pub use wami::policies::Policy;
pub use wami::reports::CredentialReport;
pub use wami::sts::{Credentials, StsSession};
pub use wami::tenant::{
check_tenant_permission, BillingInfo, QuotaMode, Tenant, TenantAction, TenantId, TenantQuotas,
TenantStatus, TenantType, TenantUsage,
};
pub use credentials::access_key::{
AccessKeyLastUsed, CreateAccessKeyRequest, ListAccessKeysRequest, ListAccessKeysResponse,
UpdateAccessKeyRequest,
};
pub use credentials::login_profile::{
CreateLoginProfileRequest, GetLoginProfileRequest, UpdateLoginProfileRequest,
};
pub use credentials::mfa_device::{EnableMfaDeviceRequest, ListMfaDevicesRequest};
pub use credentials::server_certificate::{
DeleteServerCertificateRequest, GetServerCertificateRequest, GetServerCertificateResponse,
ListServerCertificatesRequest, ListServerCertificatesResponse, UpdateServerCertificateRequest,
UploadServerCertificateRequest, UploadServerCertificateResponse,
};
pub use credentials::service_credential::{
CreateServiceSpecificCredentialRequest, CreateServiceSpecificCredentialResponse,
DeleteServiceSpecificCredentialRequest, ListServiceSpecificCredentialsRequest,
ListServiceSpecificCredentialsResponse, ResetServiceSpecificCredentialRequest,
ResetServiceSpecificCredentialResponse, UpdateServiceSpecificCredentialRequest,
};
pub use credentials::signing_certificate::{
CertificateStatus, DeleteSigningCertificateRequest, ListSigningCertificatesRequest,
ListSigningCertificatesResponse, SigningCertificate, UpdateSigningCertificateRequest,
UploadSigningCertificateRequest, UploadSigningCertificateResponse,
};
pub use wami::identity::group::{
CreateGroupRequest, ListGroupsRequest, ListGroupsResponse, UpdateGroupRequest,
};
pub use wami::identity::role::{
CreateRoleRequest, ListRolesRequest, ListRolesResponse, UpdateRoleRequest,
};
pub use wami::identity::service_linked_role::{
CreateServiceLinkedRoleRequest, CreateServiceLinkedRoleResponse,
DeleteServiceLinkedRoleRequest, DeleteServiceLinkedRoleResponse, DeletionTaskFailureReason,
DeletionTaskInfo, DeletionTaskStatus, GetServiceLinkedRoleDeletionStatusRequest,
GetServiceLinkedRoleDeletionStatusResponse, RoleUsageType,
};
pub use wami::identity::user::{
CreateUserRequest, ListUsersRequest, ListUsersResponse, UpdateUserRequest,
};
pub use wami::policies::attachment::{
AttachGroupPolicyRequest, AttachGroupPolicyResponse, AttachRolePolicyRequest,
AttachRolePolicyResponse, AttachUserPolicyRequest, AttachUserPolicyResponse, AttachedPolicy,
DetachGroupPolicyRequest, DetachGroupPolicyResponse, DetachRolePolicyRequest,
DetachRolePolicyResponse, DetachUserPolicyRequest, DetachUserPolicyResponse,
ListAttachedGroupPoliciesRequest, ListAttachedGroupPoliciesResponse,
ListAttachedRolePoliciesRequest, ListAttachedRolePoliciesResponse,
ListAttachedUserPoliciesRequest, ListAttachedUserPoliciesResponse,
};
pub use wami::policies::evaluation::{
ContextEntry, EvaluationResult, SimulateCustomPolicyRequest, SimulatePolicyResponse,
SimulatePrincipalPolicyRequest, StatementMatch,
};
pub use wami::policies::inline::{
DeleteGroupPolicyRequest, DeleteGroupPolicyResponse, DeleteRolePolicyRequest,
DeleteRolePolicyResponse, DeleteUserPolicyRequest, DeleteUserPolicyResponse,
GetGroupPolicyRequest, GetGroupPolicyResponse, GetRolePolicyRequest, GetRolePolicyResponse,
GetUserPolicyRequest, GetUserPolicyResponse, InlinePolicy, ListGroupPoliciesRequest,
ListGroupPoliciesResponse, ListRolePoliciesRequest, ListRolePoliciesResponse,
ListUserPoliciesRequest, ListUserPoliciesResponse, PutGroupPolicyRequest,
PutGroupPolicyResponse, PutRolePolicyRequest, PutRolePolicyResponse, PutUserPolicyRequest,
PutUserPolicyResponse,
};
pub use wami::policies::policy::{
CreatePolicyRequest, ListPoliciesRequest, ListPoliciesResponse, UpdatePolicyRequest,
};
pub use wami::reports::credential_report::{
AccountSummaryMap, CredentialReport as CredentialReportType, GenerateCredentialReportRequest,
GenerateCredentialReportResponse, GetAccountSummaryRequest, GetAccountSummaryResponse,
GetCredentialReportRequest, GetCredentialReportResponse, ReportState,
};
pub use wami::tags::{ListResourceTagsRequest, TagResourceRequest, UntagResourceRequest};
pub use sts::{AssumeRoleRequest, GetSessionTokenRequest};
pub fn create_memory_store() -> InMemoryStore {
InMemoryStore::new()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_create_memory_store() {
let _store = create_memory_store();
}
}