Class: Fastly::Service

Inherits:
Base
  • Object
show all
Defined in:
lib/fastly/service.rb

Overview

Represents something you want to serve - this can be, for example, a whole web site, a Wordpress site, or just your image servers

Instance Attribute Summary collapse

Attributes inherited from Base

#fetcher

Instance Method Summary collapse

Methods inherited from Base

#as_hash, #delete!, delete_path, get_path, #initialize, list_path, path, post_path, put_path, #require_api_key!, #save!

Constructor Details

This class inherits a constructor from Fastly::Base

Instance Attribute Details

#commentObject

Returns the value of attribute comment.



5
6
7
# File 'lib/fastly/service.rb', line 5

def comment
  @comment
end

#customer_idObject

Returns the value of attribute customer_id.



5
6
7
# File 'lib/fastly/service.rb', line 5

def customer_id
  @customer_id
end

#idObject

Returns the value of attribute id.



5
6
7
# File 'lib/fastly/service.rb', line 5

def id
  @id
end

#nameObject

Returns the value of attribute name.



5
6
7
# File 'lib/fastly/service.rb', line 5

def name
  @name
end

#versionsObject

Get a sorted array of all the versions that this service has had.



73
74
75
# File 'lib/fastly/service.rb', line 73

def versions
  @versions
end

Instance Method Details

#customerObject

Get the Customer object for this Service



88
89
90
# File 'lib/fastly/service.rb', line 88

def customer
  fetcher.get(Customer, customer_id)
end

#details(opts = {}) ⇒ Object

A deep hash of nested details



83
84
85
# File 'lib/fastly/service.rb', line 83

def details(opts = {})
  fetcher.client.get("#{Service.get_path(id)}/details", opts)
end

#invoice(year = nil, month = nil) ⇒ Object

Return a Invoice object representing the invoice for this service

If a year and month are passed in returns the invoice for that whole month.

Otherwise it returns the invoice for the current month so far.



46
47
48
49
50
51
52
53
54
55
# File 'lib/fastly/service.rb', line 46

def invoice(year = nil, month = nil)
  opts = { service_id: id }

  unless year.nil? || month.nil?
    opts[:year]  = year
    opts[:month] = month
  end

  fetcher.get(Invoice, opts)
end

#purge_allObject

Purge all assets from this service.

See README.md for examples of purging



60
61
62
# File 'lib/fastly/service.rb', line 60

def purge_all
  fetcher.client.post("#{Service.get_path(id)}/purge_all")
end

#purge_by_key(key, soft = false) ⇒ Object

Purge anything with the specific key from the given service.

See README.md for examples of purging



67
68
69
70
# File 'lib/fastly/service.rb', line 67

def purge_by_key(key, soft=false)
  require_api_key!
  fetcher.client.post("#{Service.get_path(id)}/purge/#{key}", soft ? { headers: { 'Fastly-Soft-Purge' => "1"} } : {})
end

#stats(_type = :all, opts = {}) ⇒ Object

Get a hash of stats from different data centers.

Type is always :all (argument is ignored)



37
38
39
# File 'lib/fastly/service.rb', line 37

def stats(_type = :all, opts = {})
  fetcher.client.get("#{Service.get_path(id)}/stats/summary", opts)
end

#version(number = -1)) ⇒ Object

Get an individual Version object. By default returns the latest version



78
79
80
# File 'lib/fastly/service.rb', line 78

def version(number = -1)
  versions[number]
end