forked from TrueCloudLab/policy-engine
49 lines
922 B
Go
49 lines
922 B
Go
package policyengine
|
|
|
|
type resource struct {
|
|
name string
|
|
properties map[string]string
|
|
}
|
|
|
|
func (r *resource) Name() string {
|
|
return r.name
|
|
}
|
|
|
|
func (r *resource) Property(name string) string {
|
|
return r.properties[name]
|
|
}
|
|
|
|
func newResource(name string, properties map[string]string) *resource {
|
|
if properties == nil {
|
|
properties = make(map[string]string)
|
|
}
|
|
return &resource{name: name, properties: properties}
|
|
}
|
|
|
|
type request struct {
|
|
operation string
|
|
properties map[string]string
|
|
resource *resource
|
|
}
|
|
|
|
var _ Request = (*request)(nil)
|
|
|
|
func (r *request) Operation() string {
|
|
return r.operation
|
|
}
|
|
|
|
func (r *request) Resource() Resource {
|
|
return r.resource
|
|
}
|
|
|
|
func (r *request) Property(name string) string {
|
|
return r.properties[name]
|
|
}
|
|
|
|
func newRequest(op string, r *resource, properties map[string]string) *request {
|
|
return &request{
|
|
operation: op,
|
|
properties: properties,
|
|
resource: r,
|
|
}
|
|
}
|