package Net::Fastly::BelongsToServiceAndVersion; use strict; use base qw(Net::Fastly::Model); use URI::Escape; =head1 NAME Net::Fastly::BelongsToServiceAndVersion - base class for classes that belong to a service and a version =cut sub _get_path { my $class = shift; my $service = shift; my $version = shift; my $name = shift; return "/service/$service/version/$version/".$class->_path."/".uri_escape($name); } sub _post_path { my $class = shift; my %opts = @_; return "/service/".$opts{service_id}."/version/".$opts{version}."/".$class->_path; } sub _put_path { my $class = shift; my $obj = shift; return $class->_get_path($obj->service_id, $obj->version_number, $obj->name); } =head2 service Get the service object for this version =cut sub service { my $self = shift; return $self->{_service} ||= $self->_fetcher->_get("Net::Fastly::Service", $self->service_id); } =head2 version Get the version object for this object =cut sub version { my $self = shift; return $self->{_version} ||= $self->_fetcher->_get("Net::Fastly::Version", $self->service_id, $self->version_number); } =head2 version_number Get the version number for this object. =cut sub version_number { my $self = shift; return $self->{version}; } 1;