def METHOD_NAME(self, call_parameters, parsed_args,
                           parsed_globals, **kwargs):
    if getattr(parsed_args, 'generate_cli_skeleton', None):
        for_output = parsed_args.generate_cli_skeleton == 'output'
        operation_model = self._operation_model
        if for_output:
            service_name = operation_model.service_model.service_name
            operation_name = operation_model.name
            # TODO: It would be better to abstract this logic into
            # classes for both the input and output option such that
            # a similar set of inputs are taken in and output
            # similar functionality.
            return StubbedCLIOperationCaller(self._session).invoke(
                service_name, operation_name, call_parameters,
                parsed_globals)
        else:
            argument_generator = ArgumentGenerator()
            operation_input_shape = operation_model.input_shape
            if operation_input_shape is None:
                skeleton = {}
            else:
                skeleton = argument_generator.generate_skeleton(
                    operation_input_shape)
            sys.stdout.write(
                json.dumps(skeleton, indent=4, default=json_encoder)
            )
            sys.stdout.write('\n')
            return 0