SYMBOL INDEX (3173 symbols across 813 files) FILE: Lab1/client/Application/src/app/app-routing.module.ts class AppRoutingModule (line 44) | class AppRoutingModule {} FILE: Lab1/client/Application/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Lab1/client/Application/src/app/app.module.ts class AppModule (line 74) | class AppModule {} FILE: Lab1/client/Application/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Lab1/client/Application/src/app/nav/nav.component.ts class NavComponent (line 20) | class NavComponent implements OnInit { method constructor (line 30) | constructor( method ngOnInit (line 47) | ngOnInit(): void {} FILE: Lab1/client/Application/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Lab1/client/Application/src/app/views/dashboard/dashboard.component.ts class DashboardComponent (line 13) | class DashboardComponent { method chartClicked (line 48) | public chartClicked({ method chartHovered (line 56) | public chartHovered({ method randomize (line 64) | public randomize(): void { method constructor (line 99) | constructor(private breakpointObserver: BreakpointObserver) {} FILE: Lab1/client/Application/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Lab1/client/Application/src/app/views/orders/create/create.component.ts type LineItem (line 9) | interface LineItem { class CreateComponent (line 18) | class CreateComponent implements OnInit { method constructor (line 24) | constructor( method ngOnInit (line 35) | ngOnInit(): void { method name (line 45) | get name() { method productQuantity (line 49) | get productQuantity() { method add (line 54) | add(op: LineItem) { method remove (line 69) | remove(op: LineItem) { method submit (line 87) | submit() { FILE: Lab1/client/Application/src/app/views/orders/detail/detail.component.ts class DetailComponent (line 17) | class DetailComponent implements OnInit { method constructor (line 22) | constructor(private route: ActivatedRoute, private orderSvc: OrdersSer... method ngOnInit (line 24) | ngOnInit(): void { method today (line 30) | today() { method sum (line 34) | sum(op: OrderProduct) { method tax (line 38) | tax(op: OrderProduct) { method total (line 42) | total(op: OrderProduct) { method subTotal (line 46) | subTotal(order: Order) { method calcTax (line 52) | calcTax(order: Order) { method final (line 56) | final(order: Order) { FILE: Lab1/client/Application/src/app/views/orders/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 15) | constructor(private orderSvc: OrdersService, private router: Router) {} method ngOnInit (line 17) | ngOnInit(): void { method sum (line 24) | sum(order: Order): number { FILE: Lab1/client/Application/src/app/views/orders/models/order.interface.ts type Order (line 7) | interface Order { FILE: Lab1/client/Application/src/app/views/orders/models/orderproduct.interface.ts type OrderProduct (line 5) | interface OrderProduct { FILE: Lab1/client/Application/src/app/views/orders/orders-routing.module.ts class OrdersRoutingModule (line 44) | class OrdersRoutingModule {} FILE: Lab1/client/Application/src/app/views/orders/orders.module.ts class OrdersModule (line 51) | class OrdersModule {} FILE: Lab1/client/Application/src/app/views/orders/orders.service.ts class OrdersService (line 14) | class OrdersService { method constructor (line 17) | constructor(private http: HttpClient) {} method fetch (line 19) | fetch(): Observable { method get (line 23) | get(orderId: string): Observable { method create (line 28) | create(order: Order): Observable { FILE: Lab1/client/Application/src/app/views/products/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 15) | constructor( method ngOnInit (line 23) | ngOnInit(): void { method name (line 32) | get name() { method price (line 36) | get price() { method submit (line 40) | submit() { method cancel (line 50) | cancel() { FILE: Lab1/client/Application/src/app/views/products/edit/edit.component.ts class EditComponent (line 18) | class EditComponent implements OnInit { method constructor (line 25) | constructor( method ngOnInit (line 34) | ngOnInit(): void { method name (line 57) | get name() { method price (line 61) | get price() { method submit (line 65) | submit() { method delete (line 72) | delete() { method cancel (line 82) | cancel() { FILE: Lab1/client/Application/src/app/views/products/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 16) | constructor(private productSvc: ProductService, private router: Router... method ngOnInit (line 18) | ngOnInit(): void { method onEdit (line 25) | onEdit(product: Product) { method onRemove (line 30) | onRemove(product: Product) { method onCreate (line 39) | onCreate() { FILE: Lab1/client/Application/src/app/views/products/models/product.interface.ts type Product (line 5) | interface Product { FILE: Lab1/client/Application/src/app/views/products/product.service.ts class ProductService (line 14) | class ProductService { method constructor (line 15) | constructor(private http: HttpClient) {} method fetch (line 18) | fetch(): Observable { method get (line 22) | get(productId: string): Observable { method delete (line 27) | delete(product: Product) { method put (line 32) | put(product: Product) { method post (line 37) | post(product: Product) { FILE: Lab1/client/Application/src/app/views/products/products-routing.module.ts class ProductsRoutingModule (line 44) | class ProductsRoutingModule {} FILE: Lab1/client/Application/src/app/views/products/products.module.ts class ProductsModule (line 48) | class ProductsModule {} FILE: Lab1/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, orderId, orderName, orderProducts): class OrderProduct (line 11) | class OrderProduct: method __init__ (line 13) | def __init__(self, productId, price, quantity): FILE: Lab1/server/OrderService/order_service.py function get_order (line 12) | def get_order(event, context): function create_order (line 22) | def create_order(event, context): function update_order (line 29) | def update_order(event, context): function delete_order (line 38) | def delete_order(event, context): function get_orders (line 46) | def get_orders(event, context): FILE: Lab1/server/OrderService/order_service_dal.py function get_order (line 19) | def get_order(event, orderId): function delete_order (line 32) | def delete_order(event, orderId): function create_order (line 44) | def create_order(event, payload): function update_order (line 61) | def update_order(event, payload, orderId): function get_orders (line 80) | def get_orders(event): function get_order_products_dict (line 97) | def get_order_products_dict(orderProducts): FILE: Lab1/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, productId, sku, name, price, category): class Category (line 13) | class Category: method __init__ (line 14) | def __init__(self, id, name): FILE: Lab1/server/ProductService/product_service.py function get_product (line 11) | def get_product(event, context): function create_product (line 19) | def create_product(event, context): function update_product (line 27) | def update_product(event, context): function delete_product (line 36) | def delete_product(event, context): function get_products (line 44) | def get_products(event, context): FILE: Lab1/server/ProductService/product_service_dal.py function get_product (line 19) | def get_product(event, productId): function delete_product (line 31) | def delete_product(event, productId): function create_product (line 42) | def create_product(event, payload): function update_product (line 63) | def update_product(event, payload, productId): function get_products (line 84) | def get_products(event): FILE: Lab1/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 14) | def error(log_message): FILE: Lab1/server/layers/utils.py class StatusCodes (line 11) | class StatusCodes(Enum): function create_success_response (line 16) | def create_success_response(message): function generate_response (line 29) | def generate_response(inputObject): function encode_to_json_object (line 40) | def encode_to_json_object(inputObject): FILE: Lab2/client/Admin/src/app/app-routing.module.ts class AppRoutingModule (line 48) | class AppRoutingModule {} FILE: Lab2/client/Admin/src/app/app.component.ts class AppComponent (line 18) | class AppComponent { method constructor (line 19) | constructor( FILE: Lab2/client/Admin/src/app/app.module.ts class AppModule (line 58) | class AppModule {} FILE: Lab2/client/Admin/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Lab2/client/Admin/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Lab2/client/Admin/src/app/nav/nav.component.ts class NavComponent (line 22) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 52) | ngOnInit(): void { FILE: Lab2/client/Admin/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Lab2/client/Admin/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Lab2/client/Admin/src/app/views/dashboard/dashboard.component.ts type DataSet (line 9) | interface DataSet { type ChartData (line 13) | interface ChartData { class DashboardComponent (line 24) | class DashboardComponent implements OnInit { method constructor (line 25) | constructor(private tenantSvc: TenantsService) {} method random (line 132) | public random(min: number, max: number) { method ngOnInit (line 136) | ngOnInit(): void { FILE: Lab2/client/Admin/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Lab2/client/Admin/src/app/views/tenants/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 29) | ngOnInit(): void {} method openErrorMessageSnackBar (line 31) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 37) | submit() { FILE: Lab2/client/Admin/src/app/views/tenants/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 22) | constructor(private tenantSvc: TenantsService) {} method ngOnInit (line 24) | ngOnInit(): void { FILE: Lab2/client/Admin/src/app/views/tenants/models/tenant.ts type Tenant (line 1) | interface Tenant { FILE: Lab2/client/Admin/src/app/views/tenants/tenants-routing.module.ts class TenantsRoutingModule (line 37) | class TenantsRoutingModule {} FILE: Lab2/client/Admin/src/app/views/tenants/tenants.module.ts class TenantsModule (line 51) | class TenantsModule {} FILE: Lab2/client/Admin/src/app/views/tenants/tenants.service.ts class TenantsService (line 15) | class TenantsService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 22) | fetch(): Observable { method post (line 26) | post(tenant: Tenant): Observable { FILE: Lab2/client/Admin/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 33) | ngOnInit(): void {} method openErrorMessageSnackBar (line 35) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 41) | onSubmit() { FILE: Lab2/client/Admin/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Lab2/client/Admin/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Lab2/client/Admin/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Lab2/client/Admin/src/app/views/users/users.module.ts class UsersModule (line 49) | class UsersModule {} FILE: Lab2/client/Admin/src/app/views/users/users.service.ts class UsersService (line 26) | class UsersService { method constructor (line 29) | constructor(private http: HttpClient) { method fetch (line 33) | fetch(): Observable { method create (line 37) | create(user: User): Observable { FILE: Lab2/client/Landing/src/app/app-routing.module.ts class AppRoutingModule (line 31) | class AppRoutingModule {} FILE: Lab2/client/Landing/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Lab2/client/Landing/src/app/app.module.ts class AppModule (line 53) | class AppModule {} FILE: Lab2/client/Landing/src/app/views/landing/landing.component.ts class LandingComponent (line 25) | class LandingComponent implements OnInit { method constructor (line 26) | constructor(private router: Router) {} method ngOnInit (line 28) | ngOnInit() {} method register (line 30) | register() { FILE: Lab2/client/Landing/src/app/views/register/register.component.ts class RegisterComponent (line 12) | class RegisterComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 28) | ngOnInit(): void {} method openErrorMessageSnackBar (line 30) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 36) | submit() { FILE: Lab2/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, orderId, orderName, orderProducts): class OrderProduct (line 11) | class OrderProduct: method __init__ (line 13) | def __init__(self, productId, price, quantity): FILE: Lab2/server/OrderService/order_service.py function get_order (line 12) | def get_order(event, context): function create_order (line 22) | def create_order(event, context): function update_order (line 29) | def update_order(event, context): function delete_order (line 38) | def delete_order(event, context): function get_orders (line 46) | def get_orders(event, context): FILE: Lab2/server/OrderService/order_service_dal.py function get_order (line 19) | def get_order(event, orderId): function delete_order (line 32) | def delete_order(event, orderId): function create_order (line 44) | def create_order(event, payload): function update_order (line 61) | def update_order(event, payload, orderId): function get_orders (line 80) | def get_orders(event): function get_order_products_dict (line 97) | def get_order_products_dict(orderProducts): FILE: Lab2/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, productId, sku, name, price, category): class Category (line 13) | class Category: method __init__ (line 14) | def __init__(self, id, name): FILE: Lab2/server/ProductService/product_service.py function get_product (line 11) | def get_product(event, context): function create_product (line 19) | def create_product(event, context): function update_product (line 27) | def update_product(event, context): function delete_product (line 36) | def delete_product(event, context): function get_products (line 44) | def get_products(event, context): FILE: Lab2/server/ProductService/product_service_dal.py function get_product (line 19) | def get_product(event, productId): function delete_product (line 31) | def delete_product(event, productId): function create_product (line 42) | def create_product(event, payload): function update_product (line 63) | def update_product(event, payload, productId): function get_products (line 84) | def get_products(event): FILE: Lab2/server/Resources/shared_service_authorizer.py function lambda_handler (line 22) | def lambda_handler(event, context): function validateJWT (line 79) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 120) | class HttpVerb: class AuthPolicy (line 130) | class AuthPolicy(object): method __init__ (line 155) | def __init__(self, principal, awsAccountId): method _addMethod (line 161) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 193) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 204) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 225) | def allowAllMethods(self): method denyAllMethods (line 229) | def denyAllMethods(self): method allowMethod (line 233) | def allowMethod(self, verb, resource): method denyMethod (line 238) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 243) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 249) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 255) | def build(self): FILE: Lab2/server/TenantManagementService/tenant-management.py function create_tenant (line 20) | def create_tenant(event, context): function get_tenants (line 41) | def get_tenants(event, context): function update_tenant (line 50) | def update_tenant(event, context): function get_tenant (line 79) | def get_tenant(event, context): function deactivate_tenant (line 82) | def deactivate_tenant(event, context): function activate_tenant (line 113) | def activate_tenant(event, context): function __invoke_disable_users (line 144) | def __invoke_disable_users(headers, auth, host, stage_name, invoke_url, ... function __invoke_enable_users (line 159) | def __invoke_enable_users(headers, auth, host, stage_name, invoke_url, t... class TenantInfo (line 174) | class TenantInfo: method __init__ (line 175) | def __init__(self, tenant_name, tenant_address, tenant_email, tenant_p... FILE: Lab2/server/TenantManagementService/tenant-registration.py function register_tenant (line 20) | def register_tenant(event, context): function __create_tenant_admin_user (line 23) | def __create_tenant_admin_user(tenant_details, headers, auth, host, stag... function __create_tenant (line 35) | def __create_tenant(tenant_details, headers, auth, host, stage_name): FILE: Lab2/server/TenantManagementService/user-management.py function create_tenant_admin_user (line 19) | def create_tenant_admin_user(event, context): function create_user (line 44) | def create_user(event, context): function get_users (line 47) | def get_users(event, context): function get_user (line 80) | def get_user(event, context): function update_user (line 89) | def update_user(event, context): function disable_user (line 115) | def disable_user(event, context): function disable_users_by_tenant (line 130) | def disable_users_by_tenant(event, context): function enable_users_by_tenant (line 152) | def enable_users_by_tenant(event, context): function get_user_info (line 172) | def get_user_info(user_pool_id, user_name): class UserManagement (line 190) | class UserManagement: method create_user_group (line 191) | def create_user_group(self, user_pool_id, group_name, group_description): method create_tenant_admin (line 200) | def create_tenant_admin(self, user_pool_id, tenant_admin_user_name, us... method add_user_to_group (line 226) | def add_user_to_group(self, user_pool_id, user_name, group_name): method create_user_tenant_mapping (line 234) | def create_user_tenant_mapping(self, user_name, tenant_id): class UserInfo (line 245) | class UserInfo: method __init__ (line 246) | def __init__(self, user_name=None, tenant_id=None, user_role=None, FILE: Lab2/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 14) | def error(log_message): FILE: Lab2/server/layers/utils.py class StatusCodes (line 12) | class StatusCodes(Enum): function create_success_response (line 17) | def create_success_response(message): function generate_response (line 30) | def generate_response(inputObject): function encode_to_json_object (line 41) | def encode_to_json_object(inputObject): function get_auth (line 47) | def get_auth(host, region): function get_headers (line 58) | def get_headers(event): FILE: Lab3/client/Admin/src/app/app-routing.module.ts class AppRoutingModule (line 48) | class AppRoutingModule {} FILE: Lab3/client/Admin/src/app/app.component.ts class AppComponent (line 18) | class AppComponent { method constructor (line 19) | constructor( FILE: Lab3/client/Admin/src/app/app.module.ts class AppModule (line 58) | class AppModule {} FILE: Lab3/client/Admin/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Lab3/client/Admin/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Lab3/client/Admin/src/app/nav/nav.component.ts class NavComponent (line 22) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 52) | ngOnInit(): void { FILE: Lab3/client/Admin/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Lab3/client/Admin/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Lab3/client/Admin/src/app/views/dashboard/dashboard.component.ts type DataSet (line 9) | interface DataSet { type ChartData (line 13) | interface ChartData { class DashboardComponent (line 24) | class DashboardComponent implements OnInit { method constructor (line 25) | constructor(private tenantSvc: TenantsService) {} method random (line 132) | public random(min: number, max: number) { method ngOnInit (line 136) | ngOnInit(): void { FILE: Lab3/client/Admin/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Lab3/client/Admin/src/app/views/tenants/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 29) | ngOnInit(): void {} method openErrorMessageSnackBar (line 31) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 37) | submit() { FILE: Lab3/client/Admin/src/app/views/tenants/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 22) | constructor(private tenantSvc: TenantsService) {} method ngOnInit (line 24) | ngOnInit(): void { FILE: Lab3/client/Admin/src/app/views/tenants/models/tenant.ts type Tenant (line 1) | interface Tenant { FILE: Lab3/client/Admin/src/app/views/tenants/tenants-routing.module.ts class TenantsRoutingModule (line 37) | class TenantsRoutingModule {} FILE: Lab3/client/Admin/src/app/views/tenants/tenants.module.ts class TenantsModule (line 51) | class TenantsModule {} FILE: Lab3/client/Admin/src/app/views/tenants/tenants.service.ts class TenantsService (line 15) | class TenantsService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 22) | fetch(): Observable { method post (line 26) | post(tenant: Tenant): Observable { FILE: Lab3/client/Admin/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 33) | ngOnInit(): void {} method openErrorMessageSnackBar (line 35) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 41) | onSubmit() { FILE: Lab3/client/Admin/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Lab3/client/Admin/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Lab3/client/Admin/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Lab3/client/Admin/src/app/views/users/users.module.ts class UsersModule (line 49) | class UsersModule {} FILE: Lab3/client/Admin/src/app/views/users/users.service.ts class UsersService (line 26) | class UsersService { method constructor (line 29) | constructor(private http: HttpClient) { method fetch (line 33) | fetch(): Observable { method create (line 37) | create(user: User): Observable { FILE: Lab3/client/Application/cypress.config.ts method setupNodeEvents (line 6) | setupNodeEvents(on, config) { FILE: Lab3/client/Application/src/app/app-routing.module.ts class AppRoutingModule (line 62) | class AppRoutingModule {} FILE: Lab3/client/Application/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Lab3/client/Application/src/app/app.module.ts class AppModule (line 86) | class AppModule {} FILE: Lab3/client/Application/src/app/cognito.guard.ts class CognitoGuard (line 16) | class CognitoGuard implements CanActivate { method constructor (line 17) | constructor( method canActivate (line 22) | canActivate( FILE: Lab3/client/Application/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Lab3/client/Application/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Lab3/client/Application/src/app/nav/nav.component.ts class NavComponent (line 23) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 54) | ngOnInit(): void { method logout (line 85) | async logout() { FILE: Lab3/client/Application/src/app/views/auth/auth-configuration.service.ts class AuthConfigurationService (line 36) | class AuthConfigurationService { method constructor (line 41) | constructor( method setTenantConfig (line 47) | public setTenantConfig(tenantName: string): Promise { method configureAmplifyAuth (line 69) | configureAmplifyAuth(): boolean { method cleanLocalStorage (line 93) | cleanLocalStorage() { FILE: Lab3/client/Application/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Lab3/client/Application/src/app/views/auth/models/config-params.ts type ConfigParams (line 17) | interface ConfigParams { FILE: Lab3/client/Application/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Lab3/client/Application/src/app/views/dashboard/dashboard.component.ts class DashboardComponent (line 13) | class DashboardComponent { method chartClicked (line 48) | public chartClicked({ method chartHovered (line 56) | public chartHovered({ method randomize (line 64) | public randomize(): void { method constructor (line 99) | constructor(private breakpointObserver: BreakpointObserver) {} FILE: Lab3/client/Application/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Lab3/client/Application/src/app/views/error/404.component.ts class P404Component (line 10) | class P404Component { method constructor (line 11) | constructor() {} FILE: Lab3/client/Application/src/app/views/error/500.component.ts class P500Component (line 10) | class P500Component { method constructor (line 11) | constructor() {} FILE: Lab3/client/Application/src/app/views/error/unauthorized.component.ts class UnauthorizedComponent (line 30) | class UnauthorizedComponent implements OnInit { method constructor (line 37) | constructor( method ngOnInit (line 60) | ngOnInit(): void { method isFieldInvalid (line 66) | isFieldInvalid(field: string) { method displayFieldCss (line 73) | displayFieldCss(field: string) { method hasRequiredError (line 79) | hasRequiredError(field: string) { method openErrorMessageSnackBar (line 83) | openErrorMessageSnackBar(errorMessage: string) { method login (line 89) | login() { FILE: Lab3/client/Application/src/app/views/orders/create/create.component.ts type LineItem (line 9) | interface LineItem { class CreateComponent (line 18) | class CreateComponent implements OnInit { method constructor (line 24) | constructor( method ngOnInit (line 35) | ngOnInit(): void { method name (line 45) | get name() { method productQuantity (line 49) | get productQuantity() { method add (line 55) | add(op: LineItem) { method remove (line 70) | remove(op: LineItem) { method submit (line 88) | submit() { FILE: Lab3/client/Application/src/app/views/orders/detail/detail.component.ts class DetailComponent (line 17) | class DetailComponent implements OnInit { method constructor (line 22) | constructor(private route: ActivatedRoute, private orderSvc: OrdersSer... method ngOnInit (line 24) | ngOnInit(): void { method today (line 30) | today() { method tenantName (line 34) | tenantName() { method sum (line 38) | sum(op: OrderProduct) { method tax (line 42) | tax(op: OrderProduct) { method total (line 46) | total(op: OrderProduct) { method subTotal (line 50) | subTotal(order: Order) { method calcTax (line 56) | calcTax(order: Order) { method final (line 60) | final(order: Order) { FILE: Lab3/client/Application/src/app/views/orders/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 15) | constructor(private orderSvc: OrdersService, private router: Router) {} method ngOnInit (line 17) | ngOnInit(): void { method sum (line 24) | sum(order: Order): number { FILE: Lab3/client/Application/src/app/views/orders/models/order.interface.ts type Order (line 7) | interface Order { FILE: Lab3/client/Application/src/app/views/orders/models/orderproduct.interface.ts type OrderProduct (line 5) | interface OrderProduct { FILE: Lab3/client/Application/src/app/views/orders/orders-routing.module.ts class OrdersRoutingModule (line 44) | class OrdersRoutingModule {} FILE: Lab3/client/Application/src/app/views/orders/orders.module.ts class OrdersModule (line 51) | class OrdersModule {} FILE: Lab3/client/Application/src/app/views/orders/orders.service.ts class OrdersService (line 13) | class OrdersService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 18) | fetch(): Observable { method get (line 22) | get(orderId: string): Observable { method create (line 27) | create(order: Order): Observable { FILE: Lab3/client/Application/src/app/views/products/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 15) | constructor( method ngOnInit (line 23) | ngOnInit(): void { method name (line 32) | get name() { method price (line 36) | get price() { method submit (line 40) | submit() { method cancel (line 50) | cancel() { FILE: Lab3/client/Application/src/app/views/products/edit/edit.component.ts class EditComponent (line 18) | class EditComponent implements OnInit { method constructor (line 25) | constructor( method ngOnInit (line 34) | ngOnInit(): void { method name (line 57) | get name() { method price (line 61) | get price() { method submit (line 65) | submit() { method delete (line 72) | delete() { method cancel (line 82) | cancel() { FILE: Lab3/client/Application/src/app/views/products/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 16) | constructor(private productSvc: ProductService, private router: Router... method ngOnInit (line 18) | ngOnInit(): void { method onEdit (line 25) | onEdit(product: Product) { method onRemove (line 30) | onRemove(product: Product) { method onCreate (line 39) | onCreate() { FILE: Lab3/client/Application/src/app/views/products/models/product.interface.ts type Product (line 5) | interface Product { FILE: Lab3/client/Application/src/app/views/products/product.service.ts class ProductService (line 13) | class ProductService { method constructor (line 14) | constructor(private http: HttpClient) {} method fetch (line 17) | fetch(): Observable { method get (line 21) | get(productId: string): Observable { method delete (line 26) | delete(product: Product) { method put (line 31) | put(product: Product) { method post (line 36) | post(product: Product) { FILE: Lab3/client/Application/src/app/views/products/products-routing.module.ts class ProductsRoutingModule (line 44) | class ProductsRoutingModule {} FILE: Lab3/client/Application/src/app/views/products/products.module.ts class ProductsModule (line 48) | class ProductsModule {} FILE: Lab3/client/Application/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 32) | ngOnInit(): void {} method openErrorMessageSnackBar (line 34) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 40) | onSubmit() { FILE: Lab3/client/Application/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Lab3/client/Application/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Lab3/client/Application/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Lab3/client/Application/src/app/views/users/users.module.ts class UsersModule (line 50) | class UsersModule {} FILE: Lab3/client/Application/src/app/views/users/users.service.ts class UsersService (line 27) | class UsersService { method constructor (line 30) | constructor(private http: HttpClient) { method fetch (line 34) | fetch(): Observable { method create (line 38) | create(user: User): Observable { method update (line 42) | update(email: string, user: User) {} FILE: Lab3/client/Landing/src/app/app-routing.module.ts class AppRoutingModule (line 31) | class AppRoutingModule {} FILE: Lab3/client/Landing/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Lab3/client/Landing/src/app/app.module.ts class AppModule (line 53) | class AppModule {} FILE: Lab3/client/Landing/src/app/views/landing/landing.component.ts class LandingComponent (line 25) | class LandingComponent implements OnInit { method constructor (line 26) | constructor(private router: Router) {} method ngOnInit (line 28) | ngOnInit() {} method register (line 30) | register() { FILE: Lab3/client/Landing/src/app/views/register/register.component.ts class RegisterComponent (line 12) | class RegisterComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 28) | ngOnInit(): void {} method openErrorMessageSnackBar (line 30) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 36) | submit() { FILE: Lab3/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, shardId, orderId, orderName, orderProducts): class OrderProduct (line 13) | class OrderProduct: method __init__ (line 15) | def __init__(self, productId, price, quantity): FILE: Lab3/server/OrderService/order_service.py function get_order (line 15) | def get_order(event, context): function create_order (line 30) | def create_order(event, context): function update_order (line 42) | def update_order(event, context): function delete_order (line 56) | def delete_order(event, context): function get_orders (line 69) | def get_orders(event, context): FILE: Lab3/server/OrderService/order_service_dal.py function get_order (line 27) | def get_order(event, key): function delete_order (line 45) | def delete_order(event, key): function create_order (line 61) | def create_order(event, payload): function update_order (line 84) | def update_order(event, payload, key): function get_orders (line 110) | def get_orders(event, tenantId): function __query_all_partitions (line 122) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 138) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function get_order_products_dict (line 149) | def get_order_products_dict(orderProducts): FILE: Lab3/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, shardId, productId, sku, name, price, category): class Category (line 15) | class Category: method __init__ (line 16) | def __init__(self, id, name): FILE: Lab3/server/ProductService/product_service.py function get_product (line 15) | def get_product(event, context): function create_product (line 31) | def create_product(event, context): function update_product (line 45) | def update_product(event, context): function delete_product (line 59) | def delete_product(event, context): function get_products (line 72) | def get_products(event, context): FILE: Lab3/server/ProductService/product_service_dal.py function get_product (line 27) | def get_product(event, key): function delete_product (line 45) | def delete_product(event, key): function create_product (line 60) | def create_product(event, payload): function update_product (line 63) | def update_product(event, payload, key): function get_products (line 92) | def get_products(event, tenantId): function __query_all_partitions (line 103) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 119) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... FILE: Lab3/server/Resources/shared_service_authorizer.py function lambda_handler (line 25) | def lambda_handler(event, context): function validateJWT (line 93) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 134) | class HttpVerb: class AuthPolicy (line 144) | class AuthPolicy(object): method __init__ (line 169) | def __init__(self, principal, awsAccountId): method _addMethod (line 175) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 207) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 218) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 239) | def allowAllMethods(self): method denyAllMethods (line 243) | def denyAllMethods(self): method allowMethod (line 247) | def allowMethod(self, verb, resource): method denyMethod (line 252) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 257) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 263) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 269) | def build(self): FILE: Lab3/server/Resources/tenant_authorizer.py function lambda_handler (line 21) | def lambda_handler(event, context): function validateJWT (line 69) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 110) | class HttpVerb: class AuthPolicy (line 120) | class AuthPolicy(object): method __init__ (line 145) | def __init__(self, principal, awsAccountId): method _addMethod (line 151) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 183) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 194) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 215) | def allowAllMethods(self): method denyAllMethods (line 219) | def denyAllMethods(self): method allowMethod (line 223) | def allowMethod(self, verb, resource): method denyMethod (line 228) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 233) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 239) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 245) | def build(self): FILE: Lab3/server/TenantManagementService/tenant-management.py function create_tenant (line 25) | def create_tenant(event, context): function get_tenants (line 46) | def get_tenants(event, context): function update_tenant (line 56) | def update_tenant(event, context): function get_tenant (line 95) | def get_tenant(event, context): function deactivate_tenant (line 127) | def deactivate_tenant(event, context): function activate_tenant (line 170) | def activate_tenant(event, context): function __invoke_disable_users (line 212) | def __invoke_disable_users(update_details, headers, auth, host, stage_na... function __invoke_enable_users (line 227) | def __invoke_enable_users(update_details, headers, auth, host, stage_nam... class TenantInfo (line 242) | class TenantInfo: method __init__ (line 243) | def __init__(self, tenant_name, tenant_address, tenant_email, tenant_p... FILE: Lab3/server/TenantManagementService/tenant-registration.py function register_tenant (line 19) | def register_tenant(event, context): function __create_tenant_admin_user (line 46) | def __create_tenant_admin_user(tenant_details, headers, auth, host, stag... function __create_tenant (line 58) | def __create_tenant(tenant_details, headers, auth, host, stage_name): FILE: Lab3/server/TenantManagementService/user-management.py function create_tenant_admin_user (line 23) | def create_tenant_admin_user(event, context): function create_user (line 47) | def create_user(event, context): function get_users (line 100) | def get_users(event, context): function get_user (line 144) | def get_user(event, context): function update_user (line 164) | def update_user(event, context): function disable_user (line 203) | def disable_user(event, context): function disable_users_by_tenant (line 229) | def disable_users_by_tenant(event, context): function enable_users_by_tenant (line 258) | def enable_users_by_tenant(event, context): function get_user_info (line 285) | def get_user_info(event, user_pool_id, user_name): class UserManagement (line 305) | class UserManagement: method create_user_group (line 306) | def create_user_group(self, user_pool_id, group_name, group_description): method create_tenant_admin (line 315) | def create_tenant_admin(self, user_pool_id, tenant_admin_user_name, us... method add_user_to_group (line 341) | def add_user_to_group(self, user_pool_id, user_name, group_name): method create_user_tenant_mapping (line 349) | def create_user_tenant_mapping(self, user_name, tenant_id): class UserInfo (line 360) | class UserInfo: method __init__ (line 361) | def __init__(self, user_name=None, tenant_id=None, user_role=None, FILE: Lab3/server/layers/auth_manager.py class UserRoles (line 8) | class UserRoles: function isTenantAdmin (line 14) | def isTenantAdmin(user_role): function isSystemAdmin (line 20) | def isSystemAdmin(user_role): function isSaaSProvider (line 27) | def isSaaSProvider(user_role): function isTenantUser (line 32) | def isTenantUser(user_role): FILE: Lab3/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 14) | def error(log_message): function log_with_tenant_context (line 17) | def log_with_tenant_context(event, log_message): FILE: Lab3/server/layers/metrics_manager.py function record_metric (line 10) | def record_metric(event, metric_name, metric_unit, metric_value): FILE: Lab3/server/layers/utils.py class StatusCodes (line 12) | class StatusCodes(Enum): function create_success_response (line 17) | def create_success_response(message): function create_unauthorized_response (line 30) | def create_unauthorized_response(): function generate_response (line 44) | def generate_response(inputObject): function encode_to_json_object (line 55) | def encode_to_json_object(inputObject): function get_auth (line 61) | def get_auth(host, region): function get_headers (line 72) | def get_headers(event): FILE: Lab4/client/Admin/src/app/app-routing.module.ts class AppRoutingModule (line 48) | class AppRoutingModule {} FILE: Lab4/client/Admin/src/app/app.component.ts class AppComponent (line 18) | class AppComponent { method constructor (line 19) | constructor( FILE: Lab4/client/Admin/src/app/app.module.ts class AppModule (line 58) | class AppModule {} FILE: Lab4/client/Admin/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Lab4/client/Admin/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Lab4/client/Admin/src/app/nav/nav.component.ts class NavComponent (line 22) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 52) | ngOnInit(): void { FILE: Lab4/client/Admin/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Lab4/client/Admin/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Lab4/client/Admin/src/app/views/dashboard/dashboard.component.ts type DataSet (line 9) | interface DataSet { type ChartData (line 13) | interface ChartData { class DashboardComponent (line 24) | class DashboardComponent implements OnInit { method constructor (line 25) | constructor(private tenantSvc: TenantsService) {} method random (line 132) | public random(min: number, max: number) { method ngOnInit (line 136) | ngOnInit(): void { FILE: Lab4/client/Admin/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Lab4/client/Admin/src/app/views/tenants/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 29) | ngOnInit(): void {} method openErrorMessageSnackBar (line 31) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 37) | submit() { FILE: Lab4/client/Admin/src/app/views/tenants/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 22) | constructor(private tenantSvc: TenantsService) {} method ngOnInit (line 24) | ngOnInit(): void { FILE: Lab4/client/Admin/src/app/views/tenants/models/tenant.ts type Tenant (line 1) | interface Tenant { FILE: Lab4/client/Admin/src/app/views/tenants/tenants-routing.module.ts class TenantsRoutingModule (line 37) | class TenantsRoutingModule {} FILE: Lab4/client/Admin/src/app/views/tenants/tenants.module.ts class TenantsModule (line 51) | class TenantsModule {} FILE: Lab4/client/Admin/src/app/views/tenants/tenants.service.ts class TenantsService (line 15) | class TenantsService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 22) | fetch(): Observable { method post (line 26) | post(tenant: Tenant): Observable { FILE: Lab4/client/Admin/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 33) | ngOnInit(): void {} method openErrorMessageSnackBar (line 35) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 41) | onSubmit() { FILE: Lab4/client/Admin/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Lab4/client/Admin/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Lab4/client/Admin/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Lab4/client/Admin/src/app/views/users/users.module.ts class UsersModule (line 49) | class UsersModule {} FILE: Lab4/client/Admin/src/app/views/users/users.service.ts class UsersService (line 26) | class UsersService { method constructor (line 29) | constructor(private http: HttpClient) { method fetch (line 33) | fetch(): Observable { method create (line 37) | create(user: User): Observable { FILE: Lab4/client/Application/cypress.config.ts method setupNodeEvents (line 6) | setupNodeEvents(on, config) { FILE: Lab4/client/Application/src/app/app-routing.module.ts class AppRoutingModule (line 62) | class AppRoutingModule {} FILE: Lab4/client/Application/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Lab4/client/Application/src/app/app.module.ts class AppModule (line 87) | class AppModule {} FILE: Lab4/client/Application/src/app/cognito.guard.ts class CognitoGuard (line 16) | class CognitoGuard implements CanActivate { method constructor (line 17) | constructor( method canActivate (line 22) | canActivate( FILE: Lab4/client/Application/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Lab4/client/Application/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Lab4/client/Application/src/app/nav/nav.component.ts class NavComponent (line 23) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 54) | ngOnInit(): void { method logout (line 85) | async logout() { FILE: Lab4/client/Application/src/app/views/auth/auth-configuration.service.ts class AuthConfigurationService (line 36) | class AuthConfigurationService { method constructor (line 41) | constructor( method setTenantConfig (line 47) | public setTenantConfig(tenantName: string): Promise { method configureAmplifyAuth (line 69) | configureAmplifyAuth(): boolean { method cleanLocalStorage (line 93) | cleanLocalStorage() { FILE: Lab4/client/Application/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Lab4/client/Application/src/app/views/auth/models/config-params.ts type ConfigParams (line 17) | interface ConfigParams { FILE: Lab4/client/Application/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Lab4/client/Application/src/app/views/dashboard/dashboard.component.ts class DashboardComponent (line 13) | class DashboardComponent { method chartClicked (line 48) | public chartClicked({ method chartHovered (line 56) | public chartHovered({ method randomize (line 64) | public randomize(): void { method constructor (line 99) | constructor(private breakpointObserver: BreakpointObserver) {} FILE: Lab4/client/Application/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Lab4/client/Application/src/app/views/error/404.component.ts class P404Component (line 10) | class P404Component { method constructor (line 11) | constructor() {} FILE: Lab4/client/Application/src/app/views/error/500.component.ts class P500Component (line 10) | class P500Component { method constructor (line 11) | constructor() {} FILE: Lab4/client/Application/src/app/views/error/unauthorized.component.ts class UnauthorizedComponent (line 30) | class UnauthorizedComponent implements OnInit { method constructor (line 37) | constructor( method ngOnInit (line 60) | ngOnInit(): void { method isFieldInvalid (line 66) | isFieldInvalid(field: string) { method displayFieldCss (line 73) | displayFieldCss(field: string) { method hasRequiredError (line 79) | hasRequiredError(field: string) { method openErrorMessageSnackBar (line 83) | openErrorMessageSnackBar(errorMessage: string) { method login (line 89) | login() { FILE: Lab4/client/Application/src/app/views/orders/create/create.component.ts type LineItem (line 9) | interface LineItem { class CreateComponent (line 18) | class CreateComponent implements OnInit { method constructor (line 24) | constructor( method ngOnInit (line 35) | ngOnInit(): void { method name (line 45) | get name() { method productQuantity (line 49) | get productQuantity() { method add (line 55) | add(op: LineItem) { method remove (line 70) | remove(op: LineItem) { method submit (line 88) | submit() { FILE: Lab4/client/Application/src/app/views/orders/detail/detail.component.ts class DetailComponent (line 17) | class DetailComponent implements OnInit { method constructor (line 22) | constructor(private route: ActivatedRoute, private orderSvc: OrdersSer... method ngOnInit (line 24) | ngOnInit(): void { method today (line 30) | today() { method tenantName (line 34) | tenantName() { method sum (line 38) | sum(op: OrderProduct) { method tax (line 42) | tax(op: OrderProduct) { method total (line 46) | total(op: OrderProduct) { method subTotal (line 50) | subTotal(order: Order) { method calcTax (line 56) | calcTax(order: Order) { method final (line 60) | final(order: Order) { FILE: Lab4/client/Application/src/app/views/orders/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 15) | constructor(private orderSvc: OrdersService, private router: Router) {} method ngOnInit (line 17) | ngOnInit(): void { method sum (line 24) | sum(order: Order): number { FILE: Lab4/client/Application/src/app/views/orders/models/order.interface.ts type Order (line 7) | interface Order { FILE: Lab4/client/Application/src/app/views/orders/models/orderproduct.interface.ts type OrderProduct (line 5) | interface OrderProduct { FILE: Lab4/client/Application/src/app/views/orders/orders-routing.module.ts class OrdersRoutingModule (line 44) | class OrdersRoutingModule {} FILE: Lab4/client/Application/src/app/views/orders/orders.module.ts class OrdersModule (line 51) | class OrdersModule {} FILE: Lab4/client/Application/src/app/views/orders/orders.service.ts class OrdersService (line 13) | class OrdersService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 18) | fetch(): Observable { method get (line 22) | get(orderId: string): Observable { method create (line 27) | create(order: Order): Observable { FILE: Lab4/client/Application/src/app/views/products/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 15) | constructor( method ngOnInit (line 23) | ngOnInit(): void { method name (line 32) | get name() { method price (line 36) | get price() { method submit (line 40) | submit() { method cancel (line 50) | cancel() { FILE: Lab4/client/Application/src/app/views/products/edit/edit.component.ts class EditComponent (line 17) | class EditComponent implements OnInit { method constructor (line 23) | constructor( method ngOnInit (line 30) | ngOnInit(): void { method name (line 51) | get name() { method price (line 55) | get price() { method submit (line 59) | submit() { method delete (line 66) | delete() { method cancel (line 76) | cancel() { FILE: Lab4/client/Application/src/app/views/products/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 16) | constructor(private productSvc: ProductService, private router: Router... method ngOnInit (line 18) | ngOnInit(): void { method onEdit (line 25) | onEdit(product: Product) { method onRemove (line 30) | onRemove(product: Product) { method onCreate (line 39) | onCreate() { FILE: Lab4/client/Application/src/app/views/products/models/product.interface.ts type Product (line 5) | interface Product { FILE: Lab4/client/Application/src/app/views/products/product.service.ts class ProductService (line 13) | class ProductService { method constructor (line 14) | constructor(private http: HttpClient) {} method fetch (line 17) | fetch(): Observable { method get (line 21) | get(productId: string): Observable { method delete (line 26) | delete(product: Product) { method put (line 31) | put(product: Product) { method post (line 35) | post(product: Product) { FILE: Lab4/client/Application/src/app/views/products/products-routing.module.ts class ProductsRoutingModule (line 44) | class ProductsRoutingModule {} FILE: Lab4/client/Application/src/app/views/products/products.module.ts class ProductsModule (line 48) | class ProductsModule {} FILE: Lab4/client/Application/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 32) | ngOnInit(): void {} method openErrorMessageSnackBar (line 34) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 40) | onSubmit() { FILE: Lab4/client/Application/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Lab4/client/Application/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Lab4/client/Application/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Lab4/client/Application/src/app/views/users/users.module.ts class UsersModule (line 50) | class UsersModule {} FILE: Lab4/client/Application/src/app/views/users/users.service.ts class UsersService (line 27) | class UsersService { method constructor (line 30) | constructor(private http: HttpClient) { method fetch (line 34) | fetch(): Observable { method create (line 38) | create(user: User): Observable { method update (line 42) | update(email: string, user: User) {} FILE: Lab4/client/Landing/src/app/app-routing.module.ts class AppRoutingModule (line 31) | class AppRoutingModule {} FILE: Lab4/client/Landing/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Lab4/client/Landing/src/app/app.module.ts class AppModule (line 53) | class AppModule {} FILE: Lab4/client/Landing/src/app/views/landing/landing.component.ts class LandingComponent (line 25) | class LandingComponent implements OnInit { method constructor (line 26) | constructor(private router: Router) {} method ngOnInit (line 28) | ngOnInit() {} method register (line 30) | register() { FILE: Lab4/client/Landing/src/app/views/register/register.component.ts class RegisterComponent (line 12) | class RegisterComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 28) | ngOnInit(): void {} method openErrorMessageSnackBar (line 30) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 36) | submit() { FILE: Lab4/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, shardId, orderId, orderName, orderProducts): class OrderProduct (line 13) | class OrderProduct: method __init__ (line 15) | def __init__(self, productId, price, quantity): FILE: Lab4/server/OrderService/order_service.py function get_order (line 15) | def get_order(event, context): function create_order (line 30) | def create_order(event, context): function update_order (line 42) | def update_order(event, context): function delete_order (line 56) | def delete_order(event, context): function get_orders (line 69) | def get_orders(event, context): FILE: Lab4/server/OrderService/order_service_dal.py function get_order (line 26) | def get_order(event, key): function delete_order (line 45) | def delete_order(event, key): function create_order (line 62) | def create_order(event, payload): function update_order (line 86) | def update_order(event, payload, key): function get_orders (line 113) | def get_orders(event, tenantId): function __query_all_partitions (line 126) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 142) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 152) | def __get_dynamodb_table(event, dynamodb): function get_order_products_dict (line 163) | def get_order_products_dict(orderProducts): FILE: Lab4/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, shardId, productId, sku, name, price, category): class Category (line 15) | class Category: method __init__ (line 16) | def __init__(self, id, name): FILE: Lab4/server/ProductService/product_service.py function get_product (line 15) | def get_product(event, context): function create_product (line 31) | def create_product(event, context): function update_product (line 43) | def update_product(event, context): function delete_product (line 57) | def delete_product(event, context): function get_products (line 70) | def get_products(event, context): FILE: Lab4/server/ProductService/product_service_dal.py function get_product (line 26) | def get_product(event, key): function delete_product (line 45) | def delete_product(event, key): function create_product (line 61) | def create_product(event, payload): function update_product (line 91) | def update_product(event, payload, key): function get_products (line 121) | def get_products(event, tenantId): function __query_all_partitions (line 133) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 149) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 159) | def __get_dynamodb_table(event, dynamodb): FILE: Lab4/server/Resources/shared_service_authorizer.py function lambda_handler (line 25) | def lambda_handler(event, context): function validateJWT (line 124) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 165) | class HttpVerb: class AuthPolicy (line 175) | class AuthPolicy(object): method __init__ (line 200) | def __init__(self, principal, awsAccountId): method _addMethod (line 206) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 238) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 249) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 270) | def allowAllMethods(self): method denyAllMethods (line 274) | def denyAllMethods(self): method allowMethod (line 278) | def allowMethod(self, verb, resource): method denyMethod (line 283) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 288) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 294) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 300) | def build(self): FILE: Lab4/server/Resources/tenant_authorizer.py function lambda_handler (line 22) | def lambda_handler(event, context): function validateJWT (line 75) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 116) | class HttpVerb: class AuthPolicy (line 126) | class AuthPolicy(object): method __init__ (line 151) | def __init__(self, principal, awsAccountId): method _addMethod (line 157) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 189) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 200) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 221) | def allowAllMethods(self): method denyAllMethods (line 225) | def denyAllMethods(self): method allowMethod (line 229) | def allowMethod(self, verb, resource): method denyMethod (line 234) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 239) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 245) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 251) | def build(self): FILE: Lab4/server/TenantManagementService/tenant-management.py function create_tenant (line 25) | def create_tenant(event, context): function get_tenants (line 46) | def get_tenants(event, context): function update_tenant (line 56) | def update_tenant(event, context): function get_tenant (line 95) | def get_tenant(event, context): function deactivate_tenant (line 127) | def deactivate_tenant(event, context): function activate_tenant (line 170) | def activate_tenant(event, context): function __invoke_disable_users (line 212) | def __invoke_disable_users(update_details, headers, auth, host, stage_na... function __invoke_enable_users (line 227) | def __invoke_enable_users(update_details, headers, auth, host, stage_nam... class TenantInfo (line 242) | class TenantInfo: method __init__ (line 243) | def __init__(self, tenant_name, tenant_address, tenant_email, tenant_p... FILE: Lab4/server/TenantManagementService/tenant-registration.py function register_tenant (line 19) | def register_tenant(event, context): function __create_tenant_admin_user (line 46) | def __create_tenant_admin_user(tenant_details, headers, auth, host, stag... function __create_tenant (line 58) | def __create_tenant(tenant_details, headers, auth, host, stage_name): FILE: Lab4/server/TenantManagementService/user-management.py function create_tenant_admin_user (line 23) | def create_tenant_admin_user(event, context): function create_user (line 47) | def create_user(event, context): function get_users (line 100) | def get_users(event, context): function get_user (line 144) | def get_user(event, context): function update_user (line 167) | def update_user(event, context): function disable_user (line 210) | def disable_user(event, context): function disable_users_by_tenant (line 240) | def disable_users_by_tenant(event, context): function enable_users_by_tenant (line 269) | def enable_users_by_tenant(event, context): function get_user_info (line 296) | def get_user_info(event, user_pool_id, user_name): class UserManagement (line 316) | class UserManagement: method create_user_group (line 317) | def create_user_group(self, user_pool_id, group_name, group_description): method create_tenant_admin (line 326) | def create_tenant_admin(self, user_pool_id, tenant_admin_user_name, us... method add_user_to_group (line 352) | def add_user_to_group(self, user_pool_id, user_name, group_name): method create_user_tenant_mapping (line 360) | def create_user_tenant_mapping(self, user_name, tenant_id): class UserInfo (line 371) | class UserInfo: method __init__ (line 372) | def __init__(self, user_name=None, tenant_id=None, user_role=None, FILE: Lab4/server/layers/auth_manager.py class UserRoles (line 8) | class UserRoles: function isTenantAdmin (line 14) | def isTenantAdmin(user_role): function isSystemAdmin (line 20) | def isSystemAdmin(user_role): function isSaaSProvider (line 27) | def isSaaSProvider(user_role): function isTenantUser (line 32) | def isTenantUser(user_role): function getPolicyForUser (line 38) | def getPolicyForUser(user_role, service_identifier, tenant_id, region, a... function __getPolicyForSystemAdmin (line 59) | def __getPolicyForSystemAdmin(region, aws_account_id): function __getPolicyForTenantAdmin (line 82) | def __getPolicyForTenantAdmin(tenant_id, sevice_identifier, region, aws_... function __getPolicyForTenantUser (line 171) | def __getPolicyForTenantUser(tenant_id, region, aws_account_id): FILE: Lab4/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 14) | def error(log_message): function log_with_tenant_context (line 17) | def log_with_tenant_context(event, log_message): FILE: Lab4/server/layers/metrics_manager.py function record_metric (line 10) | def record_metric(event, metric_name, metric_unit, metric_value): FILE: Lab4/server/layers/utils.py class StatusCodes (line 12) | class StatusCodes(Enum): class Service_Identifier (line 17) | class Service_Identifier(Enum): function create_success_response (line 21) | def create_success_response(message): function create_unauthorized_response (line 34) | def create_unauthorized_response(): function generate_response (line 47) | def generate_response(inputObject): function encode_to_json_object (line 58) | def encode_to_json_object(inputObject): function get_auth (line 64) | def get_auth(host, region): function get_headers (line 75) | def get_headers(event): FILE: Lab5/client/Admin/src/app/app-routing.module.ts class AppRoutingModule (line 48) | class AppRoutingModule {} FILE: Lab5/client/Admin/src/app/app.component.ts class AppComponent (line 18) | class AppComponent { method constructor (line 19) | constructor( FILE: Lab5/client/Admin/src/app/app.module.ts class AppModule (line 58) | class AppModule {} FILE: Lab5/client/Admin/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Lab5/client/Admin/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Lab5/client/Admin/src/app/nav/nav.component.ts class NavComponent (line 22) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 52) | ngOnInit(): void { FILE: Lab5/client/Admin/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Lab5/client/Admin/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Lab5/client/Admin/src/app/views/dashboard/dashboard.component.ts type DataSet (line 9) | interface DataSet { type ChartData (line 13) | interface ChartData { class DashboardComponent (line 24) | class DashboardComponent implements OnInit { method constructor (line 25) | constructor(private tenantSvc: TenantsService) {} method random (line 132) | public random(min: number, max: number) { method ngOnInit (line 136) | ngOnInit(): void { FILE: Lab5/client/Admin/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Lab5/client/Admin/src/app/views/tenants/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 29) | ngOnInit(): void {} method openErrorMessageSnackBar (line 31) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 37) | submit() { FILE: Lab5/client/Admin/src/app/views/tenants/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 22) | constructor(private tenantSvc: TenantsService) {} method ngOnInit (line 24) | ngOnInit(): void { FILE: Lab5/client/Admin/src/app/views/tenants/models/tenant.ts type Tenant (line 1) | interface Tenant { FILE: Lab5/client/Admin/src/app/views/tenants/tenants-routing.module.ts class TenantsRoutingModule (line 37) | class TenantsRoutingModule {} FILE: Lab5/client/Admin/src/app/views/tenants/tenants.module.ts class TenantsModule (line 51) | class TenantsModule {} FILE: Lab5/client/Admin/src/app/views/tenants/tenants.service.ts class TenantsService (line 15) | class TenantsService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 22) | fetch(): Observable { method post (line 26) | post(tenant: Tenant): Observable { FILE: Lab5/client/Admin/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 33) | ngOnInit(): void {} method openErrorMessageSnackBar (line 35) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 41) | onSubmit() { FILE: Lab5/client/Admin/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Lab5/client/Admin/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Lab5/client/Admin/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Lab5/client/Admin/src/app/views/users/users.module.ts class UsersModule (line 49) | class UsersModule {} FILE: Lab5/client/Admin/src/app/views/users/users.service.ts class UsersService (line 26) | class UsersService { method constructor (line 29) | constructor(private http: HttpClient) { method fetch (line 33) | fetch(): Observable { method create (line 37) | create(user: User): Observable { FILE: Lab5/client/Application/cypress.config.ts method setupNodeEvents (line 6) | setupNodeEvents(on, config) { FILE: Lab5/client/Application/src/app/app-routing.module.ts class AppRoutingModule (line 62) | class AppRoutingModule {} FILE: Lab5/client/Application/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Lab5/client/Application/src/app/app.module.ts class AppModule (line 86) | class AppModule {} FILE: Lab5/client/Application/src/app/cognito.guard.ts class CognitoGuard (line 16) | class CognitoGuard implements CanActivate { method constructor (line 17) | constructor( method canActivate (line 22) | canActivate( FILE: Lab5/client/Application/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Lab5/client/Application/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Lab5/client/Application/src/app/nav/nav.component.ts class NavComponent (line 23) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 54) | ngOnInit(): void { method logout (line 85) | async logout() { FILE: Lab5/client/Application/src/app/views/auth/auth-configuration.service.ts class AuthConfigurationService (line 36) | class AuthConfigurationService { method constructor (line 41) | constructor( method setTenantConfig (line 47) | public setTenantConfig(tenantName: string): Promise { method configureAmplifyAuth (line 69) | configureAmplifyAuth(): boolean { method cleanLocalStorage (line 93) | cleanLocalStorage() { FILE: Lab5/client/Application/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Lab5/client/Application/src/app/views/auth/models/config-params.ts type ConfigParams (line 17) | interface ConfigParams { FILE: Lab5/client/Application/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Lab5/client/Application/src/app/views/dashboard/dashboard.component.ts class DashboardComponent (line 13) | class DashboardComponent { method chartClicked (line 48) | public chartClicked({ method chartHovered (line 56) | public chartHovered({ method randomize (line 64) | public randomize(): void { method constructor (line 99) | constructor(private breakpointObserver: BreakpointObserver) {} FILE: Lab5/client/Application/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Lab5/client/Application/src/app/views/error/404.component.ts class P404Component (line 10) | class P404Component { method constructor (line 11) | constructor() {} FILE: Lab5/client/Application/src/app/views/error/500.component.ts class P500Component (line 10) | class P500Component { method constructor (line 11) | constructor() {} FILE: Lab5/client/Application/src/app/views/error/unauthorized.component.ts class UnauthorizedComponent (line 30) | class UnauthorizedComponent implements OnInit { method constructor (line 37) | constructor( method ngOnInit (line 60) | ngOnInit(): void { method isFieldInvalid (line 66) | isFieldInvalid(field: string) { method displayFieldCss (line 73) | displayFieldCss(field: string) { method hasRequiredError (line 79) | hasRequiredError(field: string) { method openErrorMessageSnackBar (line 83) | openErrorMessageSnackBar(errorMessage: string) { method login (line 89) | login() { FILE: Lab5/client/Application/src/app/views/orders/create/create.component.ts type LineItem (line 9) | interface LineItem { class CreateComponent (line 18) | class CreateComponent implements OnInit { method constructor (line 24) | constructor( method ngOnInit (line 35) | ngOnInit(): void { method name (line 45) | get name() { method productQuantity (line 49) | get productQuantity() { method add (line 55) | add(op: LineItem) { method remove (line 70) | remove(op: LineItem) { method submit (line 88) | submit() { FILE: Lab5/client/Application/src/app/views/orders/detail/detail.component.ts class DetailComponent (line 17) | class DetailComponent implements OnInit { method constructor (line 22) | constructor(private route: ActivatedRoute, private orderSvc: OrdersSer... method ngOnInit (line 24) | ngOnInit(): void { method today (line 30) | today() { method tenantName (line 34) | tenantName() { method sum (line 38) | sum(op: OrderProduct) { method tax (line 42) | tax(op: OrderProduct) { method total (line 46) | total(op: OrderProduct) { method subTotal (line 50) | subTotal(order: Order) { method calcTax (line 56) | calcTax(order: Order) { method final (line 60) | final(order: Order) { FILE: Lab5/client/Application/src/app/views/orders/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 15) | constructor(private orderSvc: OrdersService, private router: Router) {} method ngOnInit (line 17) | ngOnInit(): void { method sum (line 24) | sum(order: Order): number { FILE: Lab5/client/Application/src/app/views/orders/models/order.interface.ts type Order (line 7) | interface Order { FILE: Lab5/client/Application/src/app/views/orders/models/orderproduct.interface.ts type OrderProduct (line 5) | interface OrderProduct { FILE: Lab5/client/Application/src/app/views/orders/orders-routing.module.ts class OrdersRoutingModule (line 44) | class OrdersRoutingModule {} FILE: Lab5/client/Application/src/app/views/orders/orders.module.ts class OrdersModule (line 51) | class OrdersModule {} FILE: Lab5/client/Application/src/app/views/orders/orders.service.ts class OrdersService (line 13) | class OrdersService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 18) | fetch(): Observable { method get (line 22) | get(orderId: string): Observable { method create (line 27) | create(order: Order): Observable { FILE: Lab5/client/Application/src/app/views/products/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 15) | constructor( method ngOnInit (line 23) | ngOnInit(): void { method name (line 32) | get name() { method price (line 36) | get price() { method submit (line 40) | submit() { method cancel (line 50) | cancel() { FILE: Lab5/client/Application/src/app/views/products/edit/edit.component.ts class EditComponent (line 18) | class EditComponent implements OnInit { method constructor (line 25) | constructor( method ngOnInit (line 34) | ngOnInit(): void { method name (line 57) | get name() { method price (line 61) | get price() { method submit (line 65) | submit() { method delete (line 72) | delete() { method cancel (line 82) | cancel() { FILE: Lab5/client/Application/src/app/views/products/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 16) | constructor(private productSvc: ProductService, private router: Router... method ngOnInit (line 18) | ngOnInit(): void { method onEdit (line 25) | onEdit(product: Product) { method onRemove (line 30) | onRemove(product: Product) { method onCreate (line 39) | onCreate() { FILE: Lab5/client/Application/src/app/views/products/models/product.interface.ts type Product (line 5) | interface Product { FILE: Lab5/client/Application/src/app/views/products/product.service.ts class ProductService (line 13) | class ProductService { method constructor (line 14) | constructor(private http: HttpClient) {} method fetch (line 17) | fetch(): Observable { method get (line 21) | get(productId: string): Observable { method delete (line 26) | delete(product: Product) { method put (line 31) | put(product: Product) { method post (line 36) | post(product: Product) { FILE: Lab5/client/Application/src/app/views/products/products-routing.module.ts class ProductsRoutingModule (line 44) | class ProductsRoutingModule {} FILE: Lab5/client/Application/src/app/views/products/products.module.ts class ProductsModule (line 48) | class ProductsModule {} FILE: Lab5/client/Application/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 32) | ngOnInit(): void {} method openErrorMessageSnackBar (line 34) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 40) | onSubmit() { FILE: Lab5/client/Application/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Lab5/client/Application/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Lab5/client/Application/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Lab5/client/Application/src/app/views/users/users.module.ts class UsersModule (line 50) | class UsersModule {} FILE: Lab5/client/Application/src/app/views/users/users.service.ts class UsersService (line 27) | class UsersService { method constructor (line 30) | constructor(private http: HttpClient) { method fetch (line 34) | fetch(): Observable { method create (line 38) | create(user: User): Observable { method update (line 42) | update(email: string, user: User) {} FILE: Lab5/client/Landing/src/app/app-routing.module.ts class AppRoutingModule (line 31) | class AppRoutingModule {} FILE: Lab5/client/Landing/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Lab5/client/Landing/src/app/app.module.ts class AppModule (line 53) | class AppModule {} FILE: Lab5/client/Landing/src/app/views/landing/landing.component.ts class LandingComponent (line 25) | class LandingComponent implements OnInit { method constructor (line 26) | constructor(private router: Router) {} method ngOnInit (line 28) | ngOnInit() {} method register (line 30) | register() { FILE: Lab5/client/Landing/src/app/views/register/register.component.ts class RegisterComponent (line 12) | class RegisterComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 28) | ngOnInit(): void {} method openErrorMessageSnackBar (line 30) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 36) | submit() { FILE: Lab5/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, shardId, orderId, orderName, orderProducts): class OrderProduct (line 13) | class OrderProduct: method __init__ (line 15) | def __init__(self, productId, price, quantity): FILE: Lab5/server/OrderService/order_service.py function get_order (line 15) | def get_order(event, context): function create_order (line 30) | def create_order(event, context): function update_order (line 42) | def update_order(event, context): function delete_order (line 56) | def delete_order(event, context): function get_orders (line 69) | def get_orders(event, context): FILE: Lab5/server/OrderService/order_service_dal.py function get_order (line 27) | def get_order(event, key): function delete_order (line 47) | def delete_order(event, key): function create_order (line 64) | def create_order(event, payload): function update_order (line 88) | def update_order(event, payload, key): function get_orders (line 115) | def get_orders(event, tenantId): function __query_all_partitions (line 128) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 144) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 154) | def __get_dynamodb_table(event, dynamodb): function get_order_products_dict (line 178) | def get_order_products_dict(orderProducts): FILE: Lab5/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, shardId, productId, sku, name, price, category): class Category (line 15) | class Category: method __init__ (line 16) | def __init__(self, id, name): FILE: Lab5/server/ProductService/product_service.py function get_product (line 15) | def get_product(event, context): function create_product (line 31) | def create_product(event, context): function update_product (line 43) | def update_product(event, context): function delete_product (line 57) | def delete_product(event, context): function get_products (line 70) | def get_products(event, context): FILE: Lab5/server/ProductService/product_service_dal.py function get_product (line 27) | def get_product(event, key): function delete_product (line 47) | def delete_product(event, key): function create_product (line 64) | def create_product(event, payload): function update_product (line 95) | def update_product(event, payload, key): function get_products (line 126) | def get_products(event, tenantId): function __query_all_partitions (line 138) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 154) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 164) | def __get_dynamodb_table(event, dynamodb): FILE: Lab5/server/Resources/shared_service_authorizer.py function lambda_handler (line 24) | def lambda_handler(event, context): function validateJWT (line 129) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 170) | class HttpVerb: class AuthPolicy (line 180) | class AuthPolicy(object): method __init__ (line 205) | def __init__(self, principal, awsAccountId): method _addMethod (line 211) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 243) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 254) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 275) | def allowAllMethods(self): method denyAllMethods (line 279) | def denyAllMethods(self): method allowMethod (line 283) | def allowMethod(self, verb, resource): method denyMethod (line 288) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 293) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 299) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 305) | def build(self): FILE: Lab5/server/Resources/tenant_authorizer.py function lambda_handler (line 23) | def lambda_handler(event, context): function isTenantAuthorizedForThisAPI (line 126) | def isTenantAuthorizedForThisAPI(apigateway_url, current_api_id): function validateJWT (line 132) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 173) | class HttpVerb: class AuthPolicy (line 183) | class AuthPolicy(object): method __init__ (line 208) | def __init__(self, principal, awsAccountId): method _addMethod (line 214) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 246) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 257) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 278) | def allowAllMethods(self): method denyAllMethods (line 282) | def denyAllMethods(self): method allowMethod (line 286) | def allowMethod(self, verb, resource): method denyMethod (line 291) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 296) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 302) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 308) | def build(self): FILE: Lab5/server/TenantManagementService/tenant-management.py function create_tenant (line 24) | def create_tenant(event, context): function get_tenants (line 64) | def get_tenants(event, context): function update_tenant (line 77) | def update_tenant(event, context): function get_tenant (line 118) | def get_tenant(event, context): function deactivate_tenant (line 152) | def deactivate_tenant(event, context): function activate_tenant (line 206) | def activate_tenant(event, context): function load_tenant_config (line 259) | def load_tenant_config(event, context): function __invoke_disable_users (line 281) | def __invoke_disable_users(update_details, headers, auth, host, stage_na... function __invoke_deprovision_tenant (line 296) | def __invoke_deprovision_tenant(update_details, headers, auth, host, sta... function __invoke_enable_users (line 311) | def __invoke_enable_users(update_details, headers, auth, host, stage_nam... function __invoke_provision_tenant (line 326) | def __invoke_provision_tenant(update_details, headers, auth, host, stage... function __getTenantManagementTable (line 341) | def __getTenantManagementTable(event): class TenantInfo (line 350) | class TenantInfo: method __init__ (line 351) | def __init__(self, tenant_name, tenant_address, tenant_email, tenant_p... FILE: Lab5/server/TenantManagementService/tenant-provisioning.py function provision_tenant (line 22) | def provision_tenant(event, context): function deprovision_tenant (line 37) | def deprovision_tenant(event, context): FILE: Lab5/server/TenantManagementService/tenant-registration.py function register_tenant (line 22) | def register_tenant(event, context): function __create_tenant_admin_user (line 60) | def __create_tenant_admin_user(tenant_details, headers, auth, host, stag... function __create_tenant (line 72) | def __create_tenant(tenant_details, headers, auth, host, stage_name): function __provision_tenant (line 83) | def __provision_tenant(tenant_details, headers, auth, host, stage_name): FILE: Lab5/server/TenantManagementService/user-management.py function create_tenant_admin_user (line 21) | def create_tenant_admin_user(event, context): function create_user (line 54) | def create_user(event, context): function get_users (line 115) | def get_users(event, context): function get_user (line 164) | def get_user(event, context): function update_user (line 198) | def update_user(event, context): function disable_user (line 251) | def disable_user(event, context): function disable_users_by_tenant (line 291) | def disable_users_by_tenant(event, context): function enable_users_by_tenant (line 323) | def enable_users_by_tenant(event, context): function get_user_info (line 353) | def get_user_info(event, user_pool_id, user_name): class UserManagement (line 373) | class UserManagement: method create_user_pool (line 374) | def create_user_pool(self, tenant_id): method create_user_pool_client (line 417) | def create_user_pool_client(self, user_pool_id): method create_user_pool_domain (line 448) | def create_user_pool_domain(self, user_pool_id, tenant_id): method create_user_group (line 455) | def create_user_group(self, user_pool_id, group_name, group_description): method create_tenant_admin (line 464) | def create_tenant_admin(self, user_pool_id, tenant_admin_user_name, us... method add_user_to_group (line 490) | def add_user_to_group(self, user_pool_id, user_name, group_name): method create_user_tenant_mapping (line 498) | def create_user_tenant_mapping(self, user_name, tenant_id): class UserInfo (line 509) | class UserInfo: method __init__ (line 510) | def __init__(self, user_name=None, tenant_id=None, user_role=None, FILE: Lab5/server/TenantPipeline/lib/serverless-saas-stack.ts class ServerlessSaaSStack (line 18) | class ServerlessSaaSStack extends cdk.Stack { method constructor (line 19) | constructor(scope: Construct, id: string, props?: cdk.StackProps) { FILE: Lab5/server/TenantPipeline/resources/lambda-deploy-tenant-stack.py function find_artifact (line 26) | def find_artifact(artifacts, name): function get_template_url (line 44) | def get_template_url(s3, artifact, file_in_zip): function update_stack (line 78) | def update_stack(stack, template_url, params): function stack_exists (line 103) | def stack_exists(stack): function create_stack (line 126) | def create_stack(stack, template_url, params): function get_stack_status (line 138) | def get_stack_status(stack): function put_job_success (line 154) | def put_job_success(job, message): function put_job_failure (line 169) | def put_job_failure(job, message): function continue_job_later (line 184) | def continue_job_later(job, message): function start_update_or_create (line 208) | def start_update_or_create(job_id, stack, template_url, params): function check_stack_update_status (line 245) | def check_stack_update_status(job_id, stack): function get_user_params (line 273) | def get_user_params(job_data): function setup_s3_client (line 310) | def setup_s3_client(job_data): function get_tenant_params (line 336) | def get_tenant_params(tenantId): function add_parameter (line 353) | def add_parameter(params, parameter_key, parameter_value): function update_tenantstackmapping (line 362) | def update_tenantstackmapping(tenantId, commit_id): function lambda_handler (line 382) | def lambda_handler(event, context): FILE: Lab5/server/custom_resources/update_settings_table.py function do_action (line 19) | def do_action(event, _): function do_nothing (line 51) | def do_nothing(_, __): function handler (line 54) | def handler(event, context): FILE: Lab5/server/custom_resources/update_tenant_apigatewayurl.py function do_action (line 16) | def do_action(event, _): function do_nothing (line 54) | def do_nothing(_, __): function handler (line 57) | def handler(event, context): FILE: Lab5/server/custom_resources/update_tenantstackmap_table.py function do_action (line 18) | def do_action(event, _): function do_nothing (line 41) | def do_nothing(_, __): function handler (line 44) | def handler(event, context): FILE: Lab5/server/layers/auth_manager.py class UserRoles (line 8) | class UserRoles: function isTenantAdmin (line 14) | def isTenantAdmin(user_role): function isSystemAdmin (line 20) | def isSystemAdmin(user_role): function isSaaSProvider (line 27) | def isSaaSProvider(user_role): function isTenantUser (line 32) | def isTenantUser(user_role): function getPolicyForUser (line 38) | def getPolicyForUser(user_role, service_identifier, tenant_id, region, a... function __getPolicyForSystemAdmin (line 61) | def __getPolicyForSystemAdmin(region, aws_account_id): function __getPolicyForTenantAdmin (line 84) | def __getPolicyForTenantAdmin(tenant_id, sevice_identifier, region, aws_... function __getPolicyForTenantUser (line 173) | def __getPolicyForTenantUser(tenant_id, region, aws_account_id): FILE: Lab5/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 15) | def error(log_message): function log_with_tenant_context (line 21) | def log_with_tenant_context(event, log_message): FILE: Lab5/server/layers/metrics_manager.py function record_metric (line 10) | def record_metric(event, metric_name, metric_unit, metric_value): FILE: Lab5/server/layers/utils.py class TenantTier (line 12) | class TenantTier(Enum): class StatusCodes (line 19) | class StatusCodes(Enum): class Service_Identifier (line 24) | class Service_Identifier(Enum): function create_success_response (line 28) | def create_success_response(message): function create_unauthorized_response (line 41) | def create_unauthorized_response(): function create_notfound_response (line 54) | def create_notfound_response(message): function get_auth (line 67) | def get_auth(host, region): function get_headers (line 78) | def get_headers(event): function generate_response (line 82) | def generate_response(inputObject): function encode_to_json_object (line 93) | def encode_to_json_object(inputObject): FILE: Lab6/client/Admin/src/app/app-routing.module.ts class AppRoutingModule (line 48) | class AppRoutingModule {} FILE: Lab6/client/Admin/src/app/app.component.ts class AppComponent (line 18) | class AppComponent { method constructor (line 19) | constructor( FILE: Lab6/client/Admin/src/app/app.module.ts class AppModule (line 58) | class AppModule {} FILE: Lab6/client/Admin/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Lab6/client/Admin/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Lab6/client/Admin/src/app/nav/nav.component.ts class NavComponent (line 22) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 52) | ngOnInit(): void { FILE: Lab6/client/Admin/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Lab6/client/Admin/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Lab6/client/Admin/src/app/views/dashboard/dashboard.component.ts type DataSet (line 9) | interface DataSet { type ChartData (line 13) | interface ChartData { class DashboardComponent (line 24) | class DashboardComponent implements OnInit { method constructor (line 25) | constructor(private tenantSvc: TenantsService) {} method random (line 132) | public random(min: number, max: number) { method ngOnInit (line 136) | ngOnInit(): void { FILE: Lab6/client/Admin/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Lab6/client/Admin/src/app/views/tenants/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 29) | ngOnInit(): void {} method openErrorMessageSnackBar (line 31) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 37) | submit() { FILE: Lab6/client/Admin/src/app/views/tenants/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 22) | constructor(private tenantSvc: TenantsService) {} method ngOnInit (line 24) | ngOnInit(): void { FILE: Lab6/client/Admin/src/app/views/tenants/models/tenant.ts type Tenant (line 1) | interface Tenant { FILE: Lab6/client/Admin/src/app/views/tenants/tenants-routing.module.ts class TenantsRoutingModule (line 37) | class TenantsRoutingModule {} FILE: Lab6/client/Admin/src/app/views/tenants/tenants.module.ts class TenantsModule (line 51) | class TenantsModule {} FILE: Lab6/client/Admin/src/app/views/tenants/tenants.service.ts class TenantsService (line 15) | class TenantsService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 22) | fetch(): Observable { method post (line 26) | post(tenant: Tenant): Observable { FILE: Lab6/client/Admin/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 33) | ngOnInit(): void {} method openErrorMessageSnackBar (line 35) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 41) | onSubmit() { FILE: Lab6/client/Admin/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Lab6/client/Admin/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Lab6/client/Admin/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Lab6/client/Admin/src/app/views/users/users.module.ts class UsersModule (line 49) | class UsersModule {} FILE: Lab6/client/Admin/src/app/views/users/users.service.ts class UsersService (line 26) | class UsersService { method constructor (line 29) | constructor(private http: HttpClient) { method fetch (line 33) | fetch(): Observable { method create (line 37) | create(user: User): Observable { FILE: Lab6/client/Application/cypress.config.ts method setupNodeEvents (line 6) | setupNodeEvents(on, config) { FILE: Lab6/client/Application/src/app/app-routing.module.ts class AppRoutingModule (line 62) | class AppRoutingModule {} FILE: Lab6/client/Application/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Lab6/client/Application/src/app/app.module.ts class AppModule (line 86) | class AppModule {} FILE: Lab6/client/Application/src/app/cognito.guard.ts class CognitoGuard (line 16) | class CognitoGuard implements CanActivate { method constructor (line 17) | constructor( method canActivate (line 22) | canActivate( FILE: Lab6/client/Application/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Lab6/client/Application/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Lab6/client/Application/src/app/nav/nav.component.ts class NavComponent (line 23) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 54) | ngOnInit(): void { method logout (line 85) | async logout() { FILE: Lab6/client/Application/src/app/views/auth/auth-configuration.service.ts class AuthConfigurationService (line 36) | class AuthConfigurationService { method constructor (line 41) | constructor( method setTenantConfig (line 47) | public setTenantConfig(tenantName: string): Promise { method configureAmplifyAuth (line 69) | configureAmplifyAuth(): boolean { method cleanLocalStorage (line 93) | cleanLocalStorage() { FILE: Lab6/client/Application/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Lab6/client/Application/src/app/views/auth/models/config-params.ts type ConfigParams (line 17) | interface ConfigParams { FILE: Lab6/client/Application/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Lab6/client/Application/src/app/views/dashboard/dashboard.component.ts class DashboardComponent (line 13) | class DashboardComponent { method chartClicked (line 48) | public chartClicked({ method chartHovered (line 56) | public chartHovered({ method randomize (line 64) | public randomize(): void { method constructor (line 99) | constructor(private breakpointObserver: BreakpointObserver) {} FILE: Lab6/client/Application/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Lab6/client/Application/src/app/views/error/404.component.ts class P404Component (line 10) | class P404Component { method constructor (line 11) | constructor() {} FILE: Lab6/client/Application/src/app/views/error/500.component.ts class P500Component (line 10) | class P500Component { method constructor (line 11) | constructor() {} FILE: Lab6/client/Application/src/app/views/error/unauthorized.component.ts class UnauthorizedComponent (line 29) | class UnauthorizedComponent implements OnInit { method constructor (line 35) | constructor( method ngOnInit (line 42) | ngOnInit(): void { method isFieldInvalid (line 52) | isFieldInvalid(field: string) { method displayFieldCss (line 59) | displayFieldCss(field: string) { method hasRequiredError (line 65) | hasRequiredError(field: string) { method openErrorMessageSnackBar (line 69) | openErrorMessageSnackBar(errorMessage: string) { method login (line 75) | login() { FILE: Lab6/client/Application/src/app/views/orders/create/create.component.ts type LineItem (line 9) | interface LineItem { class CreateComponent (line 18) | class CreateComponent implements OnInit { method constructor (line 24) | constructor( method ngOnInit (line 35) | ngOnInit(): void { method name (line 45) | get name() { method productQuantity (line 49) | get productQuantity() { method add (line 55) | add(op: LineItem) { method remove (line 70) | remove(op: LineItem) { method submit (line 88) | submit() { FILE: Lab6/client/Application/src/app/views/orders/detail/detail.component.ts class DetailComponent (line 17) | class DetailComponent implements OnInit { method constructor (line 22) | constructor(private route: ActivatedRoute, private orderSvc: OrdersSer... method ngOnInit (line 24) | ngOnInit(): void { method today (line 30) | today() { method tenantName (line 34) | tenantName() { method sum (line 38) | sum(op: OrderProduct) { method tax (line 42) | tax(op: OrderProduct) { method total (line 46) | total(op: OrderProduct) { method subTotal (line 50) | subTotal(order: Order) { method calcTax (line 56) | calcTax(order: Order) { method final (line 60) | final(order: Order) { FILE: Lab6/client/Application/src/app/views/orders/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 15) | constructor(private orderSvc: OrdersService, private router: Router) {} method ngOnInit (line 17) | ngOnInit(): void { method sum (line 24) | sum(order: Order): number { FILE: Lab6/client/Application/src/app/views/orders/models/order.interface.ts type Order (line 7) | interface Order { FILE: Lab6/client/Application/src/app/views/orders/models/orderproduct.interface.ts type OrderProduct (line 5) | interface OrderProduct { FILE: Lab6/client/Application/src/app/views/orders/orders-routing.module.ts class OrdersRoutingModule (line 44) | class OrdersRoutingModule {} FILE: Lab6/client/Application/src/app/views/orders/orders.module.ts class OrdersModule (line 51) | class OrdersModule {} FILE: Lab6/client/Application/src/app/views/orders/orders.service.ts class OrdersService (line 13) | class OrdersService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 18) | fetch(): Observable { method get (line 22) | get(orderId: string): Observable { method create (line 27) | create(order: Order): Observable { FILE: Lab6/client/Application/src/app/views/products/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 15) | constructor( method ngOnInit (line 23) | ngOnInit(): void { method name (line 32) | get name() { method price (line 36) | get price() { method submit (line 40) | submit() { method cancel (line 50) | cancel() { FILE: Lab6/client/Application/src/app/views/products/edit/edit.component.ts class EditComponent (line 17) | class EditComponent implements OnInit { method constructor (line 23) | constructor( method ngOnInit (line 30) | ngOnInit(): void { method name (line 51) | get name() { method price (line 55) | get price() { method submit (line 59) | submit() { method delete (line 66) | delete() { method cancel (line 76) | cancel() { FILE: Lab6/client/Application/src/app/views/products/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 16) | constructor(private productSvc: ProductService, private router: Router... method ngOnInit (line 18) | ngOnInit(): void { method onEdit (line 25) | onEdit(product: Product) { method onRemove (line 30) | onRemove(product: Product) { method onCreate (line 39) | onCreate() { FILE: Lab6/client/Application/src/app/views/products/models/product.interface.ts type Product (line 5) | interface Product { FILE: Lab6/client/Application/src/app/views/products/product.service.ts class ProductService (line 13) | class ProductService { method constructor (line 14) | constructor(private http: HttpClient) {} method fetch (line 17) | fetch(): Observable { method get (line 21) | get(productId: string): Observable { method delete (line 26) | delete(product: Product) { method put (line 31) | put(product: Product) { method post (line 35) | post(product: Product) { FILE: Lab6/client/Application/src/app/views/products/products-routing.module.ts class ProductsRoutingModule (line 44) | class ProductsRoutingModule {} FILE: Lab6/client/Application/src/app/views/products/products.module.ts class ProductsModule (line 48) | class ProductsModule {} FILE: Lab6/client/Application/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 32) | ngOnInit(): void {} method openErrorMessageSnackBar (line 34) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 40) | onSubmit() { FILE: Lab6/client/Application/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Lab6/client/Application/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Lab6/client/Application/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Lab6/client/Application/src/app/views/users/users.module.ts class UsersModule (line 50) | class UsersModule {} FILE: Lab6/client/Application/src/app/views/users/users.service.ts class UsersService (line 27) | class UsersService { method constructor (line 30) | constructor(private http: HttpClient) { method fetch (line 34) | fetch(): Observable { method create (line 38) | create(user: User): Observable { method update (line 42) | update(email: string, user: User) {} FILE: Lab6/client/Landing/src/app/app-routing.module.ts class AppRoutingModule (line 31) | class AppRoutingModule {} FILE: Lab6/client/Landing/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Lab6/client/Landing/src/app/app.module.ts class AppModule (line 53) | class AppModule {} FILE: Lab6/client/Landing/src/app/views/landing/landing.component.ts class LandingComponent (line 25) | class LandingComponent implements OnInit { method constructor (line 26) | constructor(private router: Router) {} method ngOnInit (line 28) | ngOnInit() {} method register (line 30) | register() { FILE: Lab6/client/Landing/src/app/views/register/register.component.ts class RegisterComponent (line 12) | class RegisterComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 28) | ngOnInit(): void {} method openErrorMessageSnackBar (line 30) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 36) | submit() { FILE: Lab6/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, shardId, orderId, orderName, orderProducts): class OrderProduct (line 13) | class OrderProduct: method __init__ (line 15) | def __init__(self, productId, price, quantity): FILE: Lab6/server/OrderService/order_service.py function get_order (line 15) | def get_order(event, context): function create_order (line 30) | def create_order(event, context): function update_order (line 42) | def update_order(event, context): function delete_order (line 56) | def delete_order(event, context): function get_orders (line 69) | def get_orders(event, context): FILE: Lab6/server/OrderService/order_service_dal.py function get_order (line 27) | def get_order(event, key): function delete_order (line 47) | def delete_order(event, key): function create_order (line 64) | def create_order(event, payload): function update_order (line 88) | def update_order(event, payload, key): function get_orders (line 115) | def get_orders(event, tenantId): function __query_all_partitions (line 128) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 144) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 154) | def __get_dynamodb_table(event, dynamodb): function get_order_products_dict (line 178) | def get_order_products_dict(orderProducts): FILE: Lab6/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, shardId, productId, sku, name, price, category): class Category (line 15) | class Category: method __init__ (line 16) | def __init__(self, id, name): FILE: Lab6/server/ProductService/product_service.py function get_product (line 15) | def get_product(event, context): function create_product (line 31) | def create_product(event, context): function update_product (line 43) | def update_product(event, context): function delete_product (line 57) | def delete_product(event, context): function get_products (line 70) | def get_products(event, context): FILE: Lab6/server/ProductService/product_service_dal.py function get_product (line 27) | def get_product(event, key): function delete_product (line 47) | def delete_product(event, key): function create_product (line 64) | def create_product(event, payload): function update_product (line 96) | def update_product(event, payload, key): function get_products (line 127) | def get_products(event, tenantId): function __query_all_partitions (line 139) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 155) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 165) | def __get_dynamodb_table(event, dynamodb): FILE: Lab6/server/Resources/shared_service_authorizer.py function lambda_handler (line 24) | def lambda_handler(event, context): function validateJWT (line 133) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 174) | class HttpVerb: class AuthPolicy (line 184) | class AuthPolicy(object): method __init__ (line 209) | def __init__(self, principal, awsAccountId): method _addMethod (line 215) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 247) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 258) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 279) | def allowAllMethods(self): method denyAllMethods (line 283) | def denyAllMethods(self): method allowMethod (line 287) | def allowMethod(self, verb, resource): method denyMethod (line 292) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 297) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 303) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 309) | def build(self): FILE: Lab6/server/Resources/tenant_authorizer.py function lambda_handler (line 24) | def lambda_handler(event, context): function isTenantAuthorizedForThisAPI (line 133) | def isTenantAuthorizedForThisAPI(apigateway_url, current_api_id): function validateJWT (line 139) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 180) | class HttpVerb: class AuthPolicy (line 190) | class AuthPolicy(object): method __init__ (line 215) | def __init__(self, principal, awsAccountId): method _addMethod (line 221) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 253) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 264) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 285) | def allowAllMethods(self): method denyAllMethods (line 289) | def denyAllMethods(self): method allowMethod (line 293) | def allowMethod(self, verb, resource): method denyMethod (line 298) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 303) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 309) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 315) | def build(self): FILE: Lab6/server/TenantManagementService/tenant-management.py function create_tenant (line 24) | def create_tenant(event, context): function get_tenants (line 66) | def get_tenants(event, context): function update_tenant (line 79) | def update_tenant(event, context): function get_tenant (line 131) | def get_tenant(event, context): function deactivate_tenant (line 165) | def deactivate_tenant(event, context): function activate_tenant (line 219) | def activate_tenant(event, context): function load_tenant_config (line 272) | def load_tenant_config(event, context): function __invoke_disable_users (line 294) | def __invoke_disable_users(update_details, headers, auth, host, stage_na... function __invoke_deprovision_tenant (line 309) | def __invoke_deprovision_tenant(update_details, headers, auth, host, sta... function __invoke_enable_users (line 324) | def __invoke_enable_users(update_details, headers, auth, host, stage_nam... function __invoke_provision_tenant (line 339) | def __invoke_provision_tenant(update_details, headers, auth, host, stage... function __getApiKey (line 354) | def __getApiKey(tenant_tier): function __getTenantManagementTable (line 364) | def __getTenantManagementTable(event): class TenantInfo (line 373) | class TenantInfo: method __init__ (line 374) | def __init__(self, tenant_name, tenant_address, tenant_email, tenant_p... FILE: Lab6/server/TenantManagementService/tenant-provisioning.py function provision_tenant (line 22) | def provision_tenant(event, context): function deprovision_tenant (line 50) | def deprovision_tenant(event, context): FILE: Lab6/server/TenantManagementService/tenant-registration.py function register_tenant (line 26) | def register_tenant(event, context): function __create_tenant_admin_user (line 67) | def __create_tenant_admin_user(tenant_details, headers, auth, host, stag... function __create_tenant (line 79) | def __create_tenant(tenant_details, headers, auth, host, stage_name): function __provision_tenant (line 90) | def __provision_tenant(tenant_details, headers, auth, host, stage_name): FILE: Lab6/server/TenantManagementService/user-management.py function create_tenant_admin_user (line 21) | def create_tenant_admin_user(event, context): function create_user (line 62) | def create_user(event, context): function get_users (line 123) | def get_users(event, context): function get_user (line 172) | def get_user(event, context): function update_user (line 206) | def update_user(event, context): function disable_user (line 259) | def disable_user(event, context): function disable_users_by_tenant (line 299) | def disable_users_by_tenant(event, context): function enable_users_by_tenant (line 331) | def enable_users_by_tenant(event, context): function get_user_info (line 361) | def get_user_info(event, user_pool_id, user_name): class UserManagement (line 381) | class UserManagement: method create_user_pool (line 382) | def create_user_pool(self, tenant_id): method create_user_pool_client (line 425) | def create_user_pool_client(self, user_pool_id): method create_user_pool_domain (line 456) | def create_user_pool_domain(self, user_pool_id, tenant_id): method create_user_group (line 463) | def create_user_group(self, user_pool_id, group_name, group_description): method create_tenant_admin (line 472) | def create_tenant_admin(self, user_pool_id, tenant_admin_user_name, us... method add_user_to_group (line 498) | def add_user_to_group(self, user_pool_id, user_name, group_name): method create_user_tenant_mapping (line 506) | def create_user_tenant_mapping(self, user_name, tenant_id): class UserInfo (line 517) | class UserInfo: method __init__ (line 518) | def __init__(self, user_name=None, tenant_id=None, user_role=None, FILE: Lab6/server/TenantPipeline/lib/serverless-saas-stack.ts class ServerlessSaaSStack (line 18) | class ServerlessSaaSStack extends cdk.Stack { method constructor (line 19) | constructor(scope: Construct, id: string, props?: cdk.StackProps) { FILE: Lab6/server/TenantPipeline/resources/lambda-deploy-tenant-stack.py function find_artifact (line 26) | def find_artifact(artifacts, name): function get_template_url (line 44) | def get_template_url(s3, artifact, file_in_zip): function update_stack (line 78) | def update_stack(stack, template_url, params): function stack_exists (line 103) | def stack_exists(stack): function create_stack (line 126) | def create_stack(stack, template_url, params): function get_stack_status (line 138) | def get_stack_status(stack): function put_job_success (line 154) | def put_job_success(job, message): function put_job_failure (line 169) | def put_job_failure(job, message): function continue_job_later (line 184) | def continue_job_later(job, message): function start_update_or_create (line 208) | def start_update_or_create(job_id, stack, template_url, params): function check_stack_update_status (line 245) | def check_stack_update_status(job_id, stack): function get_user_params (line 273) | def get_user_params(job_data): function setup_s3_client (line 310) | def setup_s3_client(job_data): function get_tenant_params (line 336) | def get_tenant_params(tenantId): function add_parameter (line 353) | def add_parameter(params, parameter_key, parameter_value): function update_tenantstackmapping (line 362) | def update_tenantstackmapping(tenantId, commit_id): function lambda_handler (line 382) | def lambda_handler(event, context): FILE: Lab6/server/custom_resources/update_settings_table.py function do_action (line 19) | def do_action(event, _): function do_nothing (line 51) | def do_nothing(_, __): function handler (line 54) | def handler(event, context): FILE: Lab6/server/custom_resources/update_tenant_apigatewayurl.py function do_action (line 16) | def do_action(event, _): function do_nothing (line 54) | def do_nothing(_, __): function handler (line 57) | def handler(event, context): FILE: Lab6/server/custom_resources/update_tenantstackmap_table.py function do_action (line 18) | def do_action(event, _): function do_nothing (line 41) | def do_nothing(_, __): function handler (line 44) | def handler(event, context): FILE: Lab6/server/custom_resources/update_usage_plan.py function do_action (line 18) | def do_action(event, _): function do_nothing (line 87) | def do_nothing(_, __): function handler (line 90) | def handler(event, context): FILE: Lab6/server/layers/auth_manager.py class UserRoles (line 8) | class UserRoles: function isTenantAdmin (line 14) | def isTenantAdmin(user_role): function isSystemAdmin (line 20) | def isSystemAdmin(user_role): function isSaaSProvider (line 27) | def isSaaSProvider(user_role): function isTenantUser (line 32) | def isTenantUser(user_role): function getPolicyForUser (line 38) | def getPolicyForUser(user_role, service_identifier, tenant_id, region, a... function __getPolicyForSystemAdmin (line 61) | def __getPolicyForSystemAdmin(region, aws_account_id): function __getPolicyForTenantAdmin (line 84) | def __getPolicyForTenantAdmin(tenant_id, sevice_identifier, region, aws_... function __getPolicyForTenantUser (line 173) | def __getPolicyForTenantUser(tenant_id, region, aws_account_id): FILE: Lab6/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 15) | def error(log_message): function log_with_tenant_context (line 21) | def log_with_tenant_context(event, log_message): FILE: Lab6/server/layers/metrics_manager.py function record_metric (line 10) | def record_metric(event, metric_name, metric_unit, metric_value): FILE: Lab6/server/layers/utils.py class TenantTier (line 12) | class TenantTier(Enum): class StatusCodes (line 19) | class StatusCodes(Enum): class Service_Identifier (line 24) | class Service_Identifier(Enum): function create_success_response (line 28) | def create_success_response(message): function create_unauthorized_response (line 41) | def create_unauthorized_response(): function create_notfound_response (line 54) | def create_notfound_response(message): function get_auth (line 67) | def get_auth(host, region): function get_headers (line 78) | def get_headers(event): function generate_response (line 82) | def generate_response(inputObject): function encode_to_json_object (line 93) | def encode_to_json_object(inputObject): FILE: Lab7/.aws-sam/build/GetDynamoDBUsageAndCostByTenant/tenant_usage_and_cost.py function calculate_daily_dynamodb_attribution_by_tenant (line 21) | def calculate_daily_dynamodb_attribution_by_tenant(event, context): function calculate_daily_lambda_attribution_by_tenant (line 114) | def calculate_daily_lambda_attribution_by_tenant(event, context): function __get_total_service_cost (line 190) | def __get_total_service_cost(servicename, start_date_time, end_date_time): function __query_cloudwatch_logs (line 245) | def __query_cloudwatch_logs(logs, log_group_names, query_string, start_t... function __is_log_group_exists (line 259) | def __is_log_group_exists(logs_client, log_group_name): function __add_log_group_name (line 269) | def __add_log_group_name(logs_client, log_group_name, log_group_names_li... function __get_list_of_log_group_names (line 275) | def __get_list_of_log_group_names(): FILE: Lab7/.aws-sam/build/GetLambdaUsageAndCostByTenant/tenant_usage_and_cost.py function calculate_daily_dynamodb_attribution_by_tenant (line 21) | def calculate_daily_dynamodb_attribution_by_tenant(event, context): function calculate_daily_lambda_attribution_by_tenant (line 114) | def calculate_daily_lambda_attribution_by_tenant(event, context): function __get_total_service_cost (line 190) | def __get_total_service_cost(servicename, start_date_time, end_date_time): function __query_cloudwatch_logs (line 245) | def __query_cloudwatch_logs(logs, log_group_names, query_string, start_t... function __is_log_group_exists (line 259) | def __is_log_group_exists(logs_client, log_group_name): function __add_log_group_name (line 269) | def __add_log_group_name(logs_client, log_group_name, log_group_names_li... function __get_list_of_log_group_names (line 275) | def __get_list_of_log_group_names(): FILE: Lab7/TenantUsageAndCost/tenant_usage_and_cost.py function calculate_daily_dynamodb_attribution_by_tenant (line 21) | def calculate_daily_dynamodb_attribution_by_tenant(event, context): function calculate_daily_lambda_attribution_by_tenant (line 92) | def calculate_daily_lambda_attribution_by_tenant(event, context): function __get_total_service_cost (line 159) | def __get_total_service_cost(servicename, start_date_time, end_date_time): function __query_cloudwatch_logs (line 214) | def __query_cloudwatch_logs(logs, log_group_names, query_string, start_t... function __is_log_group_exists (line 228) | def __is_log_group_exists(logs_client, log_group_name): function __add_log_group_name (line 238) | def __add_log_group_name(logs_client, log_group_name, log_group_names_li... function __get_list_of_log_group_names (line 244) | def __get_list_of_log_group_names(): function __get_start_date_time (line 287) | def __get_start_date_time(): function __get_end_date_time (line 292) | def __get_end_date_time(): FILE: Solution/Lab1/client/Application/src/app/app-routing.module.ts class AppRoutingModule (line 44) | class AppRoutingModule {} FILE: Solution/Lab1/client/Application/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Solution/Lab1/client/Application/src/app/app.module.ts class AppModule (line 74) | class AppModule {} FILE: Solution/Lab1/client/Application/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Solution/Lab1/client/Application/src/app/nav/nav.component.ts class NavComponent (line 20) | class NavComponent implements OnInit { method constructor (line 30) | constructor( method ngOnInit (line 47) | ngOnInit(): void {} FILE: Solution/Lab1/client/Application/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Solution/Lab1/client/Application/src/app/views/dashboard/dashboard.component.ts class DashboardComponent (line 13) | class DashboardComponent { method chartClicked (line 48) | public chartClicked({ method chartHovered (line 56) | public chartHovered({ method randomize (line 64) | public randomize(): void { method constructor (line 99) | constructor(private breakpointObserver: BreakpointObserver) {} FILE: Solution/Lab1/client/Application/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Solution/Lab1/client/Application/src/app/views/orders/create/create.component.ts type LineItem (line 9) | interface LineItem { class CreateComponent (line 18) | class CreateComponent implements OnInit { method constructor (line 24) | constructor( method ngOnInit (line 35) | ngOnInit(): void { method name (line 45) | get name() { method productQuantity (line 49) | get productQuantity() { method add (line 55) | add(op: LineItem) { method remove (line 70) | remove(op: LineItem) { method submit (line 88) | submit() { FILE: Solution/Lab1/client/Application/src/app/views/orders/detail/detail.component.ts class DetailComponent (line 17) | class DetailComponent implements OnInit { method constructor (line 22) | constructor(private route: ActivatedRoute, private orderSvc: OrdersSer... method ngOnInit (line 24) | ngOnInit(): void { method today (line 30) | today() { method sum (line 34) | sum(op: OrderProduct) { method tax (line 38) | tax(op: OrderProduct) { method total (line 42) | total(op: OrderProduct) { method subTotal (line 46) | subTotal(order: Order) { method calcTax (line 52) | calcTax(order: Order) { method final (line 56) | final(order: Order) { FILE: Solution/Lab1/client/Application/src/app/views/orders/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 15) | constructor(private orderSvc: OrdersService, private router: Router) {} method ngOnInit (line 17) | ngOnInit(): void { method sum (line 24) | sum(order: Order): number { FILE: Solution/Lab1/client/Application/src/app/views/orders/models/order.interface.ts type Order (line 7) | interface Order { FILE: Solution/Lab1/client/Application/src/app/views/orders/models/orderproduct.interface.ts type OrderProduct (line 5) | interface OrderProduct { FILE: Solution/Lab1/client/Application/src/app/views/orders/orders-routing.module.ts class OrdersRoutingModule (line 44) | class OrdersRoutingModule {} FILE: Solution/Lab1/client/Application/src/app/views/orders/orders.module.ts class OrdersModule (line 51) | class OrdersModule {} FILE: Solution/Lab1/client/Application/src/app/views/orders/orders.service.ts class OrdersService (line 14) | class OrdersService { method constructor (line 17) | constructor(private http: HttpClient) {} method fetch (line 19) | fetch(): Observable { method get (line 23) | get(orderId: string): Observable { method create (line 28) | create(order: Order): Observable { FILE: Solution/Lab1/client/Application/src/app/views/products/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 15) | constructor( method ngOnInit (line 23) | ngOnInit(): void { method name (line 32) | get name() { method price (line 36) | get price() { method submit (line 40) | submit() { method cancel (line 50) | cancel() { FILE: Solution/Lab1/client/Application/src/app/views/products/edit/edit.component.ts class EditComponent (line 18) | class EditComponent implements OnInit { method constructor (line 25) | constructor( method ngOnInit (line 34) | ngOnInit(): void { method name (line 57) | get name() { method price (line 61) | get price() { method submit (line 65) | submit() { method delete (line 72) | delete() { method cancel (line 82) | cancel() { FILE: Solution/Lab1/client/Application/src/app/views/products/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 16) | constructor(private productSvc: ProductService, private router: Router... method ngOnInit (line 18) | ngOnInit(): void { method onEdit (line 25) | onEdit(product: Product) { method onRemove (line 30) | onRemove(product: Product) { method onCreate (line 39) | onCreate() { FILE: Solution/Lab1/client/Application/src/app/views/products/models/product.interface.ts type Product (line 5) | interface Product { FILE: Solution/Lab1/client/Application/src/app/views/products/product.service.ts class ProductService (line 14) | class ProductService { method constructor (line 15) | constructor(private http: HttpClient) {} method fetch (line 18) | fetch(): Observable { method get (line 22) | get(productId: string): Observable { method delete (line 27) | delete(product: Product) { method put (line 32) | put(product: Product) { method post (line 37) | post(product: Product) { FILE: Solution/Lab1/client/Application/src/app/views/products/products-routing.module.ts class ProductsRoutingModule (line 44) | class ProductsRoutingModule {} FILE: Solution/Lab1/client/Application/src/app/views/products/products.module.ts class ProductsModule (line 48) | class ProductsModule {} FILE: Solution/Lab1/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, orderId, orderName, orderProducts): class OrderProduct (line 11) | class OrderProduct: method __init__ (line 13) | def __init__(self, productId, price, quantity): FILE: Solution/Lab1/server/OrderService/order_service.py function get_order (line 12) | def get_order(event, context): function create_order (line 22) | def create_order(event, context): function update_order (line 29) | def update_order(event, context): function delete_order (line 38) | def delete_order(event, context): function get_orders (line 46) | def get_orders(event, context): FILE: Solution/Lab1/server/OrderService/order_service_dal.py function get_order (line 19) | def get_order(event, orderId): function delete_order (line 32) | def delete_order(event, orderId): function create_order (line 44) | def create_order(event, payload): function update_order (line 61) | def update_order(event, payload, orderId): function get_orders (line 80) | def get_orders(event): function get_order_products_dict (line 97) | def get_order_products_dict(orderProducts): FILE: Solution/Lab1/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, productId, sku, name, price, category): class Category (line 13) | class Category: method __init__ (line 14) | def __init__(self, id, name): FILE: Solution/Lab1/server/ProductService/product_service.py function get_product (line 11) | def get_product(event, context): function create_product (line 19) | def create_product(event, context): function update_product (line 27) | def update_product(event, context): function delete_product (line 36) | def delete_product(event, context): function get_products (line 44) | def get_products(event, context): FILE: Solution/Lab1/server/ProductService/product_service_dal.py function get_product (line 19) | def get_product(event, productId): function delete_product (line 31) | def delete_product(event, productId): function create_product (line 42) | def create_product(event, payload): function update_product (line 63) | def update_product(event, payload, productId): function get_products (line 84) | def get_products(event): FILE: Solution/Lab1/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 14) | def error(log_message): FILE: Solution/Lab1/server/layers/utils.py class StatusCodes (line 11) | class StatusCodes(Enum): function create_success_response (line 16) | def create_success_response(message): function generate_response (line 29) | def generate_response(inputObject): function encode_to_json_object (line 40) | def encode_to_json_object(inputObject): FILE: Solution/Lab2/client/Admin/src/app/app-routing.module.ts class AppRoutingModule (line 48) | class AppRoutingModule {} FILE: Solution/Lab2/client/Admin/src/app/app.component.ts class AppComponent (line 18) | class AppComponent { method constructor (line 19) | constructor( FILE: Solution/Lab2/client/Admin/src/app/app.module.ts class AppModule (line 58) | class AppModule {} FILE: Solution/Lab2/client/Admin/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Solution/Lab2/client/Admin/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Solution/Lab2/client/Admin/src/app/nav/nav.component.ts class NavComponent (line 22) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 52) | ngOnInit(): void { FILE: Solution/Lab2/client/Admin/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Solution/Lab2/client/Admin/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Solution/Lab2/client/Admin/src/app/views/dashboard/dashboard.component.ts type DataSet (line 9) | interface DataSet { type ChartData (line 13) | interface ChartData { class DashboardComponent (line 24) | class DashboardComponent implements OnInit { method constructor (line 25) | constructor(private tenantSvc: TenantsService) {} method random (line 132) | public random(min: number, max: number) { method ngOnInit (line 136) | ngOnInit(): void { FILE: Solution/Lab2/client/Admin/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Solution/Lab2/client/Admin/src/app/views/tenants/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 29) | ngOnInit(): void {} method openErrorMessageSnackBar (line 31) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 37) | submit() { FILE: Solution/Lab2/client/Admin/src/app/views/tenants/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 22) | constructor(private tenantSvc: TenantsService) {} method ngOnInit (line 24) | ngOnInit(): void { FILE: Solution/Lab2/client/Admin/src/app/views/tenants/models/tenant.ts type Tenant (line 1) | interface Tenant { FILE: Solution/Lab2/client/Admin/src/app/views/tenants/tenants-routing.module.ts class TenantsRoutingModule (line 37) | class TenantsRoutingModule {} FILE: Solution/Lab2/client/Admin/src/app/views/tenants/tenants.module.ts class TenantsModule (line 51) | class TenantsModule {} FILE: Solution/Lab2/client/Admin/src/app/views/tenants/tenants.service.ts class TenantsService (line 15) | class TenantsService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 22) | fetch(): Observable { method post (line 26) | post(tenant: Tenant): Observable { FILE: Solution/Lab2/client/Admin/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 33) | ngOnInit(): void {} method openErrorMessageSnackBar (line 35) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 41) | onSubmit() { FILE: Solution/Lab2/client/Admin/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Solution/Lab2/client/Admin/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Solution/Lab2/client/Admin/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Solution/Lab2/client/Admin/src/app/views/users/users.module.ts class UsersModule (line 49) | class UsersModule {} FILE: Solution/Lab2/client/Admin/src/app/views/users/users.service.ts class UsersService (line 26) | class UsersService { method constructor (line 29) | constructor(private http: HttpClient) { method fetch (line 33) | fetch(): Observable { method create (line 37) | create(user: User): Observable { FILE: Solution/Lab2/client/Landing/src/app/app-routing.module.ts class AppRoutingModule (line 31) | class AppRoutingModule {} FILE: Solution/Lab2/client/Landing/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Solution/Lab2/client/Landing/src/app/app.module.ts class AppModule (line 53) | class AppModule {} FILE: Solution/Lab2/client/Landing/src/app/views/landing/landing.component.ts class LandingComponent (line 25) | class LandingComponent implements OnInit { method constructor (line 26) | constructor(private router: Router) {} method ngOnInit (line 28) | ngOnInit() {} method register (line 30) | register() { FILE: Solution/Lab2/client/Landing/src/app/views/register/register.component.ts class RegisterComponent (line 12) | class RegisterComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 28) | ngOnInit(): void {} method openErrorMessageSnackBar (line 30) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 36) | submit() { FILE: Solution/Lab2/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, orderId, orderName, orderProducts): class OrderProduct (line 11) | class OrderProduct: method __init__ (line 13) | def __init__(self, productId, price, quantity): FILE: Solution/Lab2/server/OrderService/order_service.py function get_order (line 12) | def get_order(event, context): function create_order (line 22) | def create_order(event, context): function update_order (line 29) | def update_order(event, context): function delete_order (line 38) | def delete_order(event, context): function get_orders (line 46) | def get_orders(event, context): FILE: Solution/Lab2/server/OrderService/order_service_dal.py function get_order (line 19) | def get_order(event, orderId): function delete_order (line 32) | def delete_order(event, orderId): function create_order (line 44) | def create_order(event, payload): function update_order (line 61) | def update_order(event, payload, orderId): function get_orders (line 80) | def get_orders(event): function get_order_products_dict (line 97) | def get_order_products_dict(orderProducts): FILE: Solution/Lab2/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, productId, sku, name, price, category): class Category (line 13) | class Category: method __init__ (line 14) | def __init__(self, id, name): FILE: Solution/Lab2/server/ProductService/product_service.py function get_product (line 11) | def get_product(event, context): function create_product (line 19) | def create_product(event, context): function update_product (line 27) | def update_product(event, context): function delete_product (line 36) | def delete_product(event, context): function get_products (line 44) | def get_products(event, context): FILE: Solution/Lab2/server/ProductService/product_service_dal.py function get_product (line 19) | def get_product(event, productId): function delete_product (line 31) | def delete_product(event, productId): function create_product (line 42) | def create_product(event, payload): function update_product (line 63) | def update_product(event, payload, productId): function get_products (line 84) | def get_products(event): FILE: Solution/Lab2/server/Resources/shared_service_authorizer.py function lambda_handler (line 22) | def lambda_handler(event, context): function validateJWT (line 79) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 120) | class HttpVerb: class AuthPolicy (line 130) | class AuthPolicy(object): method __init__ (line 155) | def __init__(self, principal, awsAccountId): method _addMethod (line 161) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 193) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 204) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 225) | def allowAllMethods(self): method denyAllMethods (line 229) | def denyAllMethods(self): method allowMethod (line 233) | def allowMethod(self, verb, resource): method denyMethod (line 238) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 243) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 249) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 255) | def build(self): FILE: Solution/Lab2/server/TenantManagementService/tenant-management.py function create_tenant (line 20) | def create_tenant(event, context): function get_tenants (line 41) | def get_tenants(event, context): function update_tenant (line 50) | def update_tenant(event, context): function get_tenant (line 78) | def get_tenant(event, context): function deactivate_tenant (line 100) | def deactivate_tenant(event, context): function activate_tenant (line 131) | def activate_tenant(event, context): function __invoke_disable_users (line 162) | def __invoke_disable_users(headers, auth, host, stage_name, invoke_url, ... function __invoke_enable_users (line 177) | def __invoke_enable_users(headers, auth, host, stage_name, invoke_url, t... class TenantInfo (line 192) | class TenantInfo: method __init__ (line 193) | def __init__(self, tenant_name, tenant_address, tenant_email, tenant_p... FILE: Solution/Lab2/server/TenantManagementService/tenant-registration.py function register_tenant (line 19) | def register_tenant(event, context): function __create_tenant_admin_user (line 46) | def __create_tenant_admin_user(tenant_details, headers, auth, host, stag... function __create_tenant (line 58) | def __create_tenant(tenant_details, headers, auth, host, stage_name): FILE: Solution/Lab2/server/TenantManagementService/user-management.py function create_tenant_admin_user (line 19) | def create_tenant_admin_user(event, context): function create_user (line 43) | def create_user(event, context): function get_users (line 84) | def get_users(event, context): function get_user (line 117) | def get_user(event, context): function update_user (line 126) | def update_user(event, context): function disable_user (line 152) | def disable_user(event, context): function disable_users_by_tenant (line 167) | def disable_users_by_tenant(event, context): function enable_users_by_tenant (line 189) | def enable_users_by_tenant(event, context): function get_user_info (line 209) | def get_user_info(user_pool_id, user_name): class UserManagement (line 227) | class UserManagement: method create_user_group (line 228) | def create_user_group(self, user_pool_id, group_name, group_description): method create_tenant_admin (line 237) | def create_tenant_admin(self, user_pool_id, tenant_admin_user_name, us... method add_user_to_group (line 263) | def add_user_to_group(self, user_pool_id, user_name, group_name): method create_user_tenant_mapping (line 271) | def create_user_tenant_mapping(self, user_name, tenant_id): class UserInfo (line 282) | class UserInfo: method __init__ (line 283) | def __init__(self, user_name=None, tenant_id=None, user_role=None, FILE: Solution/Lab2/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 14) | def error(log_message): FILE: Solution/Lab2/server/layers/utils.py class StatusCodes (line 12) | class StatusCodes(Enum): function create_success_response (line 17) | def create_success_response(message): function generate_response (line 30) | def generate_response(inputObject): function encode_to_json_object (line 41) | def encode_to_json_object(inputObject): function get_auth (line 47) | def get_auth(host, region): function get_headers (line 58) | def get_headers(event): FILE: Solution/Lab3/client/Admin/src/app/app-routing.module.ts class AppRoutingModule (line 48) | class AppRoutingModule {} FILE: Solution/Lab3/client/Admin/src/app/app.component.ts class AppComponent (line 18) | class AppComponent { method constructor (line 19) | constructor( FILE: Solution/Lab3/client/Admin/src/app/app.module.ts class AppModule (line 58) | class AppModule {} FILE: Solution/Lab3/client/Admin/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Solution/Lab3/client/Admin/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Solution/Lab3/client/Admin/src/app/nav/nav.component.ts class NavComponent (line 22) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 52) | ngOnInit(): void { FILE: Solution/Lab3/client/Admin/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Solution/Lab3/client/Admin/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Solution/Lab3/client/Admin/src/app/views/dashboard/dashboard.component.ts type DataSet (line 9) | interface DataSet { type ChartData (line 13) | interface ChartData { class DashboardComponent (line 24) | class DashboardComponent implements OnInit { method constructor (line 25) | constructor(private tenantSvc: TenantsService) {} method random (line 132) | public random(min: number, max: number) { method ngOnInit (line 136) | ngOnInit(): void { FILE: Solution/Lab3/client/Admin/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Solution/Lab3/client/Admin/src/app/views/tenants/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 29) | ngOnInit(): void {} method openErrorMessageSnackBar (line 31) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 37) | submit() { FILE: Solution/Lab3/client/Admin/src/app/views/tenants/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 22) | constructor(private tenantSvc: TenantsService) {} method ngOnInit (line 24) | ngOnInit(): void { FILE: Solution/Lab3/client/Admin/src/app/views/tenants/models/tenant.ts type Tenant (line 1) | interface Tenant { FILE: Solution/Lab3/client/Admin/src/app/views/tenants/tenants-routing.module.ts class TenantsRoutingModule (line 37) | class TenantsRoutingModule {} FILE: Solution/Lab3/client/Admin/src/app/views/tenants/tenants.module.ts class TenantsModule (line 51) | class TenantsModule {} FILE: Solution/Lab3/client/Admin/src/app/views/tenants/tenants.service.ts class TenantsService (line 15) | class TenantsService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 22) | fetch(): Observable { method post (line 26) | post(tenant: Tenant): Observable { FILE: Solution/Lab3/client/Admin/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 33) | ngOnInit(): void {} method openErrorMessageSnackBar (line 35) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 41) | onSubmit() { FILE: Solution/Lab3/client/Admin/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Solution/Lab3/client/Admin/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Solution/Lab3/client/Admin/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Solution/Lab3/client/Admin/src/app/views/users/users.module.ts class UsersModule (line 49) | class UsersModule {} FILE: Solution/Lab3/client/Admin/src/app/views/users/users.service.ts class UsersService (line 26) | class UsersService { method constructor (line 29) | constructor(private http: HttpClient) { method fetch (line 33) | fetch(): Observable { method create (line 37) | create(user: User): Observable { FILE: Solution/Lab3/client/Application/cypress.config.ts method setupNodeEvents (line 6) | setupNodeEvents(on, config) { FILE: Solution/Lab3/client/Application/src/app/app-routing.module.ts class AppRoutingModule (line 62) | class AppRoutingModule {} FILE: Solution/Lab3/client/Application/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Solution/Lab3/client/Application/src/app/app.module.ts class AppModule (line 86) | class AppModule {} FILE: Solution/Lab3/client/Application/src/app/cognito.guard.ts class CognitoGuard (line 16) | class CognitoGuard implements CanActivate { method constructor (line 17) | constructor( method canActivate (line 22) | canActivate( FILE: Solution/Lab3/client/Application/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Solution/Lab3/client/Application/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Solution/Lab3/client/Application/src/app/nav/nav.component.ts class NavComponent (line 23) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 54) | ngOnInit(): void { method logout (line 85) | async logout() { FILE: Solution/Lab3/client/Application/src/app/views/auth/auth-configuration.service.ts class AuthConfigurationService (line 36) | class AuthConfigurationService { method constructor (line 41) | constructor( method setTenantConfig (line 47) | public setTenantConfig(tenantName: string): Promise { method configureAmplifyAuth (line 69) | configureAmplifyAuth(): boolean { method cleanLocalStorage (line 93) | cleanLocalStorage() { FILE: Solution/Lab3/client/Application/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Solution/Lab3/client/Application/src/app/views/auth/models/config-params.ts type ConfigParams (line 17) | interface ConfigParams { FILE: Solution/Lab3/client/Application/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Solution/Lab3/client/Application/src/app/views/dashboard/dashboard.component.ts class DashboardComponent (line 13) | class DashboardComponent { method chartClicked (line 48) | public chartClicked({ method chartHovered (line 56) | public chartHovered({ method randomize (line 64) | public randomize(): void { method constructor (line 99) | constructor(private breakpointObserver: BreakpointObserver) {} FILE: Solution/Lab3/client/Application/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Solution/Lab3/client/Application/src/app/views/error/404.component.ts class P404Component (line 10) | class P404Component { method constructor (line 11) | constructor() {} FILE: Solution/Lab3/client/Application/src/app/views/error/500.component.ts class P500Component (line 10) | class P500Component { method constructor (line 11) | constructor() {} FILE: Solution/Lab3/client/Application/src/app/views/error/unauthorized.component.ts class UnauthorizedComponent (line 30) | class UnauthorizedComponent implements OnInit { method constructor (line 37) | constructor( method ngOnInit (line 60) | ngOnInit(): void { method isFieldInvalid (line 66) | isFieldInvalid(field: string) { method displayFieldCss (line 73) | displayFieldCss(field: string) { method hasRequiredError (line 79) | hasRequiredError(field: string) { method openErrorMessageSnackBar (line 83) | openErrorMessageSnackBar(errorMessage: string) { method login (line 89) | login() { FILE: Solution/Lab3/client/Application/src/app/views/orders/create/create.component.ts type LineItem (line 9) | interface LineItem { class CreateComponent (line 18) | class CreateComponent implements OnInit { method constructor (line 24) | constructor( method ngOnInit (line 35) | ngOnInit(): void { method name (line 45) | get name() { method productQuantity (line 49) | get productQuantity() { method add (line 55) | add(op: LineItem) { method remove (line 70) | remove(op: LineItem) { method submit (line 88) | submit() { FILE: Solution/Lab3/client/Application/src/app/views/orders/detail/detail.component.ts class DetailComponent (line 17) | class DetailComponent implements OnInit { method constructor (line 22) | constructor(private route: ActivatedRoute, private orderSvc: OrdersSer... method ngOnInit (line 24) | ngOnInit(): void { method today (line 30) | today() { method tenantName (line 34) | tenantName() { method sum (line 38) | sum(op: OrderProduct) { method tax (line 42) | tax(op: OrderProduct) { method total (line 46) | total(op: OrderProduct) { method subTotal (line 50) | subTotal(order: Order) { method calcTax (line 56) | calcTax(order: Order) { method final (line 60) | final(order: Order) { FILE: Solution/Lab3/client/Application/src/app/views/orders/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 15) | constructor(private orderSvc: OrdersService, private router: Router) {} method ngOnInit (line 17) | ngOnInit(): void { method sum (line 24) | sum(order: Order): number { FILE: Solution/Lab3/client/Application/src/app/views/orders/models/order.interface.ts type Order (line 7) | interface Order { FILE: Solution/Lab3/client/Application/src/app/views/orders/models/orderproduct.interface.ts type OrderProduct (line 5) | interface OrderProduct { FILE: Solution/Lab3/client/Application/src/app/views/orders/orders-routing.module.ts class OrdersRoutingModule (line 44) | class OrdersRoutingModule {} FILE: Solution/Lab3/client/Application/src/app/views/orders/orders.module.ts class OrdersModule (line 51) | class OrdersModule {} FILE: Solution/Lab3/client/Application/src/app/views/orders/orders.service.ts class OrdersService (line 13) | class OrdersService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 18) | fetch(): Observable { method get (line 22) | get(orderId: string): Observable { method create (line 27) | create(order: Order): Observable { FILE: Solution/Lab3/client/Application/src/app/views/products/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 15) | constructor( method ngOnInit (line 23) | ngOnInit(): void { method name (line 32) | get name() { method price (line 36) | get price() { method submit (line 40) | submit() { method cancel (line 50) | cancel() { FILE: Solution/Lab3/client/Application/src/app/views/products/edit/edit.component.ts class EditComponent (line 18) | class EditComponent implements OnInit { method constructor (line 25) | constructor( method ngOnInit (line 34) | ngOnInit(): void { method name (line 57) | get name() { method price (line 61) | get price() { method submit (line 65) | submit() { method delete (line 72) | delete() { method cancel (line 82) | cancel() { FILE: Solution/Lab3/client/Application/src/app/views/products/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 16) | constructor(private productSvc: ProductService, private router: Router... method ngOnInit (line 18) | ngOnInit(): void { method onEdit (line 25) | onEdit(product: Product) { method onRemove (line 30) | onRemove(product: Product) { method onCreate (line 39) | onCreate() { FILE: Solution/Lab3/client/Application/src/app/views/products/models/product.interface.ts type Product (line 5) | interface Product { FILE: Solution/Lab3/client/Application/src/app/views/products/product.service.ts class ProductService (line 13) | class ProductService { method constructor (line 14) | constructor(private http: HttpClient) {} method fetch (line 17) | fetch(): Observable { method get (line 21) | get(productId: string): Observable { method delete (line 26) | delete(product: Product) { method put (line 31) | put(product: Product) { method post (line 36) | post(product: Product) { FILE: Solution/Lab3/client/Application/src/app/views/products/products-routing.module.ts class ProductsRoutingModule (line 44) | class ProductsRoutingModule {} FILE: Solution/Lab3/client/Application/src/app/views/products/products.module.ts class ProductsModule (line 48) | class ProductsModule {} FILE: Solution/Lab3/client/Application/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 32) | ngOnInit(): void {} method openErrorMessageSnackBar (line 34) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 40) | onSubmit() { FILE: Solution/Lab3/client/Application/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Solution/Lab3/client/Application/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Solution/Lab3/client/Application/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Solution/Lab3/client/Application/src/app/views/users/users.module.ts class UsersModule (line 50) | class UsersModule {} FILE: Solution/Lab3/client/Application/src/app/views/users/users.service.ts class UsersService (line 27) | class UsersService { method constructor (line 30) | constructor(private http: HttpClient) { method fetch (line 34) | fetch(): Observable { method create (line 38) | create(user: User): Observable { method update (line 42) | update(email: string, user: User) {} FILE: Solution/Lab3/client/Landing/src/app/app-routing.module.ts class AppRoutingModule (line 31) | class AppRoutingModule {} FILE: Solution/Lab3/client/Landing/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Solution/Lab3/client/Landing/src/app/app.module.ts class AppModule (line 53) | class AppModule {} FILE: Solution/Lab3/client/Landing/src/app/views/landing/landing.component.ts class LandingComponent (line 25) | class LandingComponent implements OnInit { method constructor (line 26) | constructor(private router: Router) {} method ngOnInit (line 28) | ngOnInit() {} method register (line 30) | register() { FILE: Solution/Lab3/client/Landing/src/app/views/register/register.component.ts class RegisterComponent (line 12) | class RegisterComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 28) | ngOnInit(): void {} method openErrorMessageSnackBar (line 30) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 36) | submit() { FILE: Solution/Lab3/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, shardId, orderId, orderName, orderProducts): class OrderProduct (line 13) | class OrderProduct: method __init__ (line 15) | def __init__(self, productId, price, quantity): FILE: Solution/Lab3/server/OrderService/order_service.py function get_order (line 15) | def get_order(event, context): function create_order (line 30) | def create_order(event, context): function update_order (line 42) | def update_order(event, context): function delete_order (line 56) | def delete_order(event, context): function get_orders (line 69) | def get_orders(event, context): FILE: Solution/Lab3/server/OrderService/order_service_dal.py function get_order (line 27) | def get_order(event, key): function delete_order (line 46) | def delete_order(event, key): function create_order (line 62) | def create_order(event, payload): function update_order (line 85) | def update_order(event, payload, key): function get_orders (line 111) | def get_orders(event, tenantId): function __query_all_partitions (line 123) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 139) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function get_order_products_dict (line 150) | def get_order_products_dict(orderProducts): FILE: Solution/Lab3/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, shardId, productId, sku, name, price, category): class Category (line 15) | class Category: method __init__ (line 16) | def __init__(self, id, name): FILE: Solution/Lab3/server/ProductService/product_service.py function get_product (line 15) | def get_product(event, context): function create_product (line 31) | def create_product(event, context): function update_product (line 43) | def update_product(event, context): function delete_product (line 57) | def delete_product(event, context): function get_products (line 70) | def get_products(event, context): FILE: Solution/Lab3/server/ProductService/product_service_dal.py function get_product (line 27) | def get_product(event, key): function delete_product (line 45) | def delete_product(event, key): function create_product (line 60) | def create_product(event, payload): function update_product (line 90) | def update_product(event, payload, key): function get_products (line 119) | def get_products(event, tenantId): function __query_all_partitions (line 130) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 146) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... FILE: Solution/Lab3/server/Resources/shared_service_authorizer.py function lambda_handler (line 25) | def lambda_handler(event, context): function validateJWT (line 99) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 140) | class HttpVerb: class AuthPolicy (line 150) | class AuthPolicy(object): method __init__ (line 175) | def __init__(self, principal, awsAccountId): method _addMethod (line 181) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 213) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 224) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 245) | def allowAllMethods(self): method denyAllMethods (line 249) | def denyAllMethods(self): method allowMethod (line 253) | def allowMethod(self, verb, resource): method denyMethod (line 258) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 263) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 269) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 275) | def build(self): FILE: Solution/Lab3/server/Resources/tenant_authorizer.py function lambda_handler (line 21) | def lambda_handler(event, context): function validateJWT (line 74) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 115) | class HttpVerb: class AuthPolicy (line 125) | class AuthPolicy(object): method __init__ (line 150) | def __init__(self, principal, awsAccountId): method _addMethod (line 156) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 188) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 199) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 220) | def allowAllMethods(self): method denyAllMethods (line 224) | def denyAllMethods(self): method allowMethod (line 228) | def allowMethod(self, verb, resource): method denyMethod (line 233) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 238) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 244) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 250) | def build(self): FILE: Solution/Lab3/server/TenantManagementService/tenant-management.py function create_tenant (line 25) | def create_tenant(event, context): function get_tenants (line 46) | def get_tenants(event, context): function update_tenant (line 56) | def update_tenant(event, context): function get_tenant (line 95) | def get_tenant(event, context): function deactivate_tenant (line 127) | def deactivate_tenant(event, context): function activate_tenant (line 170) | def activate_tenant(event, context): function __invoke_disable_users (line 212) | def __invoke_disable_users(update_details, headers, auth, host, stage_na... function __invoke_enable_users (line 227) | def __invoke_enable_users(update_details, headers, auth, host, stage_nam... class TenantInfo (line 242) | class TenantInfo: method __init__ (line 243) | def __init__(self, tenant_name, tenant_address, tenant_email, tenant_p... FILE: Solution/Lab3/server/TenantManagementService/tenant-registration.py function register_tenant (line 19) | def register_tenant(event, context): function __create_tenant_admin_user (line 46) | def __create_tenant_admin_user(tenant_details, headers, auth, host, stag... function __create_tenant (line 58) | def __create_tenant(tenant_details, headers, auth, host, stage_name): FILE: Solution/Lab3/server/TenantManagementService/user-management.py function create_tenant_admin_user (line 23) | def create_tenant_admin_user(event, context): function create_user (line 47) | def create_user(event, context): function get_users (line 101) | def get_users(event, context): function get_user (line 145) | def get_user(event, context): function update_user (line 165) | def update_user(event, context): function disable_user (line 204) | def disable_user(event, context): function disable_users_by_tenant (line 230) | def disable_users_by_tenant(event, context): function enable_users_by_tenant (line 259) | def enable_users_by_tenant(event, context): function get_user_info (line 286) | def get_user_info(event, user_pool_id, user_name): class UserManagement (line 306) | class UserManagement: method create_user_group (line 307) | def create_user_group(self, user_pool_id, group_name, group_description): method create_tenant_admin (line 316) | def create_tenant_admin(self, user_pool_id, tenant_admin_user_name, us... method add_user_to_group (line 342) | def add_user_to_group(self, user_pool_id, user_name, group_name): method create_user_tenant_mapping (line 350) | def create_user_tenant_mapping(self, user_name, tenant_id): class UserInfo (line 361) | class UserInfo: method __init__ (line 362) | def __init__(self, user_name=None, tenant_id=None, user_role=None, FILE: Solution/Lab3/server/layers/auth_manager.py class UserRoles (line 8) | class UserRoles: function isTenantAdmin (line 14) | def isTenantAdmin(user_role): function isSystemAdmin (line 20) | def isSystemAdmin(user_role): function isSaaSProvider (line 27) | def isSaaSProvider(user_role): function isTenantUser (line 32) | def isTenantUser(user_role): FILE: Solution/Lab3/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 14) | def error(log_message): function log_with_tenant_context (line 17) | def log_with_tenant_context(event, log_message): FILE: Solution/Lab3/server/layers/metrics_manager.py function record_metric (line 10) | def record_metric(event, metric_name, metric_unit, metric_value): FILE: Solution/Lab3/server/layers/utils.py class StatusCodes (line 12) | class StatusCodes(Enum): function create_success_response (line 17) | def create_success_response(message): function create_unauthorized_response (line 30) | def create_unauthorized_response(): function generate_response (line 43) | def generate_response(inputObject): function encode_to_json_object (line 54) | def encode_to_json_object(inputObject): function get_auth (line 60) | def get_auth(host, region): function get_headers (line 71) | def get_headers(event): FILE: Solution/Lab4/client/Admin/src/app/app-routing.module.ts class AppRoutingModule (line 48) | class AppRoutingModule {} FILE: Solution/Lab4/client/Admin/src/app/app.component.ts class AppComponent (line 18) | class AppComponent { method constructor (line 19) | constructor( FILE: Solution/Lab4/client/Admin/src/app/app.module.ts class AppModule (line 58) | class AppModule {} FILE: Solution/Lab4/client/Admin/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Solution/Lab4/client/Admin/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Solution/Lab4/client/Admin/src/app/nav/nav.component.ts class NavComponent (line 22) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 52) | ngOnInit(): void { FILE: Solution/Lab4/client/Admin/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Solution/Lab4/client/Admin/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Solution/Lab4/client/Admin/src/app/views/dashboard/dashboard.component.ts type DataSet (line 9) | interface DataSet { type ChartData (line 13) | interface ChartData { class DashboardComponent (line 24) | class DashboardComponent implements OnInit { method constructor (line 25) | constructor(private tenantSvc: TenantsService) {} method random (line 132) | public random(min: number, max: number) { method ngOnInit (line 136) | ngOnInit(): void { FILE: Solution/Lab4/client/Admin/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Solution/Lab4/client/Admin/src/app/views/tenants/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 29) | ngOnInit(): void {} method openErrorMessageSnackBar (line 31) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 37) | submit() { FILE: Solution/Lab4/client/Admin/src/app/views/tenants/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 22) | constructor(private tenantSvc: TenantsService) {} method ngOnInit (line 24) | ngOnInit(): void { FILE: Solution/Lab4/client/Admin/src/app/views/tenants/models/tenant.ts type Tenant (line 1) | interface Tenant { FILE: Solution/Lab4/client/Admin/src/app/views/tenants/tenants-routing.module.ts class TenantsRoutingModule (line 37) | class TenantsRoutingModule {} FILE: Solution/Lab4/client/Admin/src/app/views/tenants/tenants.module.ts class TenantsModule (line 51) | class TenantsModule {} FILE: Solution/Lab4/client/Admin/src/app/views/tenants/tenants.service.ts class TenantsService (line 15) | class TenantsService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 22) | fetch(): Observable { method post (line 26) | post(tenant: Tenant): Observable { FILE: Solution/Lab4/client/Admin/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 33) | ngOnInit(): void {} method openErrorMessageSnackBar (line 35) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 41) | onSubmit() { FILE: Solution/Lab4/client/Admin/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Solution/Lab4/client/Admin/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Solution/Lab4/client/Admin/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Solution/Lab4/client/Admin/src/app/views/users/users.module.ts class UsersModule (line 49) | class UsersModule {} FILE: Solution/Lab4/client/Admin/src/app/views/users/users.service.ts class UsersService (line 26) | class UsersService { method constructor (line 29) | constructor(private http: HttpClient) { method fetch (line 33) | fetch(): Observable { method create (line 37) | create(user: User): Observable { FILE: Solution/Lab4/client/Application/cypress.config.ts method setupNodeEvents (line 6) | setupNodeEvents(on, config) { FILE: Solution/Lab4/client/Application/src/app/app-routing.module.ts class AppRoutingModule (line 62) | class AppRoutingModule {} FILE: Solution/Lab4/client/Application/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Solution/Lab4/client/Application/src/app/app.module.ts class AppModule (line 87) | class AppModule {} FILE: Solution/Lab4/client/Application/src/app/cognito.guard.ts class CognitoGuard (line 16) | class CognitoGuard implements CanActivate { method constructor (line 17) | constructor( method canActivate (line 22) | canActivate( FILE: Solution/Lab4/client/Application/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Solution/Lab4/client/Application/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Solution/Lab4/client/Application/src/app/nav/nav.component.ts class NavComponent (line 23) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 54) | ngOnInit(): void { method logout (line 85) | async logout() { FILE: Solution/Lab4/client/Application/src/app/views/auth/auth-configuration.service.ts class AuthConfigurationService (line 36) | class AuthConfigurationService { method constructor (line 41) | constructor( method setTenantConfig (line 47) | public setTenantConfig(tenantName: string): Promise { method configureAmplifyAuth (line 69) | configureAmplifyAuth(): boolean { method cleanLocalStorage (line 93) | cleanLocalStorage() { FILE: Solution/Lab4/client/Application/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Solution/Lab4/client/Application/src/app/views/auth/models/config-params.ts type ConfigParams (line 17) | interface ConfigParams { FILE: Solution/Lab4/client/Application/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Solution/Lab4/client/Application/src/app/views/dashboard/dashboard.component.ts class DashboardComponent (line 13) | class DashboardComponent { method chartClicked (line 48) | public chartClicked({ method chartHovered (line 56) | public chartHovered({ method randomize (line 64) | public randomize(): void { method constructor (line 99) | constructor(private breakpointObserver: BreakpointObserver) {} FILE: Solution/Lab4/client/Application/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Solution/Lab4/client/Application/src/app/views/error/404.component.ts class P404Component (line 10) | class P404Component { method constructor (line 11) | constructor() {} FILE: Solution/Lab4/client/Application/src/app/views/error/500.component.ts class P500Component (line 10) | class P500Component { method constructor (line 11) | constructor() {} FILE: Solution/Lab4/client/Application/src/app/views/error/unauthorized.component.ts class UnauthorizedComponent (line 30) | class UnauthorizedComponent implements OnInit { method constructor (line 37) | constructor( method ngOnInit (line 60) | ngOnInit(): void { method isFieldInvalid (line 66) | isFieldInvalid(field: string) { method displayFieldCss (line 73) | displayFieldCss(field: string) { method hasRequiredError (line 79) | hasRequiredError(field: string) { method openErrorMessageSnackBar (line 83) | openErrorMessageSnackBar(errorMessage: string) { method login (line 89) | login() { FILE: Solution/Lab4/client/Application/src/app/views/orders/create/create.component.ts type LineItem (line 9) | interface LineItem { class CreateComponent (line 18) | class CreateComponent implements OnInit { method constructor (line 24) | constructor( method ngOnInit (line 35) | ngOnInit(): void { method name (line 45) | get name() { method productQuantity (line 49) | get productQuantity() { method add (line 55) | add(op: LineItem) { method remove (line 70) | remove(op: LineItem) { method submit (line 88) | submit() { FILE: Solution/Lab4/client/Application/src/app/views/orders/detail/detail.component.ts class DetailComponent (line 17) | class DetailComponent implements OnInit { method constructor (line 22) | constructor(private route: ActivatedRoute, private orderSvc: OrdersSer... method ngOnInit (line 24) | ngOnInit(): void { method today (line 30) | today() { method tenantName (line 34) | tenantName() { method sum (line 38) | sum(op: OrderProduct) { method tax (line 42) | tax(op: OrderProduct) { method total (line 46) | total(op: OrderProduct) { method subTotal (line 50) | subTotal(order: Order) { method calcTax (line 56) | calcTax(order: Order) { method final (line 60) | final(order: Order) { FILE: Solution/Lab4/client/Application/src/app/views/orders/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 15) | constructor(private orderSvc: OrdersService, private router: Router) {} method ngOnInit (line 17) | ngOnInit(): void { method sum (line 24) | sum(order: Order): number { FILE: Solution/Lab4/client/Application/src/app/views/orders/models/order.interface.ts type Order (line 7) | interface Order { FILE: Solution/Lab4/client/Application/src/app/views/orders/models/orderproduct.interface.ts type OrderProduct (line 5) | interface OrderProduct { FILE: Solution/Lab4/client/Application/src/app/views/orders/orders-routing.module.ts class OrdersRoutingModule (line 44) | class OrdersRoutingModule {} FILE: Solution/Lab4/client/Application/src/app/views/orders/orders.module.ts class OrdersModule (line 51) | class OrdersModule {} FILE: Solution/Lab4/client/Application/src/app/views/orders/orders.service.ts class OrdersService (line 13) | class OrdersService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 18) | fetch(): Observable { method get (line 22) | get(orderId: string): Observable { method create (line 27) | create(order: Order): Observable { FILE: Solution/Lab4/client/Application/src/app/views/products/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 15) | constructor( method ngOnInit (line 23) | ngOnInit(): void { method name (line 32) | get name() { method price (line 36) | get price() { method submit (line 40) | submit() { method cancel (line 50) | cancel() { FILE: Solution/Lab4/client/Application/src/app/views/products/edit/edit.component.ts class EditComponent (line 17) | class EditComponent implements OnInit { method constructor (line 23) | constructor( method ngOnInit (line 30) | ngOnInit(): void { method name (line 51) | get name() { method price (line 55) | get price() { method submit (line 59) | submit() { method delete (line 66) | delete() { method cancel (line 76) | cancel() { FILE: Solution/Lab4/client/Application/src/app/views/products/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 16) | constructor(private productSvc: ProductService, private router: Router... method ngOnInit (line 18) | ngOnInit(): void { method onEdit (line 25) | onEdit(product: Product) { method onRemove (line 30) | onRemove(product: Product) { method onCreate (line 39) | onCreate() { FILE: Solution/Lab4/client/Application/src/app/views/products/models/product.interface.ts type Product (line 5) | interface Product { FILE: Solution/Lab4/client/Application/src/app/views/products/product.service.ts class ProductService (line 13) | class ProductService { method constructor (line 14) | constructor(private http: HttpClient) {} method fetch (line 17) | fetch(): Observable { method get (line 21) | get(productId: string): Observable { method delete (line 26) | delete(product: Product) { method put (line 31) | put(product: Product) { method post (line 35) | post(product: Product) { FILE: Solution/Lab4/client/Application/src/app/views/products/products-routing.module.ts class ProductsRoutingModule (line 44) | class ProductsRoutingModule {} FILE: Solution/Lab4/client/Application/src/app/views/products/products.module.ts class ProductsModule (line 48) | class ProductsModule {} FILE: Solution/Lab4/client/Application/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 32) | ngOnInit(): void {} method openErrorMessageSnackBar (line 34) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 40) | onSubmit() { FILE: Solution/Lab4/client/Application/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Solution/Lab4/client/Application/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Solution/Lab4/client/Application/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Solution/Lab4/client/Application/src/app/views/users/users.module.ts class UsersModule (line 50) | class UsersModule {} FILE: Solution/Lab4/client/Application/src/app/views/users/users.service.ts class UsersService (line 27) | class UsersService { method constructor (line 30) | constructor(private http: HttpClient) { method fetch (line 34) | fetch(): Observable { method create (line 38) | create(user: User): Observable { method update (line 42) | update(email: string, user: User) {} FILE: Solution/Lab4/client/Landing/src/app/app-routing.module.ts class AppRoutingModule (line 31) | class AppRoutingModule {} FILE: Solution/Lab4/client/Landing/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Solution/Lab4/client/Landing/src/app/app.module.ts class AppModule (line 53) | class AppModule {} FILE: Solution/Lab4/client/Landing/src/app/views/landing/landing.component.ts class LandingComponent (line 25) | class LandingComponent implements OnInit { method constructor (line 26) | constructor(private router: Router) {} method ngOnInit (line 28) | ngOnInit() {} method register (line 30) | register() { FILE: Solution/Lab4/client/Landing/src/app/views/register/register.component.ts class RegisterComponent (line 12) | class RegisterComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 28) | ngOnInit(): void {} method openErrorMessageSnackBar (line 30) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 36) | submit() { FILE: Solution/Lab4/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, shardId, orderId, orderName, orderProducts): class OrderProduct (line 13) | class OrderProduct: method __init__ (line 15) | def __init__(self, productId, price, quantity): FILE: Solution/Lab4/server/OrderService/order_service.py function get_order (line 15) | def get_order(event, context): function create_order (line 30) | def create_order(event, context): function update_order (line 42) | def update_order(event, context): function delete_order (line 56) | def delete_order(event, context): function get_orders (line 69) | def get_orders(event, context): FILE: Solution/Lab4/server/OrderService/order_service_dal.py function get_order (line 26) | def get_order(event, key): function delete_order (line 46) | def delete_order(event, key): function create_order (line 63) | def create_order(event, payload): function update_order (line 87) | def update_order(event, payload, key): function get_orders (line 113) | def get_orders(event, tenantId): function __query_all_partitions (line 126) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 142) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 152) | def __get_dynamodb_table(event, dynamodb): function get_order_products_dict (line 172) | def get_order_products_dict(orderProducts): FILE: Solution/Lab4/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, shardId, productId, sku, name, price, category): class Category (line 15) | class Category: method __init__ (line 16) | def __init__(self, id, name): FILE: Solution/Lab4/server/ProductService/product_service.py function get_product (line 15) | def get_product(event, context): function create_product (line 31) | def create_product(event, context): function update_product (line 43) | def update_product(event, context): function delete_product (line 57) | def delete_product(event, context): function get_products (line 70) | def get_products(event, context): FILE: Solution/Lab4/server/ProductService/product_service_dal.py function get_product (line 26) | def get_product(event, key): function delete_product (line 45) | def delete_product(event, key): function create_product (line 61) | def create_product(event, payload): function update_product (line 91) | def update_product(event, payload, key): function get_products (line 120) | def get_products(event, tenantId): function __query_all_partitions (line 132) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 148) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 158) | def __get_dynamodb_table(event, dynamodb): FILE: Solution/Lab4/server/Resources/shared_service_authorizer.py function lambda_handler (line 25) | def lambda_handler(event, context): function validateJWT (line 124) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 165) | class HttpVerb: class AuthPolicy (line 175) | class AuthPolicy(object): method __init__ (line 200) | def __init__(self, principal, awsAccountId): method _addMethod (line 206) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 238) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 249) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 270) | def allowAllMethods(self): method denyAllMethods (line 274) | def denyAllMethods(self): method allowMethod (line 278) | def allowMethod(self, verb, resource): method denyMethod (line 283) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 288) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 294) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 300) | def build(self): FILE: Solution/Lab4/server/Resources/tenant_authorizer.py function lambda_handler (line 22) | def lambda_handler(event, context): function validateJWT (line 105) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 146) | class HttpVerb: class AuthPolicy (line 156) | class AuthPolicy(object): method __init__ (line 181) | def __init__(self, principal, awsAccountId): method _addMethod (line 187) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 219) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 230) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 251) | def allowAllMethods(self): method denyAllMethods (line 255) | def denyAllMethods(self): method allowMethod (line 259) | def allowMethod(self, verb, resource): method denyMethod (line 264) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 269) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 275) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 281) | def build(self): FILE: Solution/Lab4/server/TenantManagementService/tenant-management.py function create_tenant (line 25) | def create_tenant(event, context): function get_tenants (line 46) | def get_tenants(event, context): function update_tenant (line 56) | def update_tenant(event, context): function get_tenant (line 95) | def get_tenant(event, context): function deactivate_tenant (line 127) | def deactivate_tenant(event, context): function activate_tenant (line 170) | def activate_tenant(event, context): function __invoke_disable_users (line 212) | def __invoke_disable_users(update_details, headers, auth, host, stage_na... function __invoke_enable_users (line 227) | def __invoke_enable_users(update_details, headers, auth, host, stage_nam... class TenantInfo (line 242) | class TenantInfo: method __init__ (line 243) | def __init__(self, tenant_name, tenant_address, tenant_email, tenant_p... FILE: Solution/Lab4/server/TenantManagementService/tenant-registration.py function register_tenant (line 19) | def register_tenant(event, context): function __create_tenant_admin_user (line 46) | def __create_tenant_admin_user(tenant_details, headers, auth, host, stag... function __create_tenant (line 58) | def __create_tenant(tenant_details, headers, auth, host, stage_name): FILE: Solution/Lab4/server/TenantManagementService/user-management.py function create_tenant_admin_user (line 23) | def create_tenant_admin_user(event, context): function create_user (line 47) | def create_user(event, context): function get_users (line 101) | def get_users(event, context): function get_user (line 145) | def get_user(event, context): function update_user (line 168) | def update_user(event, context): function disable_user (line 211) | def disable_user(event, context): function disable_users_by_tenant (line 241) | def disable_users_by_tenant(event, context): function enable_users_by_tenant (line 270) | def enable_users_by_tenant(event, context): function get_user_info (line 297) | def get_user_info(event, user_pool_id, user_name): class UserManagement (line 317) | class UserManagement: method create_user_group (line 318) | def create_user_group(self, user_pool_id, group_name, group_description): method create_tenant_admin (line 327) | def create_tenant_admin(self, user_pool_id, tenant_admin_user_name, us... method add_user_to_group (line 353) | def add_user_to_group(self, user_pool_id, user_name, group_name): method create_user_tenant_mapping (line 361) | def create_user_tenant_mapping(self, user_name, tenant_id): class UserInfo (line 372) | class UserInfo: method __init__ (line 373) | def __init__(self, user_name=None, tenant_id=None, user_role=None, FILE: Solution/Lab4/server/layers/auth_manager.py class UserRoles (line 8) | class UserRoles: function isTenantAdmin (line 14) | def isTenantAdmin(user_role): function isSystemAdmin (line 20) | def isSystemAdmin(user_role): function isSaaSProvider (line 27) | def isSaaSProvider(user_role): function isTenantUser (line 32) | def isTenantUser(user_role): function getPolicyForUser (line 38) | def getPolicyForUser(user_role, service_identifier, tenant_id, region, a... function __getPolicyForSystemAdmin (line 59) | def __getPolicyForSystemAdmin(region, aws_account_id): function __getPolicyForTenantAdmin (line 82) | def __getPolicyForTenantAdmin(tenant_id, sevice_identifier, region, aws_... function __getPolicyForTenantUser (line 171) | def __getPolicyForTenantUser(tenant_id, region, aws_account_id): FILE: Solution/Lab4/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 14) | def error(log_message): function log_with_tenant_context (line 17) | def log_with_tenant_context(event, log_message): FILE: Solution/Lab4/server/layers/metrics_manager.py function record_metric (line 10) | def record_metric(event, metric_name, metric_unit, metric_value): FILE: Solution/Lab4/server/layers/utils.py class StatusCodes (line 12) | class StatusCodes(Enum): class Service_Identifier (line 17) | class Service_Identifier(Enum): function create_success_response (line 21) | def create_success_response(message): function create_unauthorized_response (line 34) | def create_unauthorized_response(): function generate_response (line 47) | def generate_response(inputObject): function encode_to_json_object (line 58) | def encode_to_json_object(inputObject): function get_auth (line 64) | def get_auth(host, region): function get_headers (line 75) | def get_headers(event): FILE: Solution/Lab5/client/Admin/src/app/app-routing.module.ts class AppRoutingModule (line 48) | class AppRoutingModule {} FILE: Solution/Lab5/client/Admin/src/app/app.component.ts class AppComponent (line 18) | class AppComponent { method constructor (line 19) | constructor( FILE: Solution/Lab5/client/Admin/src/app/app.module.ts class AppModule (line 58) | class AppModule {} FILE: Solution/Lab5/client/Admin/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Solution/Lab5/client/Admin/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Solution/Lab5/client/Admin/src/app/nav/nav.component.ts class NavComponent (line 22) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 52) | ngOnInit(): void { FILE: Solution/Lab5/client/Admin/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Solution/Lab5/client/Admin/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Solution/Lab5/client/Admin/src/app/views/dashboard/dashboard.component.ts type DataSet (line 9) | interface DataSet { type ChartData (line 13) | interface ChartData { class DashboardComponent (line 24) | class DashboardComponent implements OnInit { method constructor (line 25) | constructor(private tenantSvc: TenantsService) {} method random (line 132) | public random(min: number, max: number) { method ngOnInit (line 136) | ngOnInit(): void { FILE: Solution/Lab5/client/Admin/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Solution/Lab5/client/Admin/src/app/views/tenants/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 29) | ngOnInit(): void {} method openErrorMessageSnackBar (line 31) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 37) | submit() { FILE: Solution/Lab5/client/Admin/src/app/views/tenants/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 22) | constructor(private tenantSvc: TenantsService) {} method ngOnInit (line 24) | ngOnInit(): void { FILE: Solution/Lab5/client/Admin/src/app/views/tenants/models/tenant.ts type Tenant (line 1) | interface Tenant { FILE: Solution/Lab5/client/Admin/src/app/views/tenants/tenants-routing.module.ts class TenantsRoutingModule (line 37) | class TenantsRoutingModule {} FILE: Solution/Lab5/client/Admin/src/app/views/tenants/tenants.module.ts class TenantsModule (line 51) | class TenantsModule {} FILE: Solution/Lab5/client/Admin/src/app/views/tenants/tenants.service.ts class TenantsService (line 15) | class TenantsService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 22) | fetch(): Observable { method post (line 26) | post(tenant: Tenant): Observable { FILE: Solution/Lab5/client/Admin/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 33) | ngOnInit(): void {} method openErrorMessageSnackBar (line 35) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 41) | onSubmit() { FILE: Solution/Lab5/client/Admin/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Solution/Lab5/client/Admin/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Solution/Lab5/client/Admin/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Solution/Lab5/client/Admin/src/app/views/users/users.module.ts class UsersModule (line 49) | class UsersModule {} FILE: Solution/Lab5/client/Admin/src/app/views/users/users.service.ts class UsersService (line 26) | class UsersService { method constructor (line 29) | constructor(private http: HttpClient) { method fetch (line 33) | fetch(): Observable { method create (line 37) | create(user: User): Observable { FILE: Solution/Lab5/client/Application/cypress.config.ts method setupNodeEvents (line 6) | setupNodeEvents(on, config) { FILE: Solution/Lab5/client/Application/src/app/app-routing.module.ts class AppRoutingModule (line 62) | class AppRoutingModule {} FILE: Solution/Lab5/client/Application/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Solution/Lab5/client/Application/src/app/app.module.ts class AppModule (line 86) | class AppModule {} FILE: Solution/Lab5/client/Application/src/app/cognito.guard.ts class CognitoGuard (line 16) | class CognitoGuard implements CanActivate { method constructor (line 17) | constructor( method canActivate (line 22) | canActivate( FILE: Solution/Lab5/client/Application/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Solution/Lab5/client/Application/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Solution/Lab5/client/Application/src/app/nav/nav.component.ts class NavComponent (line 23) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 54) | ngOnInit(): void { method logout (line 85) | async logout() { FILE: Solution/Lab5/client/Application/src/app/views/auth/auth-configuration.service.ts class AuthConfigurationService (line 36) | class AuthConfigurationService { method constructor (line 41) | constructor( method setTenantConfig (line 47) | public setTenantConfig(tenantName: string): Promise { method configureAmplifyAuth (line 69) | configureAmplifyAuth(): boolean { method cleanLocalStorage (line 93) | cleanLocalStorage() { FILE: Solution/Lab5/client/Application/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Solution/Lab5/client/Application/src/app/views/auth/models/config-params.ts type ConfigParams (line 17) | interface ConfigParams { FILE: Solution/Lab5/client/Application/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Solution/Lab5/client/Application/src/app/views/dashboard/dashboard.component.ts class DashboardComponent (line 13) | class DashboardComponent { method chartClicked (line 48) | public chartClicked({ method chartHovered (line 56) | public chartHovered({ method randomize (line 64) | public randomize(): void { method constructor (line 99) | constructor(private breakpointObserver: BreakpointObserver) {} FILE: Solution/Lab5/client/Application/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Solution/Lab5/client/Application/src/app/views/error/404.component.ts class P404Component (line 10) | class P404Component { method constructor (line 11) | constructor() {} FILE: Solution/Lab5/client/Application/src/app/views/error/500.component.ts class P500Component (line 10) | class P500Component { method constructor (line 11) | constructor() {} FILE: Solution/Lab5/client/Application/src/app/views/error/unauthorized.component.ts class UnauthorizedComponent (line 30) | class UnauthorizedComponent implements OnInit { method constructor (line 37) | constructor( method ngOnInit (line 60) | ngOnInit(): void { method isFieldInvalid (line 66) | isFieldInvalid(field: string) { method displayFieldCss (line 73) | displayFieldCss(field: string) { method hasRequiredError (line 79) | hasRequiredError(field: string) { method openErrorMessageSnackBar (line 83) | openErrorMessageSnackBar(errorMessage: string) { method login (line 89) | login() { FILE: Solution/Lab5/client/Application/src/app/views/orders/create/create.component.ts type LineItem (line 9) | interface LineItem { class CreateComponent (line 18) | class CreateComponent implements OnInit { method constructor (line 24) | constructor( method ngOnInit (line 35) | ngOnInit(): void { method name (line 45) | get name() { method productQuantity (line 49) | get productQuantity() { method add (line 55) | add(op: LineItem) { method remove (line 70) | remove(op: LineItem) { method submit (line 88) | submit() { FILE: Solution/Lab5/client/Application/src/app/views/orders/detail/detail.component.ts class DetailComponent (line 17) | class DetailComponent implements OnInit { method constructor (line 22) | constructor(private route: ActivatedRoute, private orderSvc: OrdersSer... method ngOnInit (line 24) | ngOnInit(): void { method today (line 30) | today() { method tenantName (line 34) | tenantName() { method sum (line 38) | sum(op: OrderProduct) { method tax (line 42) | tax(op: OrderProduct) { method total (line 46) | total(op: OrderProduct) { method subTotal (line 50) | subTotal(order: Order) { method calcTax (line 56) | calcTax(order: Order) { method final (line 60) | final(order: Order) { FILE: Solution/Lab5/client/Application/src/app/views/orders/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 15) | constructor(private orderSvc: OrdersService, private router: Router) {} method ngOnInit (line 17) | ngOnInit(): void { method sum (line 24) | sum(order: Order): number { FILE: Solution/Lab5/client/Application/src/app/views/orders/models/order.interface.ts type Order (line 7) | interface Order { FILE: Solution/Lab5/client/Application/src/app/views/orders/models/orderproduct.interface.ts type OrderProduct (line 5) | interface OrderProduct { FILE: Solution/Lab5/client/Application/src/app/views/orders/orders-routing.module.ts class OrdersRoutingModule (line 44) | class OrdersRoutingModule {} FILE: Solution/Lab5/client/Application/src/app/views/orders/orders.module.ts class OrdersModule (line 51) | class OrdersModule {} FILE: Solution/Lab5/client/Application/src/app/views/orders/orders.service.ts class OrdersService (line 13) | class OrdersService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 18) | fetch(): Observable { method get (line 22) | get(orderId: string): Observable { method create (line 27) | create(order: Order): Observable { FILE: Solution/Lab5/client/Application/src/app/views/products/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 15) | constructor( method ngOnInit (line 23) | ngOnInit(): void { method name (line 32) | get name() { method price (line 36) | get price() { method submit (line 40) | submit() { method cancel (line 50) | cancel() { FILE: Solution/Lab5/client/Application/src/app/views/products/edit/edit.component.ts class EditComponent (line 18) | class EditComponent implements OnInit { method constructor (line 25) | constructor( method ngOnInit (line 34) | ngOnInit(): void { method name (line 57) | get name() { method price (line 61) | get price() { method submit (line 65) | submit() { method delete (line 72) | delete() { method cancel (line 82) | cancel() { FILE: Solution/Lab5/client/Application/src/app/views/products/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 16) | constructor(private productSvc: ProductService, private router: Router... method ngOnInit (line 18) | ngOnInit(): void { method onEdit (line 25) | onEdit(product: Product) { method onRemove (line 30) | onRemove(product: Product) { method onCreate (line 39) | onCreate() { FILE: Solution/Lab5/client/Application/src/app/views/products/models/product.interface.ts type Product (line 5) | interface Product { FILE: Solution/Lab5/client/Application/src/app/views/products/product.service.ts class ProductService (line 13) | class ProductService { method constructor (line 14) | constructor(private http: HttpClient) {} method fetch (line 17) | fetch(): Observable { method get (line 21) | get(productId: string): Observable { method delete (line 26) | delete(product: Product) { method put (line 31) | put(product: Product) { method post (line 36) | post(product: Product) { FILE: Solution/Lab5/client/Application/src/app/views/products/products-routing.module.ts class ProductsRoutingModule (line 44) | class ProductsRoutingModule {} FILE: Solution/Lab5/client/Application/src/app/views/products/products.module.ts class ProductsModule (line 48) | class ProductsModule {} FILE: Solution/Lab5/client/Application/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 32) | ngOnInit(): void {} method openErrorMessageSnackBar (line 34) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 40) | onSubmit() { FILE: Solution/Lab5/client/Application/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Solution/Lab5/client/Application/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Solution/Lab5/client/Application/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Solution/Lab5/client/Application/src/app/views/users/users.module.ts class UsersModule (line 50) | class UsersModule {} FILE: Solution/Lab5/client/Application/src/app/views/users/users.service.ts class UsersService (line 27) | class UsersService { method constructor (line 30) | constructor(private http: HttpClient) { method fetch (line 34) | fetch(): Observable { method create (line 38) | create(user: User): Observable { method update (line 42) | update(email: string, user: User) {} FILE: Solution/Lab5/client/Landing/src/app/app-routing.module.ts class AppRoutingModule (line 31) | class AppRoutingModule {} FILE: Solution/Lab5/client/Landing/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Solution/Lab5/client/Landing/src/app/app.module.ts class AppModule (line 53) | class AppModule {} FILE: Solution/Lab5/client/Landing/src/app/views/landing/landing.component.ts class LandingComponent (line 25) | class LandingComponent implements OnInit { method constructor (line 26) | constructor(private router: Router) {} method ngOnInit (line 28) | ngOnInit() {} method register (line 30) | register() { FILE: Solution/Lab5/client/Landing/src/app/views/register/register.component.ts class RegisterComponent (line 12) | class RegisterComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 28) | ngOnInit(): void {} method openErrorMessageSnackBar (line 30) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 36) | submit() { FILE: Solution/Lab5/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, shardId, orderId, orderName, orderProducts): class OrderProduct (line 13) | class OrderProduct: method __init__ (line 15) | def __init__(self, productId, price, quantity): FILE: Solution/Lab5/server/OrderService/order_service.py function get_order (line 15) | def get_order(event, context): function create_order (line 30) | def create_order(event, context): function update_order (line 42) | def update_order(event, context): function delete_order (line 56) | def delete_order(event, context): function get_orders (line 69) | def get_orders(event, context): FILE: Solution/Lab5/server/OrderService/order_service_dal.py function get_order (line 27) | def get_order(event, key): function delete_order (line 47) | def delete_order(event, key): function create_order (line 64) | def create_order(event, payload): function update_order (line 88) | def update_order(event, payload, key): function get_orders (line 114) | def get_orders(event, tenantId): function __query_all_partitions (line 127) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 143) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 153) | def __get_dynamodb_table(event, dynamodb): function get_order_products_dict (line 177) | def get_order_products_dict(orderProducts): FILE: Solution/Lab5/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, shardId, productId, sku, name, price, category): class Category (line 15) | class Category: method __init__ (line 16) | def __init__(self, id, name): FILE: Solution/Lab5/server/ProductService/product_service.py function get_product (line 15) | def get_product(event, context): function create_product (line 31) | def create_product(event, context): function update_product (line 43) | def update_product(event, context): function delete_product (line 57) | def delete_product(event, context): function get_products (line 70) | def get_products(event, context): FILE: Solution/Lab5/server/ProductService/product_service_dal.py function get_product (line 27) | def get_product(event, key): function delete_product (line 47) | def delete_product(event, key): function create_product (line 64) | def create_product(event, payload): function update_product (line 95) | def update_product(event, payload, key): function get_products (line 125) | def get_products(event, tenantId): function __query_all_partitions (line 137) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 153) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 163) | def __get_dynamodb_table(event, dynamodb): FILE: Solution/Lab5/server/Resources/shared_service_authorizer.py function lambda_handler (line 24) | def lambda_handler(event, context): function validateJWT (line 129) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 170) | class HttpVerb: class AuthPolicy (line 180) | class AuthPolicy(object): method __init__ (line 205) | def __init__(self, principal, awsAccountId): method _addMethod (line 211) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 243) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 254) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 275) | def allowAllMethods(self): method denyAllMethods (line 279) | def denyAllMethods(self): method allowMethod (line 283) | def allowMethod(self, verb, resource): method denyMethod (line 288) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 293) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 299) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 305) | def build(self): FILE: Solution/Lab5/server/Resources/tenant_authorizer.py function lambda_handler (line 23) | def lambda_handler(event, context): function isTenantAuthorizedForThisAPI (line 126) | def isTenantAuthorizedForThisAPI(apigateway_url, current_api_id): function validateJWT (line 132) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 173) | class HttpVerb: class AuthPolicy (line 183) | class AuthPolicy(object): method __init__ (line 208) | def __init__(self, principal, awsAccountId): method _addMethod (line 214) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 246) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 257) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 278) | def allowAllMethods(self): method denyAllMethods (line 282) | def denyAllMethods(self): method allowMethod (line 286) | def allowMethod(self, verb, resource): method denyMethod (line 291) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 296) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 302) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 308) | def build(self): FILE: Solution/Lab5/server/TenantManagementService/tenant-management.py function create_tenant (line 24) | def create_tenant(event, context): function get_tenants (line 64) | def get_tenants(event, context): function update_tenant (line 77) | def update_tenant(event, context): function get_tenant (line 118) | def get_tenant(event, context): function deactivate_tenant (line 152) | def deactivate_tenant(event, context): function activate_tenant (line 206) | def activate_tenant(event, context): function load_tenant_config (line 259) | def load_tenant_config(event, context): function __invoke_disable_users (line 281) | def __invoke_disable_users(update_details, headers, auth, host, stage_na... function __invoke_deprovision_tenant (line 296) | def __invoke_deprovision_tenant(update_details, headers, auth, host, sta... function __invoke_enable_users (line 311) | def __invoke_enable_users(update_details, headers, auth, host, stage_nam... function __invoke_provision_tenant (line 326) | def __invoke_provision_tenant(update_details, headers, auth, host, stage... function __getTenantManagementTable (line 341) | def __getTenantManagementTable(event): class TenantInfo (line 350) | class TenantInfo: method __init__ (line 351) | def __init__(self, tenant_name, tenant_address, tenant_email, tenant_p... FILE: Solution/Lab5/server/TenantManagementService/tenant-provisioning.py function provision_tenant (line 22) | def provision_tenant(event, context): function deprovision_tenant (line 50) | def deprovision_tenant(event, context): FILE: Solution/Lab5/server/TenantManagementService/tenant-registration.py function register_tenant (line 22) | def register_tenant(event, context): function __create_tenant_admin_user (line 60) | def __create_tenant_admin_user(tenant_details, headers, auth, host, stag... function __create_tenant (line 72) | def __create_tenant(tenant_details, headers, auth, host, stage_name): function __provision_tenant (line 83) | def __provision_tenant(tenant_details, headers, auth, host, stage_name): FILE: Solution/Lab5/server/TenantManagementService/user-management.py function create_tenant_admin_user (line 21) | def create_tenant_admin_user(event, context): function create_user (line 62) | def create_user(event, context): function get_users (line 124) | def get_users(event, context): function get_user (line 173) | def get_user(event, context): function update_user (line 207) | def update_user(event, context): function disable_user (line 260) | def disable_user(event, context): function disable_users_by_tenant (line 300) | def disable_users_by_tenant(event, context): function enable_users_by_tenant (line 332) | def enable_users_by_tenant(event, context): function get_user_info (line 362) | def get_user_info(event, user_pool_id, user_name): class UserManagement (line 382) | class UserManagement: method create_user_pool (line 383) | def create_user_pool(self, tenant_id): method create_user_pool_client (line 426) | def create_user_pool_client(self, user_pool_id): method create_user_pool_domain (line 457) | def create_user_pool_domain(self, user_pool_id, tenant_id): method create_user_group (line 464) | def create_user_group(self, user_pool_id, group_name, group_description): method create_tenant_admin (line 473) | def create_tenant_admin(self, user_pool_id, tenant_admin_user_name, us... method add_user_to_group (line 499) | def add_user_to_group(self, user_pool_id, user_name, group_name): method create_user_tenant_mapping (line 507) | def create_user_tenant_mapping(self, user_name, tenant_id): class UserInfo (line 518) | class UserInfo: method __init__ (line 519) | def __init__(self, user_name=None, tenant_id=None, user_role=None, FILE: Solution/Lab5/server/TenantPipeline/lib/serverless-saas-stack.ts class ServerlessSaaSStack (line 18) | class ServerlessSaaSStack extends cdk.Stack { method constructor (line 19) | constructor(scope: Construct, id: string, props?: cdk.StackProps) { FILE: Solution/Lab5/server/TenantPipeline/resources/lambda-deploy-tenant-stack.py function find_artifact (line 26) | def find_artifact(artifacts, name): function get_template_url (line 44) | def get_template_url(s3, artifact, file_in_zip): function update_stack (line 78) | def update_stack(stack, template_url, params): function stack_exists (line 103) | def stack_exists(stack): function create_stack (line 126) | def create_stack(stack, template_url, params): function get_stack_status (line 138) | def get_stack_status(stack): function put_job_success (line 154) | def put_job_success(job, message): function put_job_failure (line 169) | def put_job_failure(job, message): function continue_job_later (line 184) | def continue_job_later(job, message): function start_update_or_create (line 208) | def start_update_or_create(job_id, stack, template_url, params): function check_stack_update_status (line 245) | def check_stack_update_status(job_id, stack): function get_user_params (line 273) | def get_user_params(job_data): function setup_s3_client (line 310) | def setup_s3_client(job_data): function get_tenant_params (line 336) | def get_tenant_params(tenantId): function add_parameter (line 353) | def add_parameter(params, parameter_key, parameter_value): function update_tenantstackmapping (line 362) | def update_tenantstackmapping(tenantId, commit_id): function lambda_handler (line 382) | def lambda_handler(event, context): FILE: Solution/Lab5/server/custom_resources/update_settings_table.py function do_action (line 19) | def do_action(event, _): function do_nothing (line 51) | def do_nothing(_, __): function handler (line 54) | def handler(event, context): FILE: Solution/Lab5/server/custom_resources/update_tenant_apigatewayurl.py function do_action (line 16) | def do_action(event, _): function do_nothing (line 54) | def do_nothing(_, __): function handler (line 57) | def handler(event, context): FILE: Solution/Lab5/server/custom_resources/update_tenantstackmap_table.py function do_action (line 18) | def do_action(event, _): function do_nothing (line 41) | def do_nothing(_, __): function handler (line 44) | def handler(event, context): FILE: Solution/Lab5/server/layers/auth_manager.py class UserRoles (line 8) | class UserRoles: function isTenantAdmin (line 14) | def isTenantAdmin(user_role): function isSystemAdmin (line 20) | def isSystemAdmin(user_role): function isSaaSProvider (line 27) | def isSaaSProvider(user_role): function isTenantUser (line 32) | def isTenantUser(user_role): function getPolicyForUser (line 38) | def getPolicyForUser(user_role, service_identifier, tenant_id, region, a... function __getPolicyForSystemAdmin (line 61) | def __getPolicyForSystemAdmin(region, aws_account_id): function __getPolicyForTenantAdmin (line 84) | def __getPolicyForTenantAdmin(tenant_id, sevice_identifier, region, aws_... function __getPolicyForTenantUser (line 173) | def __getPolicyForTenantUser(tenant_id, region, aws_account_id): FILE: Solution/Lab5/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 15) | def error(log_message): function log_with_tenant_context (line 21) | def log_with_tenant_context(event, log_message): FILE: Solution/Lab5/server/layers/metrics_manager.py function record_metric (line 10) | def record_metric(event, metric_name, metric_unit, metric_value): FILE: Solution/Lab5/server/layers/utils.py class TenantTier (line 12) | class TenantTier(Enum): class StatusCodes (line 19) | class StatusCodes(Enum): class Service_Identifier (line 24) | class Service_Identifier(Enum): function create_success_response (line 28) | def create_success_response(message): function create_unauthorized_response (line 41) | def create_unauthorized_response(): function create_notfound_response (line 54) | def create_notfound_response(message): function get_auth (line 67) | def get_auth(host, region): function get_headers (line 78) | def get_headers(event): function generate_response (line 82) | def generate_response(inputObject): function encode_to_json_object (line 93) | def encode_to_json_object(inputObject): FILE: Solution/Lab6/client/Admin/src/app/app-routing.module.ts class AppRoutingModule (line 48) | class AppRoutingModule {} FILE: Solution/Lab6/client/Admin/src/app/app.component.ts class AppComponent (line 18) | class AppComponent { method constructor (line 19) | constructor( FILE: Solution/Lab6/client/Admin/src/app/app.module.ts class AppModule (line 58) | class AppModule {} FILE: Solution/Lab6/client/Admin/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Solution/Lab6/client/Admin/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Solution/Lab6/client/Admin/src/app/nav/nav.component.ts class NavComponent (line 22) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 52) | ngOnInit(): void { FILE: Solution/Lab6/client/Admin/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Solution/Lab6/client/Admin/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Solution/Lab6/client/Admin/src/app/views/dashboard/dashboard.component.ts type DataSet (line 9) | interface DataSet { type ChartData (line 13) | interface ChartData { class DashboardComponent (line 24) | class DashboardComponent implements OnInit { method constructor (line 25) | constructor(private tenantSvc: TenantsService) {} method random (line 132) | public random(min: number, max: number) { method ngOnInit (line 136) | ngOnInit(): void { FILE: Solution/Lab6/client/Admin/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Solution/Lab6/client/Admin/src/app/views/tenants/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 29) | ngOnInit(): void {} method openErrorMessageSnackBar (line 31) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 37) | submit() { FILE: Solution/Lab6/client/Admin/src/app/views/tenants/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 22) | constructor(private tenantSvc: TenantsService) {} method ngOnInit (line 24) | ngOnInit(): void { FILE: Solution/Lab6/client/Admin/src/app/views/tenants/models/tenant.ts type Tenant (line 1) | interface Tenant { FILE: Solution/Lab6/client/Admin/src/app/views/tenants/tenants-routing.module.ts class TenantsRoutingModule (line 37) | class TenantsRoutingModule {} FILE: Solution/Lab6/client/Admin/src/app/views/tenants/tenants.module.ts class TenantsModule (line 51) | class TenantsModule {} FILE: Solution/Lab6/client/Admin/src/app/views/tenants/tenants.service.ts class TenantsService (line 15) | class TenantsService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 22) | fetch(): Observable { method post (line 26) | post(tenant: Tenant): Observable { FILE: Solution/Lab6/client/Admin/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 33) | ngOnInit(): void {} method openErrorMessageSnackBar (line 35) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 41) | onSubmit() { FILE: Solution/Lab6/client/Admin/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Solution/Lab6/client/Admin/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Solution/Lab6/client/Admin/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Solution/Lab6/client/Admin/src/app/views/users/users.module.ts class UsersModule (line 49) | class UsersModule {} FILE: Solution/Lab6/client/Admin/src/app/views/users/users.service.ts class UsersService (line 26) | class UsersService { method constructor (line 29) | constructor(private http: HttpClient) { method fetch (line 33) | fetch(): Observable { method create (line 37) | create(user: User): Observable { FILE: Solution/Lab6/client/Application/cypress.config.ts method setupNodeEvents (line 6) | setupNodeEvents(on, config) { FILE: Solution/Lab6/client/Application/src/app/app-routing.module.ts class AppRoutingModule (line 62) | class AppRoutingModule {} FILE: Solution/Lab6/client/Application/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Solution/Lab6/client/Application/src/app/app.module.ts class AppModule (line 86) | class AppModule {} FILE: Solution/Lab6/client/Application/src/app/cognito.guard.ts class CognitoGuard (line 16) | class CognitoGuard implements CanActivate { method constructor (line 17) | constructor( method canActivate (line 22) | canActivate( FILE: Solution/Lab6/client/Application/src/app/interceptors/auth.interceptor.ts class AuthInterceptor (line 17) | class AuthInterceptor implements HttpInterceptor { method constructor (line 18) | constructor() {} method intercept (line 21) | intercept( FILE: Solution/Lab6/client/Application/src/app/models/interfaces.ts type INavData (line 1) | interface INavData { FILE: Solution/Lab6/client/Application/src/app/nav/nav.component.ts class NavComponent (line 23) | class NavComponent implements OnInit { method constructor (line 36) | constructor( method ngOnInit (line 54) | ngOnInit(): void { method logout (line 85) | async logout() { FILE: Solution/Lab6/client/Application/src/app/views/auth/auth-configuration.service.ts class AuthConfigurationService (line 36) | class AuthConfigurationService { method constructor (line 41) | constructor( method setTenantConfig (line 47) | public setTenantConfig(tenantName: string): Promise { method configureAmplifyAuth (line 69) | configureAmplifyAuth(): boolean { method cleanLocalStorage (line 93) | cleanLocalStorage() { FILE: Solution/Lab6/client/Application/src/app/views/auth/auth.component.ts class AuthComponent (line 11) | class AuthComponent implements OnInit { method constructor (line 20) | constructor() {} method ngOnInit (line 22) | ngOnInit(): void { method logout (line 33) | async logout() { FILE: Solution/Lab6/client/Application/src/app/views/auth/models/config-params.ts type ConfigParams (line 17) | interface ConfigParams { FILE: Solution/Lab6/client/Application/src/app/views/dashboard/dashboard-routing.module.ts class DashboardRoutingModule (line 24) | class DashboardRoutingModule {} FILE: Solution/Lab6/client/Application/src/app/views/dashboard/dashboard.component.ts class DashboardComponent (line 13) | class DashboardComponent { method chartClicked (line 48) | public chartClicked({ method chartHovered (line 56) | public chartHovered({ method randomize (line 64) | public randomize(): void { method constructor (line 99) | constructor(private breakpointObserver: BreakpointObserver) {} FILE: Solution/Lab6/client/Application/src/app/views/dashboard/dashboard.module.ts class DashboardModule (line 29) | class DashboardModule {} FILE: Solution/Lab6/client/Application/src/app/views/error/404.component.ts class P404Component (line 10) | class P404Component { method constructor (line 11) | constructor() {} FILE: Solution/Lab6/client/Application/src/app/views/error/500.component.ts class P500Component (line 10) | class P500Component { method constructor (line 11) | constructor() {} FILE: Solution/Lab6/client/Application/src/app/views/error/unauthorized.component.ts class UnauthorizedComponent (line 29) | class UnauthorizedComponent implements OnInit { method constructor (line 35) | constructor( method ngOnInit (line 42) | ngOnInit(): void { method isFieldInvalid (line 52) | isFieldInvalid(field: string) { method displayFieldCss (line 59) | displayFieldCss(field: string) { method hasRequiredError (line 65) | hasRequiredError(field: string) { method openErrorMessageSnackBar (line 69) | openErrorMessageSnackBar(errorMessage: string) { method login (line 75) | login() { FILE: Solution/Lab6/client/Application/src/app/views/orders/create/create.component.ts type LineItem (line 9) | interface LineItem { class CreateComponent (line 18) | class CreateComponent implements OnInit { method constructor (line 24) | constructor( method ngOnInit (line 35) | ngOnInit(): void { method name (line 45) | get name() { method productQuantity (line 49) | get productQuantity() { method add (line 55) | add(op: LineItem) { method remove (line 70) | remove(op: LineItem) { method submit (line 88) | submit() { FILE: Solution/Lab6/client/Application/src/app/views/orders/detail/detail.component.ts class DetailComponent (line 17) | class DetailComponent implements OnInit { method constructor (line 22) | constructor(private route: ActivatedRoute, private orderSvc: OrdersSer... method ngOnInit (line 24) | ngOnInit(): void { method today (line 30) | today() { method tenantName (line 34) | tenantName() { method sum (line 38) | sum(op: OrderProduct) { method tax (line 42) | tax(op: OrderProduct) { method total (line 46) | total(op: OrderProduct) { method subTotal (line 50) | subTotal(order: Order) { method calcTax (line 56) | calcTax(order: Order) { method final (line 60) | final(order: Order) { FILE: Solution/Lab6/client/Application/src/app/views/orders/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 15) | constructor(private orderSvc: OrdersService, private router: Router) {} method ngOnInit (line 17) | ngOnInit(): void { method sum (line 24) | sum(order: Order): number { FILE: Solution/Lab6/client/Application/src/app/views/orders/models/order.interface.ts type Order (line 7) | interface Order { FILE: Solution/Lab6/client/Application/src/app/views/orders/models/orderproduct.interface.ts type OrderProduct (line 5) | interface OrderProduct { FILE: Solution/Lab6/client/Application/src/app/views/orders/orders-routing.module.ts class OrdersRoutingModule (line 44) | class OrdersRoutingModule {} FILE: Solution/Lab6/client/Application/src/app/views/orders/orders.module.ts class OrdersModule (line 51) | class OrdersModule {} FILE: Solution/Lab6/client/Application/src/app/views/orders/orders.service.ts class OrdersService (line 13) | class OrdersService { method constructor (line 16) | constructor(private http: HttpClient) {} method fetch (line 18) | fetch(): Observable { method get (line 22) | get(orderId: string): Observable { method create (line 27) | create(order: Order): Observable { FILE: Solution/Lab6/client/Application/src/app/views/products/create/create.component.ts class CreateComponent (line 12) | class CreateComponent implements OnInit { method constructor (line 15) | constructor( method ngOnInit (line 23) | ngOnInit(): void { method name (line 32) | get name() { method price (line 36) | get price() { method submit (line 40) | submit() { method cancel (line 50) | cancel() { FILE: Solution/Lab6/client/Application/src/app/views/products/edit/edit.component.ts class EditComponent (line 17) | class EditComponent implements OnInit { method constructor (line 23) | constructor( method ngOnInit (line 30) | ngOnInit(): void { method name (line 51) | get name() { method price (line 55) | get price() { method submit (line 59) | submit() { method delete (line 66) | delete() { method cancel (line 76) | cancel() { FILE: Solution/Lab6/client/Application/src/app/views/products/list/list.component.ts class ListComponent (line 11) | class ListComponent implements OnInit { method constructor (line 16) | constructor(private productSvc: ProductService, private router: Router... method ngOnInit (line 18) | ngOnInit(): void { method onEdit (line 25) | onEdit(product: Product) { method onRemove (line 30) | onRemove(product: Product) { method onCreate (line 39) | onCreate() { FILE: Solution/Lab6/client/Application/src/app/views/products/models/product.interface.ts type Product (line 5) | interface Product { FILE: Solution/Lab6/client/Application/src/app/views/products/product.service.ts class ProductService (line 13) | class ProductService { method constructor (line 14) | constructor(private http: HttpClient) {} method fetch (line 17) | fetch(): Observable { method get (line 21) | get(productId: string): Observable { method delete (line 26) | delete(product: Product) { method put (line 31) | put(product: Product) { method post (line 35) | post(product: Product) { FILE: Solution/Lab6/client/Application/src/app/views/products/products-routing.module.ts class ProductsRoutingModule (line 44) | class ProductsRoutingModule {} FILE: Solution/Lab6/client/Application/src/app/views/products/products.module.ts class ProductsModule (line 48) | class ProductsModule {} FILE: Solution/Lab6/client/Application/src/app/views/users/create/create.component.ts class CreateComponent (line 15) | class CreateComponent implements OnInit { method constructor (line 20) | constructor( method ngOnInit (line 32) | ngOnInit(): void {} method openErrorMessageSnackBar (line 34) | openErrorMessageSnackBar(errorMessage: string) { method onSubmit (line 40) | onSubmit() { FILE: Solution/Lab6/client/Application/src/app/views/users/list/list.component.ts class ListComponent (line 14) | class ListComponent implements OnInit { method constructor (line 25) | constructor(private userSvc: UsersService) {} method ngOnInit (line 27) | ngOnInit(): void { FILE: Solution/Lab6/client/Application/src/app/views/users/models/user.ts type User (line 5) | interface User { FILE: Solution/Lab6/client/Application/src/app/views/users/users-routing.module.ts class UsersRoutingModule (line 36) | class UsersRoutingModule {} FILE: Solution/Lab6/client/Application/src/app/views/users/users.module.ts class UsersModule (line 50) | class UsersModule {} FILE: Solution/Lab6/client/Application/src/app/views/users/users.service.ts class UsersService (line 27) | class UsersService { method constructor (line 30) | constructor(private http: HttpClient) { method fetch (line 34) | fetch(): Observable { method create (line 38) | create(user: User): Observable { method update (line 42) | update(email: string, user: User) {} FILE: Solution/Lab6/client/Landing/src/app/app-routing.module.ts class AppRoutingModule (line 31) | class AppRoutingModule {} FILE: Solution/Lab6/client/Landing/src/app/app.component.ts class AppComponent (line 10) | class AppComponent { method constructor (line 11) | constructor( FILE: Solution/Lab6/client/Landing/src/app/app.module.ts class AppModule (line 53) | class AppModule {} FILE: Solution/Lab6/client/Landing/src/app/views/landing/landing.component.ts class LandingComponent (line 25) | class LandingComponent implements OnInit { method constructor (line 26) | constructor(private router: Router) {} method ngOnInit (line 28) | ngOnInit() {} method register (line 30) | register() { FILE: Solution/Lab6/client/Landing/src/app/views/register/register.component.ts class RegisterComponent (line 12) | class RegisterComponent implements OnInit { method constructor (line 22) | constructor( method ngOnInit (line 28) | ngOnInit(): void {} method openErrorMessageSnackBar (line 30) | openErrorMessageSnackBar(errorMessage: string) { method submit (line 36) | submit() { FILE: Solution/Lab6/server/OrderService/order_models.py class Order (line 4) | class Order: method __init__ (line 6) | def __init__(self, shardId, orderId, orderName, orderProducts): class OrderProduct (line 13) | class OrderProduct: method __init__ (line 15) | def __init__(self, productId, price, quantity): FILE: Solution/Lab6/server/OrderService/order_service.py function get_order (line 15) | def get_order(event, context): function create_order (line 30) | def create_order(event, context): function update_order (line 42) | def update_order(event, context): function delete_order (line 56) | def delete_order(event, context): function get_orders (line 69) | def get_orders(event, context): FILE: Solution/Lab6/server/OrderService/order_service_dal.py function get_order (line 27) | def get_order(event, key): function delete_order (line 47) | def delete_order(event, key): function create_order (line 64) | def create_order(event, payload): function update_order (line 88) | def update_order(event, payload, key): function get_orders (line 114) | def get_orders(event, tenantId): function __query_all_partitions (line 127) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 143) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 153) | def __get_dynamodb_table(event, dynamodb): function get_order_products_dict (line 177) | def get_order_products_dict(orderProducts): FILE: Solution/Lab6/server/ProductService/product_models.py class Product (line 4) | class Product: method __init__ (line 6) | def __init__(self, shardId, productId, sku, name, price, category): class Category (line 15) | class Category: method __init__ (line 16) | def __init__(self, id, name): FILE: Solution/Lab6/server/ProductService/product_service.py function get_product (line 15) | def get_product(event, context): function create_product (line 31) | def create_product(event, context): function update_product (line 43) | def update_product(event, context): function delete_product (line 57) | def delete_product(event, context): function get_products (line 70) | def get_products(event, context): FILE: Solution/Lab6/server/ProductService/product_service_dal.py function get_product (line 27) | def get_product(event, key): function delete_product (line 47) | def delete_product(event, key): function create_product (line 64) | def create_product(event, payload): function update_product (line 95) | def update_product(event, payload, key): function get_products (line 125) | def get_products(event, tenantId): function __query_all_partitions (line 137) | def __query_all_partitions(tenantId,get_all_products_response, table, ev... function __get_tenant_data (line 153) | def __get_tenant_data(partition_id, get_all_products_response, table, ev... function __get_dynamodb_table (line 163) | def __get_dynamodb_table(event, dynamodb): FILE: Solution/Lab6/server/Resources/shared_service_authorizer.py function lambda_handler (line 24) | def lambda_handler(event, context): function validateJWT (line 133) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 174) | class HttpVerb: class AuthPolicy (line 184) | class AuthPolicy(object): method __init__ (line 209) | def __init__(self, principal, awsAccountId): method _addMethod (line 215) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 247) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 258) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 279) | def allowAllMethods(self): method denyAllMethods (line 283) | def denyAllMethods(self): method allowMethod (line 287) | def allowMethod(self, verb, resource): method denyMethod (line 292) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 297) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 303) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 309) | def build(self): FILE: Solution/Lab6/server/Resources/tenant_authorizer.py function lambda_handler (line 24) | def lambda_handler(event, context): function isTenantAuthorizedForThisAPI (line 131) | def isTenantAuthorizedForThisAPI(apigateway_url, current_api_id): function validateJWT (line 137) | def validateJWT(token, app_client_id, keys): class HttpVerb (line 178) | class HttpVerb: class AuthPolicy (line 188) | class AuthPolicy(object): method __init__ (line 213) | def __init__(self, principal, awsAccountId): method _addMethod (line 219) | def _addMethod(self, effect, verb, resource, conditions): method _getEmptyStatement (line 251) | def _getEmptyStatement(self, effect): method _getStatementForEffect (line 262) | def _getStatementForEffect(self, effect, methods): method allowAllMethods (line 283) | def allowAllMethods(self): method denyAllMethods (line 287) | def denyAllMethods(self): method allowMethod (line 291) | def allowMethod(self, verb, resource): method denyMethod (line 296) | def denyMethod(self, verb, resource): method allowMethodWithConditions (line 301) | def allowMethodWithConditions(self, verb, resource, conditions): method denyMethodWithConditions (line 307) | def denyMethodWithConditions(self, verb, resource, conditions): method build (line 313) | def build(self): FILE: Solution/Lab6/server/TenantManagementService/tenant-management.py function create_tenant (line 24) | def create_tenant(event, context): function get_tenants (line 65) | def get_tenants(event, context): function update_tenant (line 78) | def update_tenant(event, context): function get_tenant (line 130) | def get_tenant(event, context): function deactivate_tenant (line 164) | def deactivate_tenant(event, context): function activate_tenant (line 218) | def activate_tenant(event, context): function load_tenant_config (line 271) | def load_tenant_config(event, context): function __invoke_disable_users (line 293) | def __invoke_disable_users(update_details, headers, auth, host, stage_na... function __invoke_deprovision_tenant (line 308) | def __invoke_deprovision_tenant(update_details, headers, auth, host, sta... function __invoke_enable_users (line 323) | def __invoke_enable_users(update_details, headers, auth, host, stage_nam... function __invoke_provision_tenant (line 338) | def __invoke_provision_tenant(update_details, headers, auth, host, stage... function __getApiKey (line 353) | def __getApiKey(tenant_tier): function __getTenantManagementTable (line 363) | def __getTenantManagementTable(event): class TenantInfo (line 372) | class TenantInfo: method __init__ (line 373) | def __init__(self, tenant_name, tenant_address, tenant_email, tenant_p... FILE: Solution/Lab6/server/TenantManagementService/tenant-provisioning.py function provision_tenant (line 22) | def provision_tenant(event, context): function deprovision_tenant (line 50) | def deprovision_tenant(event, context): FILE: Solution/Lab6/server/TenantManagementService/tenant-registration.py function register_tenant (line 26) | def register_tenant(event, context): function __create_tenant_admin_user (line 73) | def __create_tenant_admin_user(tenant_details, headers, auth, host, stag... function __create_tenant (line 85) | def __create_tenant(tenant_details, headers, auth, host, stage_name): function __provision_tenant (line 96) | def __provision_tenant(tenant_details, headers, auth, host, stage_name): FILE: Solution/Lab6/server/TenantManagementService/user-management.py function create_tenant_admin_user (line 21) | def create_tenant_admin_user(event, context): function create_user (line 62) | def create_user(event, context): function get_users (line 124) | def get_users(event, context): function get_user (line 173) | def get_user(event, context): function update_user (line 207) | def update_user(event, context): function disable_user (line 260) | def disable_user(event, context): function disable_users_by_tenant (line 300) | def disable_users_by_tenant(event, context): function enable_users_by_tenant (line 332) | def enable_users_by_tenant(event, context): function get_user_info (line 362) | def get_user_info(event, user_pool_id, user_name): class UserManagement (line 382) | class UserManagement: method create_user_pool (line 383) | def create_user_pool(self, tenant_id): method create_user_pool_client (line 426) | def create_user_pool_client(self, user_pool_id): method create_user_pool_domain (line 457) | def create_user_pool_domain(self, user_pool_id, tenant_id): method create_user_group (line 464) | def create_user_group(self, user_pool_id, group_name, group_description): method create_tenant_admin (line 473) | def create_tenant_admin(self, user_pool_id, tenant_admin_user_name, us... method add_user_to_group (line 499) | def add_user_to_group(self, user_pool_id, user_name, group_name): method create_user_tenant_mapping (line 507) | def create_user_tenant_mapping(self, user_name, tenant_id): class UserInfo (line 518) | class UserInfo: method __init__ (line 519) | def __init__(self, user_name=None, tenant_id=None, user_role=None, FILE: Solution/Lab6/server/TenantPipeline/lib/serverless-saas-stack.ts class ServerlessSaaSStack (line 18) | class ServerlessSaaSStack extends cdk.Stack { method constructor (line 19) | constructor(scope: Construct, id: string, props?: cdk.StackProps) { FILE: Solution/Lab6/server/TenantPipeline/resources/lambda-deploy-tenant-stack.py function find_artifact (line 26) | def find_artifact(artifacts, name): function get_template_url (line 44) | def get_template_url(s3, artifact, file_in_zip): function update_stack (line 78) | def update_stack(stack, template_url, params): function stack_exists (line 103) | def stack_exists(stack): function create_stack (line 126) | def create_stack(stack, template_url, params): function get_stack_status (line 138) | def get_stack_status(stack): function put_job_success (line 154) | def put_job_success(job, message): function put_job_failure (line 169) | def put_job_failure(job, message): function continue_job_later (line 184) | def continue_job_later(job, message): function start_update_or_create (line 208) | def start_update_or_create(job_id, stack, template_url, params): function check_stack_update_status (line 245) | def check_stack_update_status(job_id, stack): function get_user_params (line 273) | def get_user_params(job_data): function setup_s3_client (line 310) | def setup_s3_client(job_data): function get_tenant_params (line 336) | def get_tenant_params(tenantId): function add_parameter (line 353) | def add_parameter(params, parameter_key, parameter_value): function update_tenantstackmapping (line 362) | def update_tenantstackmapping(tenantId, commit_id): function lambda_handler (line 382) | def lambda_handler(event, context): FILE: Solution/Lab6/server/custom_resources/update_settings_table.py function do_action (line 19) | def do_action(event, _): function do_nothing (line 51) | def do_nothing(_, __): function handler (line 54) | def handler(event, context): FILE: Solution/Lab6/server/custom_resources/update_tenant_apigatewayurl.py function do_action (line 16) | def do_action(event, _): function do_nothing (line 54) | def do_nothing(_, __): function handler (line 57) | def handler(event, context): FILE: Solution/Lab6/server/custom_resources/update_tenantstackmap_table.py function do_action (line 18) | def do_action(event, _): function do_nothing (line 41) | def do_nothing(_, __): function handler (line 44) | def handler(event, context): FILE: Solution/Lab6/server/custom_resources/update_usage_plan.py function do_action (line 18) | def do_action(event, _): function do_nothing (line 87) | def do_nothing(_, __): function handler (line 90) | def handler(event, context): FILE: Solution/Lab6/server/layers/auth_manager.py class UserRoles (line 8) | class UserRoles: function isTenantAdmin (line 14) | def isTenantAdmin(user_role): function isSystemAdmin (line 20) | def isSystemAdmin(user_role): function isSaaSProvider (line 27) | def isSaaSProvider(user_role): function isTenantUser (line 32) | def isTenantUser(user_role): function getPolicyForUser (line 38) | def getPolicyForUser(user_role, service_identifier, tenant_id, region, a... function __getPolicyForSystemAdmin (line 61) | def __getPolicyForSystemAdmin(region, aws_account_id): function __getPolicyForTenantAdmin (line 84) | def __getPolicyForTenantAdmin(tenant_id, sevice_identifier, region, aws_... function __getPolicyForTenantUser (line 173) | def __getPolicyForTenantUser(tenant_id, region, aws_account_id): FILE: Solution/Lab6/server/layers/logger.py function info (line 9) | def info(log_message): function error (line 15) | def error(log_message): function log_with_tenant_context (line 21) | def log_with_tenant_context(event, log_message): FILE: Solution/Lab6/server/layers/metrics_manager.py function record_metric (line 10) | def record_metric(event, metric_name, metric_unit, metric_value): FILE: Solution/Lab6/server/layers/utils.py class TenantTier (line 12) | class TenantTier(Enum): class StatusCodes (line 19) | class StatusCodes(Enum): class Service_Identifier (line 24) | class Service_Identifier(Enum): function create_success_response (line 28) | def create_success_response(message): function create_unauthorized_response (line 41) | def create_unauthorized_response(): function create_notfound_response (line 54) | def create_notfound_response(message): function get_auth (line 67) | def get_auth(host, region): function get_headers (line 78) | def get_headers(event): function generate_response (line 82) | def generate_response(inputObject): function encode_to_json_object (line 93) | def encode_to_json_object(inputObject): FILE: Solution/Lab7/.aws-sam/build/GetDynamoDBUsageAndCostByTenant/tenant_usage_and_cost.py function calculate_daily_dynamodb_attribution_by_tenant (line 21) | def calculate_daily_dynamodb_attribution_by_tenant(event, context): function calculate_daily_lambda_attribution_by_tenant (line 114) | def calculate_daily_lambda_attribution_by_tenant(event, context): function __get_total_service_cost (line 190) | def __get_total_service_cost(servicename, start_date_time, end_date_time): function __query_cloudwatch_logs (line 245) | def __query_cloudwatch_logs(logs, log_group_names, query_string, start_t... function __is_log_group_exists (line 259) | def __is_log_group_exists(logs_client, log_group_name): function __add_log_group_name (line 269) | def __add_log_group_name(logs_client, log_group_name, log_group_names_li... function __get_list_of_log_group_names (line 275) | def __get_list_of_log_group_names(): FILE: Solution/Lab7/.aws-sam/build/GetLambdaUsageAndCostByTenant/tenant_usage_and_cost.py function calculate_daily_dynamodb_attribution_by_tenant (line 21) | def calculate_daily_dynamodb_attribution_by_tenant(event, context): function calculate_daily_lambda_attribution_by_tenant (line 114) | def calculate_daily_lambda_attribution_by_tenant(event, context): function __get_total_service_cost (line 190) | def __get_total_service_cost(servicename, start_date_time, end_date_time): function __query_cloudwatch_logs (line 245) | def __query_cloudwatch_logs(logs, log_group_names, query_string, start_t... function __is_log_group_exists (line 259) | def __is_log_group_exists(logs_client, log_group_name): function __add_log_group_name (line 269) | def __add_log_group_name(logs_client, log_group_name, log_group_names_li... function __get_list_of_log_group_names (line 275) | def __get_list_of_log_group_names(): FILE: Solution/Lab7/TenantUsageAndCost/tenant_usage_and_cost.py function calculate_daily_dynamodb_attribution_by_tenant (line 21) | def calculate_daily_dynamodb_attribution_by_tenant(event, context): function calculate_daily_lambda_attribution_by_tenant (line 108) | def calculate_daily_lambda_attribution_by_tenant(event, context): function __get_total_service_cost (line 183) | def __get_total_service_cost(servicename, start_date_time, end_date_time): function __query_cloudwatch_logs (line 238) | def __query_cloudwatch_logs(logs, log_group_names, query_string, start_t... function __is_log_group_exists (line 252) | def __is_log_group_exists(logs_client, log_group_name): function __add_log_group_name (line 262) | def __add_log_group_name(logs_client, log_group_name, log_group_names_li... function __get_list_of_log_group_names (line 268) | def __get_list_of_log_group_names(): function __get_start_date_time (line 311) | def __get_start_date_time(): function __get_end_date_time (line 316) | def __get_end_date_time(): FILE: scripts/replace_function.py function replace_in_file (line 1) | def replace_in_file(str_to_find, replacement_str, file_name):