Net::Fastly - client library for interacting with the Fastly web acceleration service
my $fastly = Net::Fastly->new(%login_opts); my $current_user = $fastly->current_user; my $current_customer = $fastly->current_customer; my $user = $fastly->get_user($current_user->id); my $customer = $fastly->get_customer($current_customer->id); print "Name: ".$user->name."\n"; print "Works for ".$user->customer->name."\n"; print "Which is the same as ".$customer->name."\n"; print "Which has the owner ".$customer->owner->name."\n"; # Let's see which services we have defined foreach my $service ($customer->list_services) { print $service->id."\n"; print $service->name."\n"; foreach my $version ($service->versions) { print "\t".$version->number."\n"; } } my $service = $fastly->create_service(name => "MyFirstService"); my $latest_version = $service->version; # Create a domain and a backend for the service ... my $domain = $fastly->create_domain(service_id => $service->id, version => $latest_version->number, name => "www.example.com"); my $backend = $fastly->create_backend(service_id => $service->id, version => $latest_version->number, ipv4 => "127.0.0.1", port => 80); # ... and activate it. You're now hosted on Fastly. $latest_version->activate; # Let's take a peek at the VCL that Fastly generated for us my $vcl = $latest_version->generated_vcl; print "Generated VCL file is:\n".$vcl->content."\n"; # Now let's create a new version ... my $new_version = $latest_version->clone; # ... add a new backend ... my $new_backend = $fastly->create_backend(service_id => $service->id, version => $new_version->number, ipv4 => "192.0.0.1", port => 8080); # ... and upload some custome vcl (presuming we have permissions) $new_version->upload_vcl($vcl_name, slurp($vcl_file)); $new_version->activate;
Create a new Fastly client. Options are
You only need to pass in api_key OR user and password.
api_key
user
password
Some methods require full username and password rather than just auth token.
Get the current Net::Fastly::Client
Whether or not we're authed at all by either username & password or API key
Whether or not we're fully (username and password) authed
Return a User object representing the current logged in user.
Return a Customer object representing the customer of the current logged in user.
Return a hash representing all commands available.
Useful for information.
Purge the specified path from your cache.
Create new objects.
Get existing objects.
Update existing objects.
Note - you can also do
$obj->save;
Delete existing objects.
$obj->delete
Get a list of all the services that the current customer has.
Search all the services that the current customer has.
In general you'll want to do
my @services = $fastly->search_services(name => $name);
or
my ($service) = $fastly->search_services(name => $name, version => $number);
Return an array of Net::Fastly::Invoice objects representing invoices for all services.
If a year and month are passed in returns the invoices for that whole month.
Otherwise it returns the invoices for the current month so far.
Attempts to load various config options in the form
<key> = <value>
From a file.
Skips whitespace and lines starting with #.
#
Tries to load options from the file[s] passed in using, load_options, stopping when it finds the first one.
load_options
Then it overrides those options with command line options of the form
--<key>=<value>
Copyright 2011 - Fastly Inc
Mail support at fastly dot com if you have problems.
http://github.com/fastly/fastly-perl
http://www.fastly.com/documentation
To install Net::Fastly, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::Fastly
CPAN shell
perl -MCPAN -e shell install Net::Fastly
For more information on module installation, please visit the detailed CPAN module installation guide.