modular-service-cli/modular_service_cli/group/customer.py (75 lines of code) (raw):

import click from modular_service_cli.group import ( ContextObj, ViewCommand, build_limit_option, build_next_token_option, cli_response, ) attributes_order = 'name', 'display_name', 'admins', 'is_active' @click.group(name='customer') def customer(): """Manages Customer Entity""" @customer.command(cls=ViewCommand, name='describe') @click.option('--name', '-n', type=str, help='Customer name to describe.') @build_limit_option() @build_next_token_option() @click.option('--is_active', '-act', type=bool, help='Whether to return active or deactivated customers') @cli_response(attributes_order=attributes_order) def describe(ctx: ContextObj, name, limit, next_token, is_active, customer_id): """ Describes Customer. """ if name: return ctx.api_client.get_customer(name, customer_id=customer_id) return ctx.api_client.query_customer( limit=limit, next_token=next_token, is_active=is_active, customer_id=customer_id ) @customer.command(cls=ViewCommand, name='add') @click.option('--name', '-n', type=str, required=True, help='Customer name') @click.option('--display_name', '-dn', type=str, required=True, help='Customer display name') @click.option('--admin', '-a', multiple=True, type=str, required=True, help='List of admin emails attached to customer.') @cli_response(attributes_order=attributes_order) def add(ctx: ContextObj, name, display_name, admin, customer_id): """ Adds Customer. """ return ctx.api_client.create_customer( name=name, display_name=display_name, admins=admin, customer_id=customer_id ) @customer.command(cls=ViewCommand, name='update') @click.option('--name', '-n', type=str, required=True, help='Customer name') @click.option('--admin', '-a', multiple=True, required=True, help='List of admin emails attached to customer.') @cli_response(attributes_order=attributes_order) def update(ctx: ContextObj, name, admin, customer_id): """ Updates Customer. """ return ctx.api_client.patch_customer( name=name, admins=admin, customer_id=customer_id ) @customer.command(cls=ViewCommand, name='activate') @click.option('--name', '-n', type=str, required=True, help='Customer name') @cli_response(attributes_order=attributes_order) def activate(ctx: ContextObj, name, customer_id): """ Activates an existing customer """ return ctx.api_client.activate_customer( name=name, customer_id=customer_id ) @customer.command(cls=ViewCommand, name='deactivate') @click.option('--name', '-n', type=str, required=True, help='Customer name') @cli_response(attributes_order=attributes_order) def deactivate(ctx: ContextObj, name, customer_id): """ Deactivates an existing customer """ return ctx.api_client.deactivate_customer( name=name, customer_id=customer_id )