# NAME

Chef::REST::Client

# VERSION

1.0

# SYNOPSIS

use Chef::REST::Client;

my $obj = new Chef::REST::Client
          ( 'chef\_client\_name' => $chef\_client\_name )
   $obj->name( $chef\_client\_name );
   $obj->roles('vagrant')->details;
   $obj->roles('vagrant','environments')->details
   $obj->roles->list;
   

    $obj->search( 'secrets' , {  q => 'id:centrify', rows => 1 } )->details
    

    $obj->environments(<env_name>,'cookbooks' , <cookbook_name>)->details;

    $obj->environments(<env_name>,'cookbooks_versions'
                                 ,{ 'method' => 'post'
                                 , 'data' => { 'runlist' => [ 'ms-scribe'] }
                                   }
                      );
    $obj->roles(<role_name>)->details->override_attributes;
                    

# DESCRIPTION

This is the interface to the Chef server api methods listed on opscode documentation 
[opscode Chef Api](http://docs.opscode.com/api\_chef\_server.html)
currently it provides implementation for only GET methods

# METHODS

## role( $role )

returns new [Chef::REST::Client::role](http://search.cpan.org/perldoc?Chef::REST::Client::role) object
used by other classes

## roles ( @roles )

makes a GET request to the chef server for all the @roles and returns and [Chef::REST::Client::roles](http://search.cpan.org/perldoc?Chef::REST::Client::roles) object.
you can directly get details for all the roles as $obj->role( 'role1', 'role2' )->details;

this inturn will return [Chef::REST::Client::role](http://search.cpan.org/perldoc?Chef::REST::Client::role) 

- /roles

$obj->roles->list 

- /roles/<role\_name>

$obj->roles(<role\_name>)->details

$obj->roles(<role\_name>)->details->run\_list;

$obj->roles(<role\_name>)->details->override\_attributes;

## runlist ( @$recipes )

returns new [Chef::REST::Client::runlist](http://search.cpan.org/perldoc?Chef::REST::Client::runlist) object. it takes a list of recipies as parameter.
used by other classes

## sandboxes

returns new [Chef::REST::Client::sandboxes](http://search.cpan.org/perldoc?Chef::REST::Client::sandboxes) object. $obj->sandboxes->list;

- /sandboxes

$obj->sandboxes->list 

- /sandboxes/<id>

$obj->sandboxes(<id>)->details

## search

returns new [Chef::REST::Client::search](http://search.cpan.org/perldoc?Chef::REST::Client::search) 

- /search

$obj->search->listen

- /search/<index>

$obj->search(<index>)->details

- /search/ query id:centrify and get rows 1

$obj->search( 'secrets' , {  q => 'id:centrify', rows => 1 } )->details

## recipe

returns new [Chef::REST::Client::recipe](http://search.cpan.org/perldoc?Chef::REST::Client::recipe) object. used by other classes

## principals

returns new [Chef::REST::Client::principals](http://search.cpan.org/perldoc?Chef::REST::Client::principals) object. $obj->principals->details;

- /principals

$obj->principals->list 

- /principals/<name>

$obj->principals(<name>)->details

## node

returns new [Chef::REST::Client::node](http://search.cpan.org/perldoc?Chef::REST::Client::node) object. $obj->node->details;
used by other classes
 

## nodes

returns new [Chef::REST::Client::nodes](http://search.cpan.org/perldoc?Chef::REST::Client::nodes) object. $obj->nodes->list;

- /nodes

$obj->nodes->listen

- /nodes/<node\_name>

$obj->nodes(<node\_name>)->details 

## envrunlist

returns new [Chef::REST::Client::envrunnlist](http://search.cpan.org/perldoc?Chef::REST::Client::envrunnlist) object. used by other classes

## environment

returns new [Chef::REST::Client::environment](http://search.cpan.org/perldoc?Chef::REST::Client::environment) object. used by other classes

## environments

returns new [Chef::REST::Client::environments](http://search.cpan.org/perldoc?Chef::REST::Client::environments) object.

- /environment/<env\_name>

$obj->environments(<env\_name>)->details;

- /environment/<env\_name>/cookbooks/<cookbook\_name>

$obj->environments(<env\_name>,'cookbooks' , <cookbook\_name>)->details;

- /environment/<env\_name>/cookbooks

$obj->environments(<env\_name>,'cookbooks')

- POST /environments/<env\_name>/cookbooks\_versions

$obj->environments(<env\_name>,'cookbooks\_versions'
                             ,{ 'method' => 'post'
                              , 'data' => { 'runlist' => \[ 'ms-scribe'\] }
                              }
                   );

## databag

returns new [Chef::REST::Client::databag](http://search.cpan.org/perldoc?Chef::REST::Client::databag) object.

## data

returns new [Chef::REST::Client::data](http://search.cpan.org/perldoc?Chef::REST::Client::data) object.

- /data

$obj->data->list

- /data/<var\_name>

$obj->data( <var\_name> )->details

## cookbook

returns new [Chef::REST::Client::cookbook](http://search.cpan.org/perldoc?Chef::REST::Client::cookbook) object.

## cookbooks

returns new [Chef::REST::Client::cookbooks](http://search.cpan.org/perldoc?Chef::REST::Client::cookbooks) object.

- /cookbooks

$obj->cookbooks->list 

- /cookbooks/<cookbook\_name>

$obj->cookbooks(<cookbook\_name>)->details 

$obj->cookbooks(<cookbook\_name> , '\_latest' )->details->recipes;

$obj->cookbooks(<cookbook\_name> , '\_latest' )->details->attributes;

## cookbook\_version

returns new [Chef::REST::Client::cookbook\_version](http://search.cpan.org/perldoc?Chef::REST::Client::cookbook\_version) object.
used by other classes

## cookbook\_versions

returns new [Chef::REST::Client::cookbook\_versions](http://search.cpan.org/perldoc?Chef::REST::Client::cookbook\_versions) object.
collection of [Chef::REST::Client::cookbook\_version](http://search.cpan.org/perldoc?Chef::REST::Client::cookbook\_version)

## clients

returns new [Chef::REST::Client::clients](http://search.cpan.org/perldoc?Chef::REST::Client::clients) object.

- /clients

$obj->clients->list 

- /clients/<client\_name>/

$obj->clients(<client\_name>)->details



## attribute

returns new [Chef::REST::Client::attribute](http://search.cpan.org/perldoc?Chef::REST::Client::attribute) object.
used by other classes to structure data

## attributes

returns new [Chef::REST::Client::attributes](http://search.cpan.org/perldoc?Chef::REST::Client::attributes) object.
collection of [Chef::REST::Client::attribute](http://search.cpan.org/perldoc?Chef::REST::Client::attribute)

# KNOWN BUGS

# SUPPORT

open a github ticket or email comments to Bhavin Patel <bpatel10@nyit.edu>

# COPYRIGHT AND LICENSE

This Software is free to use , licensed under : The Artisic License 2.0 (GPL Compatible)