private Type createRpcContainer(final ModuleContext context, final String rpcName, final RpcDefinition rpc,
final ContainerSchemaNode schema, final Type type) {
processUsesAugments(schema, context);
final GeneratedTypeBuilder outType = addRawInterfaceDefinition(
JavaTypeName.create(context.modulePackageName(), rpcName + BindingMapping.getClassName(schema.getQName())),
schema);
addImplementedInterfaceFromUses(schema, outType);
outType.addImplementsType(type);
outType.addImplementsType(augmentable(outType));
annotateDeprecatedIfNecessary(rpc.getStatus(), outType);
resolveDataSchemaNodes(context, outType, outType, schema.getChildNodes());
context.addChildNodeType(schema, outType);
return outType.build();
}