package Xindice;

use base ("Frontier::Client");

sub createCollection {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{name}		= shift;
  $args->{message}	= "CreateCollection";
  return $self->run($args)->{result};
}

sub createIndexer {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{name}       	= shift;
  $args->{message}	= "CreateIndexer";
  return $self->run($args)->{result};
}

sub createNewOID {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{message}	= "CreateNewOID";
  return $self->run($args)->{result};
}

sub getApiVersion {
  my $args 		= {};
  my $self 		= shift;
  $args->{message}	= "GetApiVersion";
  return $self->run($args)->{result};
}

sub getCollectionConfiguration {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{message}	= "GetCollectionConfiguration";
  return $self->run($args)->{result};
}

sub getCollectionCount {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{message}	= "GetCollectionCount";
  return $self->run($args)->{result};
}

sub getDocument {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{name}		= shift;
  $args->{message}	= "GetDocument";
  return $self->run($args)->{result};
}

sub getDocumentCount {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{name}       	= shift;
  $args->{message}	= "GetDocumentCount";
  return $self->run($args)->{result};
}

sub getIndexerConfiguration {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{message}	= "GetIndexerConfiguration";
  return $self->run($args)->{result};
}

sub getServerVersion {
  my $args 		= {};
  my $self 		= shift;
  $args->{message}	= "GetServerVersion";
  return $self->run($args)->{result};
}

sub insertDocument {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{name}       	= shift;
  $args->{document}	= shift;
  $args->{message}	= "InsertDocument";
  return $self->run($args)->{result};
}

sub listCollections {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{message}	= "ListCollections";
  return $self->run($args)->{result};
}

sub listDocuments {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{message}	= "ListDocuments";
  return $self->run($args)->{result};
}

sub listIndexers {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{message}	= "ListIndexers";
  return $self->run($args)->{result};
}

sub queryDocument {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{name}		= shift;
  $args->{type}		= shift;
  $args->{query}	= shift;
  $args->{namespaces}	= shift;
  $args->{message}	= "Query";
  return $self->run($args)->{result};
}

sub queryCollection {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{type}		= shift;
  $args->{query}	= shift;
  $args->{namespaces}	= shift;
  $args->{message}	= "Query";
  return $self->run($args)->{result};
}

sub removeCollection {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{name}       	= shift;
  $args->{message}	= "RemoveCollection";
  return $self->run($args)->{result};
}

sub removeDocument {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{name}		= shift;
  $args->{message}	= "RemoveDocument";
  return $self->run($args)->{result};
}

sub removeIndexer {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{name}       	= shift;
  $args->{message}	= "RemoveIndexer";
  return $self->run($args)->{result};
}

sub setDocument {
  my $args 			= {};
  my $self 			= shift;
  $args->{collection}		= shift;
  $args->{name}       		= shift;
  $args->{document}		= shift;
  $args->{message}		= "SetDocument";
  return $self->run($args)->{result};
}

sub shutdown {
  my $args 		= {};
  my $self 		= shift;
  $args->{message}	= "Shutdown";
  return $self->run($args)->{result};
}

sub updateIndexer {
  my $args 		= {};
  my $self 		= shift;
  $args->{collection}	= shift;
  $args->{message}	= "UpdateIndexer";
  return $self->run($args)->{result};
}

sub run {
  my $self = shift;
  my $args = shift;
  return $self->call('run', $args);
}

1;

