1: <?php
2:
3: namespace Guzzle\Service\Description;
4:
5: /**
6: * A ServiceDescription stores service information based on a service document
7: */
8: interface ServiceDescriptionInterface extends \Serializable
9: {
10: /**
11: * Get the basePath/baseUrl of the description
12: *
13: * @return string
14: */
15: public function getBaseUrl();
16:
17: /**
18: * Get the API operations of the service
19: *
20: * @return array Returns an array of {@see OperationInterface} objects
21: */
22: public function getOperations();
23:
24: /**
25: * Check if the service has an operation by name
26: *
27: * @param string $name Name of the operation to check
28: *
29: * @return bool
30: */
31: public function hasOperation($name);
32:
33: /**
34: * Get an API operation by name
35: *
36: * @param string $name Name of the command
37: *
38: * @return OperationInterface|null
39: */
40: public function getOperation($name);
41:
42: /**
43: * Get a specific model from the description
44: *
45: * @param string $id ID of the model
46: *
47: * @return Parameter|null
48: */
49: public function getModel($id);
50:
51: /**
52: * Get all service description models
53: *
54: * @return array
55: */
56: public function getModels();
57:
58: /**
59: * Check if the description has a specific model by name
60: *
61: * @param string $id ID of the model
62: *
63: * @return bool
64: */
65: public function hasModel($id);
66:
67: /**
68: * Get the API version of the service
69: *
70: * @return string
71: */
72: public function getApiVersion();
73:
74: /**
75: * Get the name of the API
76: *
77: * @return string
78: */
79: public function getName();
80:
81: /**
82: * Get a summary of the purpose of the API
83: *
84: * @return string
85: */
86: public function getDescription();
87:
88: /**
89: * Get arbitrary data from the service description that is not part of the Guzzle spec
90: *
91: * @param string $key Data key to retrieve
92: *
93: * @return null|mixed
94: */
95: public function getData($key);
96:
97: /**
98: * Set arbitrary data on the service description
99: *
100: * @param string $key Data key to set
101: * @param mixed $value Value to set
102: *
103: * @return self
104: */
105: public function setData($key, $value);
106: }
107: