diff --git a/gen/models/container_info.go b/gen/models/container_info.go index 3eac1fa..df62c0b 100644 --- a/gen/models/container_info.go +++ b/gen/models/container_info.go @@ -29,6 +29,9 @@ type ContainerInfo struct { // Required: true BasicACL *string `json:"basicAcl"` + // The friendly name for the basicAcl field. + CannedACL string `json:"cannedAcl,omitempty"` + // container Id // Required: true ContainerID *string `json:"containerId"` diff --git a/gen/restapi/embedded_spec.go b/gen/restapi/embedded_spec.go index 62e2952..687b081 100644 --- a/gen/restapi/embedded_spec.go +++ b/gen/restapi/embedded_spec.go @@ -866,6 +866,10 @@ func init() { "basicAcl": { "type": "string" }, + "cannedAcl": { + "description": "The friendly name for the basicAcl field.", + "type": "string" + }, "containerId": { "type": "string" }, @@ -2509,6 +2513,10 @@ func init() { "basicAcl": { "type": "string" }, + "cannedAcl": { + "description": "The friendly name for the basicAcl field.", + "type": "string" + }, "containerId": { "type": "string" }, diff --git a/handlers/containers.go b/handlers/containers.go index 87749dd..c0d1d25 100644 --- a/handlers/containers.go +++ b/handlers/containers.go @@ -253,12 +253,36 @@ func getContainerInfo(ctx context.Context, p *pool.Pool, cnrID cid.ID) (*models. ContainerName: util.NewString(container.Name(*cnr)), OwnerID: util.NewString(cnr.Owner().String()), BasicACL: util.NewString(cnr.BasicACL().EncodeToString()), + CannedACL: friendlyBasicACL(cnr.BasicACL()), PlacementPolicy: util.NewString(sb.String()), Attributes: attrs, Version: util.NewString(getContainerVersion(cnr).String()), }, nil } +func friendlyBasicACL(basicACL acl.Basic) string { + switch basicACL { + case acl.Private: + return acl.NamePrivate + case acl.PrivateExtended: + return acl.NamePrivateExtended + case acl.PublicRO: + return acl.NamePublicRO + case acl.PublicROExtended: + return acl.NamePublicROExtended + case acl.PublicRW: + return acl.NamePublicRW + case acl.PublicRWExtended: + return acl.NamePublicRWExtended + case acl.PublicAppend: + return acl.NamePublicAppend + case acl.PublicAppendExtended: + return acl.NamePublicAppendExtended + default: + return "" + } +} + func getContainerVersion(cnr *container.Container) version.Version { var v2cnr containerv2.Container cnr.WriteToV2(&v2cnr) diff --git a/spec/rest.yaml b/spec/rest.yaml index f464ef4..51b541d 100644 --- a/spec/rest.yaml +++ b/spec/rest.yaml @@ -710,6 +710,9 @@ definitions: type: string basicAcl: type: string + cannedAcl: + description: The friendly name for the basicAcl field. + type: string placementPolicy: type: string attributes: