diff --git a/services/authorization/v2/authorization.json b/services/authorization/v2/authorization.json index 6448367..d85a575 100644 --- a/services/authorization/v2/authorization.json +++ b/services/authorization/v2/authorization.json @@ -453,7 +453,13 @@ "description": "Forbidden" } }, - "summary": "Get available permissions" + "summary": "Get available permissions", + "x-stackit-authorization": { + "disabled": true, + "implicit-actions": [ + "iam.member.get" + ] + } } }, "/v2/users/{email}/memberships": { @@ -533,7 +539,13 @@ "description": "Forbidden" } }, - "summary": "List memberships of a user" + "summary": "List memberships of a user", + "x-stackit-authorization": { + "disabled": true, + "implicit-actions": [ + "iam.member.get" + ] + } } }, "/v2/users/{email}/permissions": { @@ -616,7 +628,13 @@ "description": "Forbidden" } }, - "summary": "List permissions of a user" + "summary": "List permissions of a user", + "x-stackit-authorization": { + "disabled": true, + "implicit-actions": [ + "iam.member.get" + ] + } } }, "/v2/{resourceId}/members": { @@ -685,7 +703,13 @@ "description": "Forbidden" } }, - "summary": "Add members to a resource" + "summary": "Add members to a resource", + "x-stackit-authorization": { + "disabled": true, + "implicit-actions": [ + "iam.member.add" + ] + } } }, "/v2/{resourceId}/members/remove": { @@ -754,7 +778,13 @@ "description": "Forbidden" } }, - "summary": "Remove members from a resource" + "summary": "Remove members from a resource", + "x-stackit-authorization": { + "disabled": true, + "implicit-actions": [ + "iam.member.remove" + ] + } } }, "/v2/{resourceType}/{resourceId}/members": { @@ -828,7 +858,13 @@ "description": "Forbidden" } }, - "summary": "Get members to a resource" + "summary": "Get members to a resource", + "x-stackit-authorization": { + "disabled": true, + "implicit-actions": [ + "iam.member.get" + ] + } } }, "/v2/{resourceType}/{resourceId}/roles": { @@ -895,7 +931,13 @@ "description": "Forbidden" } }, - "summary": "Get roles and permissions of a resource" + "summary": "Get roles and permissions of a resource", + "x-stackit-authorization": { + "disabled": true, + "implicit-actions": [ + "iam.role.get" + ] + } } } }, diff --git a/services/certificates/v1beta/certificates.json b/services/certificates/v1beta/certificates.json index 9479739..bee6c15 100644 --- a/services/certificates/v1beta/certificates.json +++ b/services/certificates/v1beta/certificates.json @@ -205,7 +205,20 @@ "description": "Default error response" } }, - "summary": "Retrieve the list of TLS certificate stored in a project." + "summary": "Retrieve the list of TLS certificate stored in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.certificateservice.certificate.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "post": { "description": "CreateCertificate will store a TLS certificate in a project.", @@ -271,7 +284,20 @@ "description": "Default error response" } }, - "summary": "Store a TLS certificate in a project." + "summary": "Store a TLS certificate in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.certificateservice.certificate.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1beta/projects/{projectId}/certificates/{id}": { @@ -337,7 +363,20 @@ "description": "Default error response" } }, - "summary": "Delete a stored TLS certificate in a project." + "summary": "Delete a stored TLS certificate in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.certificateservice.certificate.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "get": { "description": "GetCertificate will return the public parts of a stored TLS certificate.", @@ -404,7 +443,20 @@ "description": "Default error response" } }, - "summary": "Retrieve the public parts of a stored TLS certificate." + "summary": "Retrieve the public parts of a stored TLS certificate.", + "x-stackit-authorization": { + "actions": [ + "alb.certificateservice.certificate.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } } }, diff --git a/services/dns/v1/dns.json b/services/dns/v1/dns.json index 6204c39..26ab1c6 100644 --- a/services/dns/v1/dns.json +++ b/services/dns/v1/dns.json @@ -1207,7 +1207,20 @@ "description": "Bad Gateway" } }, - "summary": "move zone from one project to another" + "summary": "move zone from one project to another", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones": { @@ -1686,7 +1699,20 @@ "description": "Bad Gateway" } }, - "summary": "All get selected zones" + "summary": "All get selected zones", + "x-stackit-authorization": { + "actions": [ + "dns.zone.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } }, "post": { "description": "Post zone create a new zone", @@ -1765,7 +1791,20 @@ "description": "Bad Gateway" } }, - "summary": "Post create a new zone" + "summary": "Post create a new zone", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}": { @@ -1834,7 +1873,20 @@ "description": "Bad Gateway" } }, - "summary": "Delete a zone" + "summary": "Delete a zone", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } }, "get": { "description": "Get zone", @@ -1891,7 +1943,20 @@ "description": "Bad Gateway" } }, - "summary": "Get a single zone" + "summary": "Get a single zone", + "x-stackit-authorization": { + "actions": [ + "dns.zone.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } }, "patch": { "description": "Patch update an existing zone", @@ -1969,7 +2034,20 @@ "description": "Bad Gateway" } }, - "summary": "Patch update an existing zone" + "summary": "Patch update an existing zone", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/clone": { @@ -2059,7 +2137,20 @@ "description": "Bad Gateway" } }, - "summary": "Clone an existing zone with all record sets to a new zone with a different name" + "summary": "Clone an existing zone with all record sets to a new zone with a different name", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/export": { @@ -2159,7 +2250,20 @@ "description": "Forbidden" } }, - "summary": "Export all records in a single zone" + "summary": "Export all records in a single zone", + "x-stackit-authorization": { + "actions": [ + "dns.zone.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/import": { @@ -2278,7 +2382,20 @@ "description": "Bad Gateway" } }, - "summary": "Imports a zone" + "summary": "Imports a zone", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/labels": { @@ -2347,7 +2464,20 @@ "description": "Bad Gateway" } }, - "summary": "Get all labels" + "summary": "Get all labels", + "x-stackit-authorization": { + "actions": [ + "dns.zone.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } }, "put": { "description": "Create or update label", @@ -2425,7 +2555,20 @@ "description": "Bad Gateway" } }, - "summary": "Create or update label" + "summary": "Create or update label", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/labels/{key}": { @@ -2503,7 +2646,20 @@ "description": "Bad Gateway" } }, - "summary": "Delete a label" + "summary": "Delete a label", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/move-code": { @@ -2562,7 +2718,20 @@ "description": "Bad Gateway" } }, - "summary": "delete/invalidate a move code" + "summary": "delete/invalidate a move code", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } }, "post": { "description": "move zone from one project to another", @@ -2619,7 +2788,20 @@ "description": "Bad Gateway" } }, - "summary": "request a move code to move zone to another project" + "summary": "request a move code to move zone to another project", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/move-code-validation": { @@ -2689,7 +2871,20 @@ "description": "Bad Gateway" } }, - "summary": "validate the move code is still valid for the zone" + "summary": "validate the move code is still valid for the zone", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/restores": { @@ -2748,7 +2943,20 @@ "description": "Bad Gateway" } }, - "summary": "Restore an inactive zone" + "summary": "Restore an inactive zone", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/retrieve": { @@ -2807,7 +3015,20 @@ "description": "Bad Gateway" } }, - "summary": "Queue secondary zone for a zone transfer request." + "summary": "Queue secondary zone for a zone transfer request.", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/rrsets": { @@ -3204,7 +3425,20 @@ "description": "Bad Gateway" } }, - "summary": "All get selected RRSets" + "summary": "All get selected RRSets", + "x-stackit-authorization": { + "actions": [ + "dns.zone.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } }, "post": { "description": "Post record set", @@ -3292,7 +3526,20 @@ "description": "Bad Gateway" } }, - "summary": "Post record set" + "summary": "Post record set", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/rrsets/{rrSetId}": { @@ -3370,7 +3617,20 @@ "description": "Bad Gateway" } }, - "summary": "Delete a record set" + "summary": "Delete a record set", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } }, "get": { "description": "Get rrset", @@ -3436,7 +3696,20 @@ "description": "Bad Gateway" } }, - "summary": "Get a single rrset" + "summary": "Get a single rrset", + "x-stackit-authorization": { + "actions": [ + "dns.zone.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } }, "patch": { "description": "Patch record set", @@ -3523,7 +3796,20 @@ "description": "Bad Gateway" } }, - "summary": "Patch updates a record set" + "summary": "Patch updates a record set", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/rrsets/{rrSetId}/records": { @@ -3612,7 +3898,20 @@ "description": "Bad Gateway" } }, - "summary": "PatchRecords updates a record in a rrset" + "summary": "PatchRecords updates a record in a rrset", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } }, "/v1/projects/{projectId}/zones/{zoneId}/rrsets/{rrSetId}/restores": { @@ -3680,7 +3979,20 @@ "description": "Bad Gateway" } }, - "summary": "Restore record set" + "summary": "Restore record set", + "x-stackit-authorization": { + "actions": [ + "dns.zone.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.dns" + ] + } + } } } }, diff --git a/services/iaas/v1alpha1/iaas.json b/services/iaas/v1alpha1/iaas.json index 34381b4..1b3bb1c 100644 --- a/services/iaas/v1alpha1/iaas.json +++ b/services/iaas/v1alpha1/iaas.json @@ -4783,7 +4783,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all availability zones." + "summary": "List all availability zones.", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1alpha1/keypairs": { @@ -4822,7 +4825,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all SSH keypairs for the requesting user." + "summary": "List all SSH keypairs for the requesting user.", + "x-stackit-authorization": { + "disabled": true + } }, "post": { "description": "Import a new public key for the requesting user based on provided public key material. The creation will fail if an SSH keypair with the same name already exists. If a name is not provided it is autogenerated form the ssh-pubkey comment section. If that is also not present it will be the the MD5 fingerprint of the key. For autogenerated names invalid characters will be removed.", @@ -4868,7 +4874,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Import a public key." + "summary": "Import a public key.", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1alpha1/keypairs/{keypairName}": { @@ -4895,7 +4904,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete an SSH keypair." + "summary": "Delete an SSH keypair.", + "x-stackit-authorization": { + "disabled": true + } }, "get": { "description": "Get details about an SSH keypair.", @@ -4927,7 +4939,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get SSH keypair details." + "summary": "Get SSH keypair details.", + "x-stackit-authorization": { + "disabled": true + } }, "parameters": [ { @@ -4975,7 +4990,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of an SSH keypair." + "summary": "Update information of an SSH keypair.", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1alpha1/networks/public-ip-ranges": { @@ -5009,7 +5027,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all public IP ranges." + "summary": "List all public IP ranges.", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1alpha1/organizations/{organizationId}/network-areas": { @@ -5048,7 +5069,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all network areas in an organization." + "summary": "List all network areas in an organization.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.list" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5124,7 +5153,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new network area in an organization." + "summary": "Create new network area in an organization.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.create" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } } }, "/v1alpha1/organizations/{organizationId}/network-areas/{areaId}": { @@ -5154,7 +5191,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a network area." + "summary": "Delete a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.delete" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "get": { "description": "Get details about a network area in an organization.", @@ -5186,7 +5231,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a network area." + "summary": "Get details about a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.get" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5253,7 +5306,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update network area settings." + "summary": "Update network area settings.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.update" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } } }, "/v1alpha1/organizations/{organizationId}/network-areas/{areaId}/network-ranges": { @@ -5287,7 +5348,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all network ranges in a network area." + "summary": "List all network ranges in a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.range.list" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5348,7 +5417,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new network range in a network area." + "summary": "Create new network range in a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.range.create" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } } }, "/v1alpha1/organizations/{organizationId}/network-areas/{areaId}/network-ranges/{networkRangeId}": { @@ -5378,7 +5455,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a network range." + "summary": "Delete a network range.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.range.delete" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "get": { "description": "Get details about a network range in a network area.", @@ -5410,7 +5495,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a network range." + "summary": "Get details about a network range.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.range.get" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5455,7 +5548,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all projects using a network area." + "summary": "List all projects using a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.project.list" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5502,7 +5603,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all network routes in a network area." + "summary": "List all network routes in a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.route.list" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5564,7 +5673,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new network routes." + "summary": "Create new network routes.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.route.create" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } } }, "/v1alpha1/organizations/{organizationId}/network-areas/{areaId}/routes/{routeId}": { @@ -5591,7 +5708,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a network route." + "summary": "Delete a network route.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.route.delete" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "get": { "description": "Get details about a network route defined in a network area.", @@ -5623,7 +5748,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a network route." + "summary": "Get details about a network route.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.route.get" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5677,7 +5810,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update a network route." + "summary": "Update a network route.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.route.update" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } } }, "/v1alpha1/organizations/{organizationId}/requests/{requestId}": { @@ -5711,7 +5852,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Lookup an organization request ID." + "summary": "Lookup an organization request ID.", + "x-stackit-authorization": { + "actions": [ + "iaas.request.get" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5753,7 +5902,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get project details." + "summary": "Get project details.", + "x-stackit-authorization": { + "actions": [ + "iaas.project.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -5795,7 +5952,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get the affinity groups setup for a project." + "summary": "Get the affinity groups setup for a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.affinity-group.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -5847,7 +6012,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create a new affinity group in a project." + "summary": "Create a new affinity group in a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.affinity-group.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/affinity-groups/{affinityGroupId}": { @@ -5874,7 +6047,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a affinity group in a project." + "summary": "Delete a affinity group in a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.affinity-group.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get the affinity group created in a project.", @@ -5906,7 +6087,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get the affinity group." + "summary": "Get the affinity group.", + "x-stackit-authorization": { + "actions": [ + "iaas.affinity-group.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -5953,7 +6142,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all backups inside a project." + "summary": "List all backups inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6021,7 +6218,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new Backup." + "summary": "Create new Backup.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/backups/{backupId}": { @@ -6053,7 +6258,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a backup." + "summary": "Delete a backup.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a block device backup.", @@ -6085,7 +6298,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a backup." + "summary": "Get details about a backup.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6150,7 +6371,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of a backup." + "summary": "Update information of a backup.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/backups/{backupId}/restore": { @@ -6185,7 +6414,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Restore Backup to the referenced source Volume." + "summary": "Restore Backup to the referenced source Volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.restore" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/images": { @@ -6224,7 +6461,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all Images inside a project." + "summary": "List all Images inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6296,7 +6541,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new Image." + "summary": "Create new Image.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/images/{imageId}": { @@ -6323,7 +6576,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete an Image." + "summary": "Delete an Image.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a specific Image inside a project.", @@ -6355,7 +6616,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about an image." + "summary": "Get details about an image.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6413,7 +6682,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update Image Parameters." + "summary": "Update Image Parameters.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/images/{imageId}/publish": { @@ -6447,7 +6724,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update Image Scope to Local." + "summary": "Update Image Scope to Local.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.publish.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6487,7 +6772,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update Image Scope to Public." + "summary": "Update Image Scope to Public.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.publish.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/images/{imageId}/share": { @@ -6514,7 +6807,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Remove image share." + "summary": "Remove image share.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get share details about an shared image.", @@ -6571,7 +6872,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get share details of an image." + "summary": "Get share details of an image.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6637,7 +6946,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update image share." + "summary": "Update image share.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "Set share of an Image. New Options will replace existing settings.", @@ -6695,7 +7012,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Set image share." + "summary": "Set image share.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/images/{imageId}/share/{consumerProjectId}": { @@ -6722,7 +7047,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Remove an image share consumer." + "summary": "Remove an image share consumer.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about an image share consumer.", @@ -6754,7 +7087,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get image share consumer." + "summary": "Get image share consumer.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6799,7 +7140,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all machine types available for a project." + "summary": "List all machine types available for a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.machine-type.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6838,7 +7187,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a machine type." + "summary": "Get details about a machine type.", + "x-stackit-authorization": { + "actions": [ + "iaas.machine-type.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6885,7 +7242,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all networks inside a project." + "summary": "List all networks inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.network.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6976,7 +7341,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new network." + "summary": "Create new network.", + "x-stackit-authorization": { + "actions": [ + "iaas.network.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/networks/{networkId}": { @@ -7006,7 +7379,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete network." + "summary": "Delete network.", + "x-stackit-authorization": { + "actions": [ + "iaas.network.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a network of a project.", @@ -7038,7 +7419,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get network details." + "summary": "Get network details.", + "x-stackit-authorization": { + "actions": [ + "iaas.network.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7092,7 +7481,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update network settings." + "summary": "Update network settings.", + "x-stackit-authorization": { + "actions": [ + "iaas.network.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/networks/{networkId}/nics": { @@ -7131,7 +7528,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all network interfaces inside a network." + "summary": "List all network interfaces inside a network.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7188,7 +7593,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new network interface." + "summary": "Create new network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/networks/{networkId}/nics/{nicId}": { @@ -7215,7 +7628,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a network interface." + "summary": "Delete a network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a network interface inside a network.", @@ -7247,7 +7668,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a network interface of a network." + "summary": "Get details about a network interface of a network.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7304,7 +7733,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update a network interface." + "summary": "Update a network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/networks/{networkId}/virtual-ips": { @@ -7343,7 +7780,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all virtual IPs inside a project." + "summary": "List all virtual IPs inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.virtual-ip.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7397,7 +7842,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new virtual IP." + "summary": "Create new virtual IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.virtual-ip.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/networks/{networkId}/virtual-ips/{virtualIpId}": { @@ -7424,7 +7877,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a virtual IP." + "summary": "Delete a virtual IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.virtual-ip.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a virtual IP inside a project.", @@ -7456,7 +7917,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a virtual IP." + "summary": "Get details about a virtual IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.virtual-ip.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7503,7 +7972,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update a virtual IP." + "summary": "Update a virtual IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.virtual-ip.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/networks/{networkId}/virtual-ips/{virtualIpId}/add-member": { @@ -7559,7 +8036,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Add a member to the virtual IP." + "summary": "Add a member to the virtual IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.virtual-ip.member.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/networks/{networkId}/virtual-ips/{virtualIpId}/remove-member": { @@ -7615,7 +8100,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Remove a member from the virtual IP." + "summary": "Remove a member from the virtual IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.virtual-ip.member.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/nics": { @@ -7654,7 +8147,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all network interfaces inside a project." + "summary": "List all network interfaces inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7693,7 +8194,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a network interface of a project." + "summary": "Get details about a network interface of a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7740,7 +8249,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all public IPs inside a project." + "summary": "List all public IPs inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.public-ip.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7791,7 +8308,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new public IP." + "summary": "Create new public IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.public-ip.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/public-ips/{publicIpId}": { @@ -7818,7 +8343,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a public IP." + "summary": "Delete a public IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.public-ip.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a public IP inside a project.", @@ -7850,7 +8383,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a public IP." + "summary": "Get details about a public IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.public-ip.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7901,7 +8442,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update a public IP." + "summary": "Update a public IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.public-ip.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/quotas": { @@ -7935,7 +8484,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List project quotas." + "summary": "List project quotas.", + "x-stackit-authorization": { + "actions": [ + "iaas.quota.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7974,7 +8531,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Lookup a project request ID." + "summary": "Lookup a project request ID.", + "x-stackit-authorization": { + "actions": [ + "iaas.request.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8021,7 +8586,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all security groups inside a project." + "summary": "List all security groups inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8069,7 +8642,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new security group." + "summary": "Create new security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/security-groups/{securityGroupId}": { @@ -8099,7 +8680,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete security group." + "summary": "Delete security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a security group of a project.", @@ -8131,7 +8720,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get security group details." + "summary": "Get security group details.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8182,7 +8779,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of a security group." + "summary": "Update information of a security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/security-groups/{securityGroupId}/rules": { @@ -8216,7 +8821,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all rules for a security group." + "summary": "List all rules for a security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.rule.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8267,7 +8880,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new security group rule." + "summary": "Create new security group rule.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.rule.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/security-groups/{securityGroupId}/rules/{securityGroupRuleId}": { @@ -8294,7 +8915,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete security group rule." + "summary": "Delete security group rule.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.rule.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a security group rule of a project.", @@ -8326,7 +8955,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get security group rule details." + "summary": "Get security group rule details.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.rule.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8379,7 +9016,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all servers inside a project." + "summary": "List all servers inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8496,7 +9141,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new server." + "summary": "Create new server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}": { @@ -8523,7 +9176,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a server." + "summary": "Delete a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a server by its ID.", @@ -8560,7 +9221,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get server details." + "summary": "Get server details.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8625,7 +9294,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of a server." + "summary": "Update information of a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/console": { @@ -8659,7 +9336,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get server console." + "summary": "Get server console.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.console-url.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8705,7 +9390,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Deallocate an existing server." + "summary": "Deallocate an existing server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.deallocate" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/log": { @@ -8752,7 +9445,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get server log." + "summary": "Get server log.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.console-log.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8787,7 +9488,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Detach and delete all network interfaces associated with the specified network." + "summary": "Detach and delete all network interfaces associated with the specified network.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.network.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8823,7 +9532,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create and attach a network interface from the specified network." + "summary": "Create and attach a network interface from the specified network.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.network.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/nics": { @@ -8857,7 +9574,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get all network interfaces." + "summary": "Get all network interfaces.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.nic.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8892,7 +9617,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Detach a network interface." + "summary": "Detach a network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.nic.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8931,7 +9664,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Attach an existing network interface." + "summary": "Attach an existing network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.nic.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/public-ips/{publicIpId}": { @@ -8961,7 +9702,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Dissociate a public IP from a server." + "summary": "Dissociate a public IP from a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.public-ip.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9000,7 +9749,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Associate a public IP to the server." + "summary": "Associate a public IP to the server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.public-ip.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/reboot": { @@ -9054,7 +9811,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Reboot the server." + "summary": "Reboot the server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.reboot" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/rescue": { @@ -9106,7 +9871,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Rescue an existing server." + "summary": "Rescue an existing server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.rescue" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/resize": { @@ -9158,7 +9931,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Resize a server." + "summary": "Resize a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.resize" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/security-groups/{securityGroupId}": { @@ -9188,7 +9969,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Remove a server from a security group." + "summary": "Remove a server from a security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.security-group.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9227,7 +10016,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Add a server to a security group." + "summary": "Add a server to a security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.security-group.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/service-accounts": { @@ -9261,7 +10058,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all service accounts of the Server." + "summary": "List all service accounts of the Server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.service-account.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9306,7 +10111,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Detach a service account from a server." + "summary": "Detach a service account from a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.service-account.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9352,7 +10165,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Attach service account to a server." + "summary": "Attach service account to a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.service-account.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/start": { @@ -9390,7 +10211,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Boot up a server." + "summary": "Boot up a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.start" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/stop": { @@ -9428,7 +10257,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Stop an existing server." + "summary": "Stop an existing server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.stop" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/unrescue": { @@ -9466,7 +10303,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Unrescue an existing server." + "summary": "Unrescue an existing server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.unrescue" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/servers/{serverId}/volume-attachments": { @@ -9500,7 +10345,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all volume attachments of a server." + "summary": "List all volume attachments of a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.volume.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9538,7 +10391,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Detach a volume from a server." + "summary": "Detach a volume from a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.volume.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get the details of an existing Volume Attachment.", @@ -9570,7 +10431,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get Volume Attachment details." + "summary": "Get Volume Attachment details.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.volume.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9627,7 +10496,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update Volume Attachment Parameters." + "summary": "Update Volume Attachment Parameters.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.volume.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "Attach an existing volume to an existing server.", @@ -9672,7 +10549,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Attach a volume to a server." + "summary": "Attach a volume to a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.volume.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/snapshots": { @@ -9711,7 +10596,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all snapshots inside a project." + "summary": "List all snapshots inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.snapshot.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9763,7 +10656,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new Snapshot." + "summary": "Create new Snapshot.", + "x-stackit-authorization": { + "actions": [ + "iaas.snapshot.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/snapshots/{snapshotId}": { @@ -9790,7 +10691,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a snapshot." + "summary": "Delete a snapshot.", + "x-stackit-authorization": { + "actions": [ + "iaas.snapshot.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a block device snapshot.", @@ -9822,7 +10731,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a snapshot." + "summary": "Get details about a snapshot.", + "x-stackit-authorization": { + "actions": [ + "iaas.snapshot.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9887,7 +10804,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of the snapshot." + "summary": "Update information of the snapshot.", + "x-stackit-authorization": { + "actions": [ + "iaas.snapshot.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/volume-performance-classes": { @@ -9926,7 +10851,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all volume performance classes available for a project." + "summary": "List all volume performance classes available for a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume-performance-class.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9965,7 +10898,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a volume performance class." + "summary": "Get details about a volume performance class.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume-performance-class.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -10012,7 +10953,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all volumes inside a project." + "summary": "List all volumes inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -10118,7 +11067,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new volume." + "summary": "Create new volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/volumes/{volumeId}": { @@ -10148,7 +11105,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a volume." + "summary": "Delete a volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a block device volume.", @@ -10180,7 +11145,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a volume." + "summary": "Get details about a volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -10231,7 +11204,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of a volume." + "summary": "Update information of a volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1alpha1/projects/{projectId}/volumes/{volumeId}/resize": { @@ -10279,7 +11260,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update the size of a volume." + "summary": "Update the size of a volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.resize" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/iaas/v1beta1/iaas.json b/services/iaas/v1beta1/iaas.json index 65d851a..996b8ed 100644 --- a/services/iaas/v1beta1/iaas.json +++ b/services/iaas/v1beta1/iaas.json @@ -4525,7 +4525,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all availability zones." + "summary": "List all availability zones.", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1beta1/keypairs": { @@ -4564,7 +4567,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all SSH keypairs for the requesting user." + "summary": "List all SSH keypairs for the requesting user.", + "x-stackit-authorization": { + "disabled": true + } }, "post": { "description": "Import a new public key for the requesting user based on provided public key material. The creation will fail if an SSH keypair with the same name already exists. If a name is not provided it is autogenerated form the ssh-pubkey comment section. If that is also not present it will be the the MD5 fingerprint of the key. For autogenerated names invalid characters will be removed.", @@ -4610,7 +4616,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Import a public key." + "summary": "Import a public key.", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1beta1/keypairs/{keypairName}": { @@ -4637,7 +4646,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete an SSH keypair." + "summary": "Delete an SSH keypair.", + "x-stackit-authorization": { + "disabled": true + } }, "get": { "description": "Get details about an SSH keypair.", @@ -4669,7 +4681,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get SSH keypair details." + "summary": "Get SSH keypair details.", + "x-stackit-authorization": { + "disabled": true + } }, "parameters": [ { @@ -4717,7 +4732,10 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of an SSH keypair." + "summary": "Update information of an SSH keypair.", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1beta1/organizations/{organizationId}/network-areas": { @@ -4756,7 +4774,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all network areas in an organization." + "summary": "List all network areas in an organization.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.list" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -4832,7 +4858,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new network area in an organization." + "summary": "Create new network area in an organization.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.create" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } } }, "/v1beta1/organizations/{organizationId}/network-areas/{areaId}": { @@ -4862,7 +4896,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a network area." + "summary": "Delete a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.delete" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "get": { "description": "Get details about a network area in an organization.", @@ -4894,7 +4936,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a network area." + "summary": "Get details about a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.get" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -4961,7 +5011,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update network area settings." + "summary": "Update network area settings.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.update" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } } }, "/v1beta1/organizations/{organizationId}/network-areas/{areaId}/network-ranges": { @@ -4995,7 +5053,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all network ranges in a network area." + "summary": "List all network ranges in a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.range.list" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5056,7 +5122,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new network range in a network area." + "summary": "Create new network range in a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.range.create" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } } }, "/v1beta1/organizations/{organizationId}/network-areas/{areaId}/network-ranges/{networkRangeId}": { @@ -5086,7 +5160,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a network range." + "summary": "Delete a network range.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.range.delete" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "get": { "description": "Get details about a network range in a network area.", @@ -5118,7 +5200,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a network range." + "summary": "Get details about a network range.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.range.get" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5163,7 +5253,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all projects using a network area." + "summary": "List all projects using a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.project.list" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5210,7 +5308,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all network routes in a network area." + "summary": "List all network routes in a network area.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.route.list" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5272,7 +5378,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new network routes." + "summary": "Create new network routes.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.route.create" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } } }, "/v1beta1/organizations/{organizationId}/network-areas/{areaId}/routes/{routeId}": { @@ -5299,7 +5413,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a network route." + "summary": "Delete a network route.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.route.delete" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "get": { "description": "Get details about a network route defined in a network area.", @@ -5331,7 +5453,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a network route." + "summary": "Get details about a network route.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.route.get" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5385,7 +5515,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update a network route." + "summary": "Update a network route.", + "x-stackit-authorization": { + "actions": [ + "iaas.network-area.route.update" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } } }, "/v1beta1/organizations/{organizationId}/requests/{requestId}": { @@ -5419,7 +5557,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Lookup an organization request ID." + "summary": "Lookup an organization request ID.", + "x-stackit-authorization": { + "actions": [ + "iaas.request.get" + ], + "resource-id": "organizationId", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -5464,7 +5610,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get the affinity groups setup for a project." + "summary": "Get the affinity groups setup for a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.affinity-group.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -5516,7 +5670,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create a new affinity group in a project." + "summary": "Create a new affinity group in a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.affinity-group.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/affinity-groups/{affinityGroupId}": { @@ -5543,7 +5705,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a affinity group in a project." + "summary": "Delete a affinity group in a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.affinity-group.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get the affinity group created in a project.", @@ -5575,7 +5745,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get the affinity group." + "summary": "Get the affinity group.", + "x-stackit-authorization": { + "actions": [ + "iaas.affinity-group.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -5622,7 +5800,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all backups inside a project." + "summary": "List all backups inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -5690,7 +5876,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new Backup." + "summary": "Create new Backup.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/backups/{backupId}": { @@ -5722,7 +5916,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a backup." + "summary": "Delete a backup.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a block device backup.", @@ -5754,7 +5956,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a backup." + "summary": "Get details about a backup.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -5819,7 +6029,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of a backup." + "summary": "Update information of a backup.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/backups/{backupId}/restore": { @@ -5854,7 +6072,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Restore Backup to the referenced source Volume." + "summary": "Restore Backup to the referenced source Volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.backup.restore" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/images": { @@ -5893,7 +6119,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all Images inside a project." + "summary": "List all Images inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -5965,7 +6199,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new Image." + "summary": "Create new Image.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/images/{imageId}": { @@ -5992,7 +6234,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete an Image." + "summary": "Delete an Image.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a specific Image inside a project.", @@ -6024,7 +6274,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about an image." + "summary": "Get details about an image.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6082,7 +6340,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update Image Parameters." + "summary": "Update Image Parameters.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/images/{imageId}/publish": { @@ -6116,7 +6382,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update Image Scope to Local." + "summary": "Update Image Scope to Local.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.publish.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6156,7 +6430,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update Image Scope to Public." + "summary": "Update Image Scope to Public.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.publish.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/images/{imageId}/share": { @@ -6183,7 +6465,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Remove image share." + "summary": "Remove image share.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get share details about an shared image.", @@ -6240,7 +6530,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get share details of an image." + "summary": "Get share details of an image.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6306,7 +6604,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update image share." + "summary": "Update image share.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "Set share of an Image. New Options will replace existing settings.", @@ -6364,7 +6670,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Set image share." + "summary": "Set image share.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/images/{imageId}/share/{consumerProjectId}": { @@ -6391,7 +6705,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Remove an image share consumer." + "summary": "Remove an image share consumer.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about an image share consumer.", @@ -6423,7 +6745,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get image share consumer." + "summary": "Get image share consumer.", + "x-stackit-authorization": { + "actions": [ + "iaas.image.share.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6468,7 +6798,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all machine types available for a project." + "summary": "List all machine types available for a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.machine-type.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6507,7 +6845,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a machine type." + "summary": "Get details about a machine type.", + "x-stackit-authorization": { + "actions": [ + "iaas.machine-type.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6554,7 +6900,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all networks inside a project." + "summary": "List all networks inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.network.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6645,7 +6999,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new network." + "summary": "Create new network.", + "x-stackit-authorization": { + "actions": [ + "iaas.network.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/networks/{networkId}": { @@ -6675,7 +7037,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete network." + "summary": "Delete network.", + "x-stackit-authorization": { + "actions": [ + "iaas.network.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a network of a project.", @@ -6707,7 +7077,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get network details." + "summary": "Get network details.", + "x-stackit-authorization": { + "actions": [ + "iaas.network.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6761,7 +7139,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update network settings." + "summary": "Update network settings.", + "x-stackit-authorization": { + "actions": [ + "iaas.network.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/networks/{networkId}/nics": { @@ -6800,7 +7186,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all network interfaces inside a network." + "summary": "List all network interfaces inside a network.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6857,7 +7251,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new network interface." + "summary": "Create new network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/networks/{networkId}/nics/{nicId}": { @@ -6884,7 +7286,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a network interface." + "summary": "Delete a network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a network interface inside a network.", @@ -6916,7 +7326,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a network interface." + "summary": "Get details about a network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -6973,7 +7391,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update a network interface." + "summary": "Update a network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/nics": { @@ -7012,7 +7438,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all network interfaces inside a project." + "summary": "List all network interfaces inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7051,7 +7485,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a network interface of a project." + "summary": "Get details about a network interface of a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.nic.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7098,7 +7540,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all public IPs inside a project." + "summary": "List all public IPs inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.public-ip.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7149,7 +7599,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new public IP." + "summary": "Create new public IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.public-ip.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/public-ips/{publicIpId}": { @@ -7176,7 +7634,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a public IP." + "summary": "Delete a public IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.public-ip.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a public IP inside a project.", @@ -7208,7 +7674,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a public IP." + "summary": "Get details about a public IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.public-ip.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7259,7 +7733,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update a public IP." + "summary": "Update a public IP.", + "x-stackit-authorization": { + "actions": [ + "iaas.public-ip.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/quotas": { @@ -7293,7 +7775,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List project quotas." + "summary": "List project quotas.", + "x-stackit-authorization": { + "actions": [ + "iaas.quota.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7332,7 +7822,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Lookup a project request ID." + "summary": "Lookup a project request ID.", + "x-stackit-authorization": { + "actions": [ + "iaas.request.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7379,7 +7877,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all security groups inside a project." + "summary": "List all security groups inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7427,7 +7933,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new security group." + "summary": "Create new security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/security-groups/{securityGroupId}": { @@ -7457,7 +7971,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete security group." + "summary": "Delete security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a security group of a project.", @@ -7489,7 +8011,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get security group details." + "summary": "Get security group details.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7540,7 +8070,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of a security group." + "summary": "Update information of a security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/security-groups/{securityGroupId}/rules": { @@ -7574,7 +8112,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all rules for a security group." + "summary": "List all rules for a security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.rule.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7625,7 +8171,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new security group rule." + "summary": "Create new security group rule.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.rule.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/security-groups/{securityGroupId}/rules/{securityGroupRuleId}": { @@ -7652,7 +8206,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete security group rule." + "summary": "Delete security group rule.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.rule.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a security group rule of a project.", @@ -7684,7 +8246,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get security group rule details." + "summary": "Get security group rule details.", + "x-stackit-authorization": { + "actions": [ + "iaas.security-group.rule.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7737,7 +8307,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all servers inside a project." + "summary": "List all servers inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7854,7 +8432,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new server." + "summary": "Create new server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}": { @@ -7881,7 +8467,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a server." + "summary": "Delete a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a server by its ID.", @@ -7918,7 +8512,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get server details." + "summary": "Get server details.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -7983,7 +8585,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of a server." + "summary": "Update information of a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/console": { @@ -8017,7 +8627,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get server console." + "summary": "Get server console.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.console-url.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8063,7 +8681,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Deallocate an existing server." + "summary": "Deallocate an existing server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.deallocate" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/log": { @@ -8110,7 +8736,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get server log." + "summary": "Get server log.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.console-log.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8145,7 +8779,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Detach and delete all network interfaces associated with the specified network." + "summary": "Detach and delete all network interfaces associated with the specified network.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.network.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8181,7 +8823,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create and attach a network interface from the specified network." + "summary": "Create and attach a network interface from the specified network.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.network.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/nics": { @@ -8215,7 +8865,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get all network interfaces." + "summary": "Get all network interfaces.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.nic.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8250,7 +8908,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Detach a network interface." + "summary": "Detach a network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.nic.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8289,7 +8955,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Attach an existing network interface." + "summary": "Attach an existing network interface.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.nic.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/public-ips/{publicIpId}": { @@ -8319,7 +8993,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Dissociate a public IP from a server." + "summary": "Dissociate a public IP from a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.public-ip.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8358,7 +9040,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Associate a public IP to the server." + "summary": "Associate a public IP to the server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.public-ip.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/reboot": { @@ -8412,7 +9102,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Reboot the server." + "summary": "Reboot the server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.reboot" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/rescue": { @@ -8464,7 +9162,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Rescue an existing server." + "summary": "Rescue an existing server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.rescue" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/resize": { @@ -8516,7 +9222,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Resize a server." + "summary": "Resize a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.resize" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/security-groups/{securityGroupId}": { @@ -8546,7 +9260,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Remove a server from a security group." + "summary": "Remove a server from a security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.security-group.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8585,7 +9307,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Add a server to a security group." + "summary": "Add a server to a security group.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.security-group.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/service-accounts": { @@ -8619,7 +9349,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all service accounts of the Server." + "summary": "List all service accounts of the Server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.service-account.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8664,7 +9402,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Detach a service account from a server." + "summary": "Detach a service account from a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.service-account.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8710,7 +9456,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Attach service account to a server." + "summary": "Attach service account to a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.service-account.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/start": { @@ -8748,7 +9502,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Boot up a server." + "summary": "Boot up a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.start" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/stop": { @@ -8786,7 +9548,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Stop an existing server." + "summary": "Stop an existing server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.stop" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/unrescue": { @@ -8824,7 +9594,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Unrescue an existing server." + "summary": "Unrescue an existing server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.unrescue" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/servers/{serverId}/volume-attachments": { @@ -8858,7 +9636,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all volume attachments of a server." + "summary": "List all volume attachments of a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.volume.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8896,7 +9682,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Detach a volume from a server." + "summary": "Detach a volume from a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.volume.remove" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get the details of an existing Volume Attachment.", @@ -8928,7 +9722,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get Volume Attachment details." + "summary": "Get Volume Attachment details.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.volume.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -8985,7 +9787,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update Volume Attachment Parameters." + "summary": "Update Volume Attachment Parameters.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.volume.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "Attach an existing volume to an existing server.", @@ -9030,7 +9840,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Attach a volume to a server." + "summary": "Attach a volume to a server.", + "x-stackit-authorization": { + "actions": [ + "iaas.server.volume.add" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/snapshots": { @@ -9069,7 +9887,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all snapshots inside a project." + "summary": "List all snapshots inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.snapshot.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9121,7 +9947,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new Snapshot." + "summary": "Create new Snapshot.", + "x-stackit-authorization": { + "actions": [ + "iaas.snapshot.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/snapshots/{snapshotId}": { @@ -9148,7 +9982,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a snapshot." + "summary": "Delete a snapshot.", + "x-stackit-authorization": { + "actions": [ + "iaas.snapshot.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a block device snapshot.", @@ -9180,7 +10022,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a snapshot." + "summary": "Get details about a snapshot.", + "x-stackit-authorization": { + "actions": [ + "iaas.snapshot.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9245,7 +10095,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of the snapshot." + "summary": "Update information of the snapshot.", + "x-stackit-authorization": { + "actions": [ + "iaas.snapshot.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/volume-performance-classes": { @@ -9284,7 +10142,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all volume performance classes available for a project." + "summary": "List all volume performance classes available for a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume-performance-class.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9323,7 +10189,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a volume performance class." + "summary": "Get details about a volume performance class.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume-performance-class.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9370,7 +10244,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "List all volumes inside a project." + "summary": "List all volumes inside a project.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9476,7 +10358,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Create new volume." + "summary": "Create new volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/volumes/{volumeId}": { @@ -9506,7 +10396,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Delete a volume." + "summary": "Delete a volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get details about a block device volume.", @@ -9538,7 +10436,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Get details about a volume." + "summary": "Get details about a volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -9589,7 +10495,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update information of a volume." + "summary": "Update information of a volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta1/projects/{projectId}/volumes/{volumeId}/resize": { @@ -9637,7 +10551,15 @@ "$ref": "#/components/responses/InternalServerError" } }, - "summary": "Update the size of a volume." + "summary": "Update the size of a volume.", + "x-stackit-authorization": { + "actions": [ + "iaas.volume.resize" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/lb-application/v1beta/lb-application.json b/services/lb-application/v1beta/lb-application.json index 8415742..242054c 100644 --- a/services/lb-application/v1beta/lb-application.json +++ b/services/lb-application/v1beta/lb-application.json @@ -945,7 +945,10 @@ "description": "Default error response" } }, - "summary": "List available service plans." + "summary": "List available service plans.", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1beta/projects/{projectId}": { @@ -1004,7 +1007,15 @@ "description": "Default error response" } }, - "summary": "Disables the functionality of load balancers for the project specified." + "summary": "Disables the functionality of load balancers for the project specified.", + "x-stackit-authorization": { + "actions": [ + "alb.loadbalancer.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "deprecated": true, @@ -1061,7 +1072,15 @@ "description": "Default error response" } }, - "summary": "Return the status of application load balancer functionality for the project specified." + "summary": "Return the status of application load balancer functionality for the project specified.", + "x-stackit-authorization": { + "actions": [ + "alb.loadbalancer.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "deprecated": true, @@ -1128,7 +1147,15 @@ "description": "Default error response" } }, - "summary": "Enables the functionality of application load balancers for the project specified." + "summary": "Enables the functionality of application load balancers for the project specified.", + "x-stackit-authorization": { + "actions": [ + "alb.loadbalancer.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1beta/projects/{projectId}/credentials": { @@ -1186,7 +1213,20 @@ "description": "Default error response" } }, - "summary": "List all credentials in a project." + "summary": "List all credentials in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.credentials.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "post": { "description": "Creates and stores credentials for use with Application Load Balancer Observability.\n For example, when using ARGUS, credentials must first be created via the ARGUS API\n and then stored with this endpoint to be used by the Application Load Balancer.", @@ -1262,7 +1302,20 @@ "description": "Default error response" } }, - "summary": "Create credentials for observability of the application load balancer" + "summary": "Create credentials for observability of the application load balancer", + "x-stackit-authorization": { + "actions": [ + "alb.credentials.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1beta/projects/{projectId}/credentials/{credentialsRef}": { @@ -1328,7 +1381,20 @@ "description": "Default error response" } }, - "summary": "Delete a single credential in a project." + "summary": "Delete a single credential in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.credentials.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "get": { "description": "Gets the stored Observability credentials.", @@ -1395,7 +1461,20 @@ "description": "Default error response" } }, - "summary": "Get a single credential reference in a project." + "summary": "Get a single credential reference in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.credentials.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "put": { "description": "Updates the stored Observability credentials.", @@ -1472,7 +1551,20 @@ "description": "Default error response" } }, - "summary": "Update credentials for observability in a project." + "summary": "Update credentials for observability in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.credentials.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1beta/projects/{projectId}/load-balancers": { @@ -1546,7 +1638,20 @@ "description": "Default error response" } }, - "summary": "List load balancers in a project." + "summary": "List load balancers in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.loadbalancer.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "post": { "description": "Creates an Application Load Balancer.\n The default load balancing algorithm is Maglev, and selecting a different algorithm is currently not supported.", @@ -1625,7 +1730,20 @@ "description": "Default error response" } }, - "summary": "Create an application load balancer in a project" + "summary": "Create an application load balancer in a project", + "x-stackit-authorization": { + "actions": [ + "alb.loadbalancer.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1beta/projects/{projectId}/load-balancers/{name}": { @@ -1691,7 +1809,20 @@ "description": "Default error response" } }, - "summary": "Delete a given load balancer in a project." + "summary": "Delete a given load balancer in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.loadbalancer.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "get": { "description": "Retrieves details of a specific Application Load Balancer in a project.\n Includes creation and update information, current status, and any error descriptions.", @@ -1758,7 +1889,20 @@ "description": "Default error response" } }, - "summary": "Get a single application load balancer in a project." + "summary": "Get a single application load balancer in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.loadbalancer.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "put": { "description": "Updates an existing Application Load Balancer by modifying its listeners and target pools.\n Ensure the resource version is current to maintain concurrency safety.\n The default load balancing algorithm is Maglev, and selecting a different algorithm is currently not supported.", @@ -1835,7 +1979,20 @@ "description": "Default error response" } }, - "summary": "Update a load balancer in a project." + "summary": "Update a load balancer in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.loadbalancer.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1beta/projects/{projectId}/load-balancers/{name}/target-pools/{targetPoolName}": { @@ -1919,7 +2076,20 @@ "description": "Default error response" } }, - "summary": "Update a single target pool of a load balancer in a project." + "summary": "Update a single target pool of a load balancer in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.targetpool.replace" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1beta/projects/{projectId}/quota": { @@ -1977,7 +2147,20 @@ "description": "Default error response" } }, - "summary": "Get the quota of application load balancers and target pools in a project." + "summary": "Get the quota of application load balancers and target pools in a project.", + "x-stackit-authorization": { + "actions": [ + "alb.quota.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } } }, diff --git a/services/load-balancer/v1/load-balancer.json b/services/load-balancer/v1/load-balancer.json index caf1492..b22a130 100644 --- a/services/load-balancer/v1/load-balancer.json +++ b/services/load-balancer/v1/load-balancer.json @@ -861,7 +861,10 @@ "description": "Default error response" } }, - "summary": "List available service plans." + "summary": "List available service plans.", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1/projects/{projectId}": { @@ -920,7 +923,15 @@ "description": "Default error response" } }, - "summary": "Disables the functionality of load balancers for the project specified." + "summary": "Disables the functionality of load balancers for the project specified.", + "x-stackit-authorization": { + "actions": [ + "nlb.loadbalancer.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "deprecated": true, @@ -977,7 +988,15 @@ "description": "Default error response" } }, - "summary": "Return the status of load balancer functionality for the project specified." + "summary": "Return the status of load balancer functionality for the project specified.", + "x-stackit-authorization": { + "actions": [ + "nlb.loadbalancer.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "deprecated": true, @@ -1044,7 +1063,15 @@ "description": "Default error response" } }, - "summary": "Enables the functionality of load balancers for the project specified." + "summary": "Enables the functionality of load balancers for the project specified.", + "x-stackit-authorization": { + "actions": [ + "nlb.loadbalancer.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/credentials": { @@ -1099,7 +1126,20 @@ "description": "Default error response" } }, - "summary": "List all credentials in a project." + "summary": "List all credentials in a project.", + "x-stackit-authorization": { + "actions": [ + "nlb.credentials.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "post": { "description": "Create credentials can be used to store existing credentials, which are valid to be used for Load Balancer Observability.\n This means, e.g. when using ARGUS, that credentials first must be created for that ARGUS instance (by using their API) and\n then can be provided to the Load Balancer by storing them with this endpoint.", @@ -1175,7 +1215,20 @@ "description": "Default error response" } }, - "summary": "Create credentials for observability of the Load Balancer" + "summary": "Create credentials for observability of the Load Balancer", + "x-stackit-authorization": { + "actions": [ + "nlb.credentials.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1/projects/{projectId}/credentials/{credentialsRef}": { @@ -1241,7 +1294,20 @@ "description": "Default error response" } }, - "summary": "Delete a single credential in a project." + "summary": "Delete a single credential in a project.", + "x-stackit-authorization": { + "actions": [ + "nlb.credentials.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "get": { "description": "Get Credentials", @@ -1308,7 +1374,20 @@ "description": "Default error response" } }, - "summary": "Get a single credential reference in a project." + "summary": "Get a single credential reference in a project.", + "x-stackit-authorization": { + "actions": [ + "nlb.credentials.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "put": { "description": "Update Credentials", @@ -1385,7 +1464,20 @@ "description": "Default error response" } }, - "summary": "Update credentials for observability in a project." + "summary": "Update credentials for observability in a project.", + "x-stackit-authorization": { + "actions": [ + "nlb.credentials.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1/projects/{projectId}/load-balancers": { @@ -1462,7 +1554,20 @@ "description": "Default error response" } }, - "summary": "List load balancers in a project." + "summary": "List load balancers in a project.", + "x-stackit-authorization": { + "actions": [ + "nlb.loadbalancer.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "post": { "description": "Create Load Balancer will create a load balancer.\n The default load balancing algorithm is round robin unless useSourceIpAddress in session persistence is enabled for a target pool then it is Maglev.", @@ -1541,7 +1646,20 @@ "description": "Default error response" } }, - "summary": "Create a load balancer in a project" + "summary": "Create a load balancer in a project", + "x-stackit-authorization": { + "actions": [ + "nlb.loadbalancer.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1/projects/{projectId}/load-balancers/{name}": { @@ -1607,7 +1725,20 @@ "description": "Default error response" } }, - "summary": "Delete a given load balancer in a project." + "summary": "Delete a given load balancer in a project.", + "x-stackit-authorization": { + "actions": [ + "nlb.loadbalancer.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "get": { "description": "Get Load Balancer will get a single load balancer of a project. This contains all the information set during\n creation or updates. Additionally, it will have information about the state of the load balancer in the form\n of a status field and error description feedback.", @@ -1674,7 +1805,20 @@ "description": "Default error response" } }, - "summary": "Get a single load balancer in a project." + "summary": "Get a single load balancer in a project.", + "x-stackit-authorization": { + "actions": [ + "nlb.loadbalancer.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } }, "put": { "description": "Update Load Balancer allows the change of listeners and target pools of an existing Load Balancer.\n The Load balancer resource version needs to be the current version to ensure concurrency safe updates.\n The default load balancing algorithm is round robin unless useSourceIpAddress in session persistence is enabled for a target pool then it is Maglev.", @@ -1751,7 +1895,20 @@ "description": "Default error response" } }, - "summary": "Update a load balancer in a project." + "summary": "Update a load balancer in a project.", + "x-stackit-authorization": { + "actions": [ + "nlb.loadbalancer.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1/projects/{projectId}/load-balancers/{name}/target-pools/{targetPoolName}": { @@ -1835,7 +1992,20 @@ "description": "Default error response" } }, - "summary": "Update a single target pool of a load balancer in a project." + "summary": "Update a single target pool of a load balancer in a project.", + "x-stackit-authorization": { + "actions": [ + "nlb.targetpool.replace" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } }, "/v1/projects/{projectId}/quota": { @@ -1893,7 +2063,20 @@ "description": "Default error response" } }, - "summary": "Get the quota of Load Balancers and Target Pools in a project." + "summary": "Get the quota of Load Balancers and Target Pools in a project.", + "x-stackit-authorization": { + "actions": [ + "nlb.quota.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.loadbalancer" + ] + } + } } } }, diff --git a/services/logme/v1/logme.json b/services/logme/v1/logme.json index 2ccb285..d14b201 100644 --- a/services/logme/v1/logme.json +++ b/services/logme/v1/logme.json @@ -834,7 +834,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get service instances list" + "summary": "get service instances list", + "x-stackit-authorization": { + "actions": [ + "logme.instance.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Provision a service instance.", @@ -885,7 +893,15 @@ "description": "Conflict" } }, - "summary": "provision" + "summary": "provision", + "x-stackit-authorization": { + "actions": [ + "logme.instance.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}": { @@ -922,7 +938,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "delete service instance" + "summary": "delete service instance", + "x-stackit-authorization": { + "actions": [ + "logme.instance.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get a service instance", @@ -958,7 +982,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get a service instance" + "summary": "get a service instance", + "x-stackit-authorization": { + "actions": [ + "logme.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "patch": { "description": "Update a service instance. This could be a sgw acl update or a plan upgrade.", @@ -1004,7 +1036,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "update a service instance" + "summary": "update a service instance", + "x-stackit-authorization": { + "actions": [ + "logme.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups": { @@ -1033,7 +1073,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest backup information for provided instanceId" + "summary": "get latest backup information for provided instanceId", + "x-stackit-authorization": { + "actions": [ + "logme.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "CreateBackup", @@ -1063,7 +1111,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "create a backup" + "summary": "create a backup", + "x-stackit-authorization": { + "actions": [ + "logme.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups-config": { @@ -1107,7 +1163,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "backups configuration update" + "summary": "backups configuration update", + "x-stackit-authorization": { + "actions": [ + "logme.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}/download": { @@ -1140,7 +1204,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "download backup" + "summary": "download backup", + "x-stackit-authorization": { + "actions": [ + "logme.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}/restore": { @@ -1175,7 +1247,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a restore" + "summary": "trigger a restore", + "x-stackit-authorization": { + "actions": [ + "logme.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/credentials": { @@ -1210,7 +1290,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get list of credentials ids" + "summary": "get list of credentials ids", + "x-stackit-authorization": { + "actions": [ + "logme.credential.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create new service credentials", @@ -1243,7 +1331,15 @@ "$ref": "#/components/responses/BadRequest" } }, - "summary": "create new credentials" + "summary": "create new credentials", + "x-stackit-authorization": { + "actions": [ + "logme.credential.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/credentials/{credentialsId}": { @@ -1280,7 +1376,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "delete credentials by id" + "summary": "delete credentials by id", + "x-stackit-authorization": { + "actions": [ + "logme.credential.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get a service credentials by credentials id", @@ -1322,7 +1426,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get credentials by id" + "summary": "get credentials by id", + "x-stackit-authorization": { + "actions": [ + "logme.credential.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/metrics": { @@ -1351,7 +1463,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest metrics for cpu load, memory and disk usage" + "summary": "get latest metrics for cpu load, memory and disk usage", + "x-stackit-authorization": { + "actions": [ + "logme.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/recreate": { @@ -1383,7 +1503,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a recreate" + "summary": "trigger a recreate", + "x-stackit-authorization": { + "actions": [ + "logme.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restart": { @@ -1415,7 +1543,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a restart" + "summary": "trigger a restart", + "x-stackit-authorization": { + "actions": [ + "logme.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restores": { @@ -1444,7 +1580,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest restore information for provided instanceId" + "summary": "get latest restore information for provided instanceId", + "x-stackit-authorization": { + "actions": [ + "logme.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/offerings": { @@ -1468,7 +1612,15 @@ "description": "Service plans response" } }, - "summary": "get the service offerings" + "summary": "get the service offerings", + "x-stackit-authorization": { + "actions": [ + "logme.offerings.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/mariadb/v1/mariadb.json b/services/mariadb/v1/mariadb.json index 50355d0..98788fd 100644 --- a/services/mariadb/v1/mariadb.json +++ b/services/mariadb/v1/mariadb.json @@ -760,7 +760,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get service instances list" + "summary": "get service instances list", + "x-stackit-authorization": { + "actions": [ + "mariadb.instance.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Provision a service instance.", @@ -811,7 +819,15 @@ "description": "Conflict" } }, - "summary": "provision" + "summary": "provision", + "x-stackit-authorization": { + "actions": [ + "mariadb.instance.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}": { @@ -848,7 +864,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "delete service instance" + "summary": "delete service instance", + "x-stackit-authorization": { + "actions": [ + "mariadb.instance.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get a service instance", @@ -884,7 +908,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get a service instance" + "summary": "get a service instance", + "x-stackit-authorization": { + "actions": [ + "mariadb.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "patch": { "description": "Update a service instance. This could be a sgw acl update or a plan upgrade.", @@ -930,7 +962,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "update a service instance" + "summary": "update a service instance", + "x-stackit-authorization": { + "actions": [ + "mariadb.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups": { @@ -959,7 +999,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest backup information for provided instanceId" + "summary": "get latest backup information for provided instanceId", + "x-stackit-authorization": { + "actions": [ + "mariadb.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "CreateBackup", @@ -989,7 +1037,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "create a backup" + "summary": "create a backup", + "x-stackit-authorization": { + "actions": [ + "mariadb.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups-config": { @@ -1033,7 +1089,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "backups configuration update" + "summary": "backups configuration update", + "x-stackit-authorization": { + "actions": [ + "mariadb.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}/download": { @@ -1066,7 +1130,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "download backup" + "summary": "download backup", + "x-stackit-authorization": { + "actions": [ + "mariadb.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}/restore": { @@ -1101,7 +1173,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a restore" + "summary": "trigger a restore", + "x-stackit-authorization": { + "actions": [ + "mariadb.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/credentials": { @@ -1136,7 +1216,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get list of credentials ids" + "summary": "get list of credentials ids", + "x-stackit-authorization": { + "actions": [ + "mariadb.credential.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create new service credentials", @@ -1169,7 +1257,15 @@ "$ref": "#/components/responses/BadRequest" } }, - "summary": "create new credentials" + "summary": "create new credentials", + "x-stackit-authorization": { + "actions": [ + "mariadb.credential.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/credentials/{credentialsId}": { @@ -1206,7 +1302,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "delete credentials by id" + "summary": "delete credentials by id", + "x-stackit-authorization": { + "actions": [ + "mariadb.credential.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get a service credentials by credentials id", @@ -1248,7 +1352,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get credentials by id" + "summary": "get credentials by id", + "x-stackit-authorization": { + "actions": [ + "mariadb.credential.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/metrics": { @@ -1277,7 +1389,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest metrics for cpu load, memory and disk usage" + "summary": "get latest metrics for cpu load, memory and disk usage", + "x-stackit-authorization": { + "actions": [ + "mariadb.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/recreate": { @@ -1309,7 +1429,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a recreate" + "summary": "trigger a recreate", + "x-stackit-authorization": { + "actions": [ + "mariadb.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restart": { @@ -1341,7 +1469,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a restart" + "summary": "trigger a restart", + "x-stackit-authorization": { + "actions": [ + "mariadb.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restores": { @@ -1370,7 +1506,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest restore information for provided instanceId" + "summary": "get latest restore information for provided instanceId", + "x-stackit-authorization": { + "actions": [ + "mariadb.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/offerings": { @@ -1394,7 +1538,15 @@ "description": "Service plans response" } }, - "summary": "get the service offerings" + "summary": "get the service offerings", + "x-stackit-authorization": { + "actions": [ + "mariadb.offerings.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/mongodb-flex/v1/mongodb-flex.json b/services/mongodb-flex/v1/mongodb-flex.json index 1759015..6290153 100644 --- a/services/mongodb-flex/v1/mongodb-flex.json +++ b/services/mongodb-flex/v1/mongodb-flex.json @@ -1066,7 +1066,15 @@ "BearerAuth": [] } ], - "summary": "Flavors" + "summary": "Flavors", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.flavor.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances": { @@ -1134,7 +1142,15 @@ "BearerAuth": [] } ], - "summary": "List Instances" + "summary": "List Instances", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.instance.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create and deploys an instance\u003cbr/\u003e Note that the time format for the backupSchedule is in UTC", @@ -1210,7 +1226,15 @@ "BearerAuth": [] } ], - "summary": "Create instance" + "summary": "Create instance", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.instance.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}": { @@ -1281,7 +1305,15 @@ "BearerAuth": [] } ], - "summary": "Delete instance" + "summary": "Delete instance", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.instance.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "gets information of an instance", @@ -1347,7 +1379,15 @@ "BearerAuth": [] } ], - "summary": "Get instance" + "summary": "Get instance", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "patch": { "description": "Updates a deployment plan\u003cbr/\u003e Note that the time format for the backupSchedule is in UTC", @@ -1454,7 +1494,15 @@ "BearerAuth": [] } ], - "summary": "Patch endpoint" + "summary": "Patch endpoint", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "Updates a deployment plan\u003cbr/\u003e Note that the time format for the backupSchedule is in UTC", @@ -1561,7 +1609,15 @@ "BearerAuth": [] } ], - "summary": "Put endpoint" + "summary": "Put endpoint", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/advisor/slow-queries": { @@ -1639,7 +1695,15 @@ "BearerAuth": [] } ], - "summary": "Get slow queries" + "summary": "Get slow queries", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.advisor.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/advisor/suggested-indexes": { @@ -1717,7 +1781,15 @@ "BearerAuth": [] } ], - "summary": "Get suggested indexes" + "summary": "Get suggested indexes", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.advisor.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups": { @@ -1785,7 +1857,15 @@ "BearerAuth": [] } ], - "summary": "List backup" + "summary": "List backup", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.backup.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "Updates a backup schedule\u003cbr/\u003e Note that the time format is in UTC", @@ -1862,7 +1942,15 @@ "BearerAuth": [] } ], - "summary": "Update schedule" + "summary": "Update schedule", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.backup.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}": { @@ -1941,7 +2029,15 @@ "BearerAuth": [] } ], - "summary": "Get backup" + "summary": "Get backup", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.backup.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/clone": { @@ -2020,7 +2116,15 @@ "BearerAuth": [] } ], - "summary": "Clone instance" + "summary": "Clone instance", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.backup.clone" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/metrics/{metric}": { @@ -2150,7 +2254,15 @@ "BearerAuth": [] } ], - "summary": "Metrics" + "summary": "Metrics", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.metric.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restores": { @@ -2218,7 +2330,15 @@ "BearerAuth": [] } ], - "summary": "List restore jobs" + "summary": "List restore jobs", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.backup.restore-list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Restore an instance based on snapshot", @@ -2295,7 +2415,15 @@ "BearerAuth": [] } ], - "summary": "Restore instance" + "summary": "Restore instance", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.backup.restore-snapshot" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/users": { @@ -2363,7 +2491,15 @@ "BearerAuth": [] } ], - "summary": "List Users" + "summary": "List Users", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.user.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "create a new user for a mongodb instance", @@ -2460,7 +2596,15 @@ "BearerAuth": [] } ], - "summary": "Create User" + "summary": "Create User", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.user.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/users/{userId}": { @@ -2532,7 +2676,15 @@ "BearerAuth": [] } ], - "summary": "Delete User" + "summary": "Delete User", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.user.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get detailed information of a user of a mongodb instance", @@ -2609,7 +2761,15 @@ "BearerAuth": [] } ], - "summary": "Get User" + "summary": "Get User", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.user.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "patch": { "description": "updates user for a mongodb instance", @@ -2700,7 +2860,15 @@ "BearerAuth": [] } ], - "summary": "Update User" + "summary": "Update User", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.user.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "updates user for a mongodb instance", @@ -2791,7 +2959,15 @@ "BearerAuth": [] } ], - "summary": "Update User" + "summary": "Update User", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.user.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/users/{userId}/reset": { @@ -2870,7 +3046,15 @@ "BearerAuth": [] } ], - "summary": "Reset User" + "summary": "Reset User", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.user.reset" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/storages/{flavor}": { @@ -2938,7 +3122,15 @@ "BearerAuth": [] } ], - "summary": "Get storage" + "summary": "Get storage", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.storage.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/versions": { @@ -2985,7 +3177,15 @@ "BearerAuth": [] } ], - "summary": "Get versions" + "summary": "Get versions", + "x-stackit-authorization": { + "actions": [ + "mongodb-flex.version.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/object-storage/v1/object-storage.json b/services/object-storage/v1/object-storage.json index ae1bf62..7605112 100644 --- a/services/object-storage/v1/object-storage.json +++ b/services/object-storage/v1/object-storage.json @@ -571,7 +571,15 @@ "description": "Internal Server Error" } }, - "summary": "Delete Project" + "summary": "Delete Project", + "x-stackit-authorization": { + "actions": [ + "object-storage.service.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get project details.", @@ -642,7 +650,15 @@ "description": "Internal Server Error" } }, - "summary": "Get Project" + "summary": "Get Project", + "x-stackit-authorization": { + "actions": [ + "object-storage.service.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create a project. Creation will also be successful if the project\nalready exists, but will not create a duplicate", @@ -723,7 +739,15 @@ "description": "Internal Server Error" } }, - "summary": "Create Project" + "summary": "Create Project", + "x-stackit-authorization": { + "actions": [ + "object-storage.service.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/project/{projectId}/access-key": { @@ -816,7 +840,15 @@ "description": "Internal Server Error" } }, - "summary": "Create Access Key" + "summary": "Create Access Key", + "x-stackit-authorization": { + "actions": [ + "object-storage.access-key.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/project/{projectId}/access-key/{keyId}": { @@ -921,7 +953,15 @@ "description": "Internal Server Error" } }, - "summary": "Delete Access Key" + "summary": "Delete Access Key", + "x-stackit-authorization": { + "actions": [ + "object-storage.access-key.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/project/{projectId}/access-keys": { @@ -1004,7 +1044,15 @@ "description": "Internal Server Error" } }, - "summary": "Get Access Keys" + "summary": "Get Access Keys", + "x-stackit-authorization": { + "actions": [ + "object-storage.access-key.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/project/{projectId}/bucket/{bucketName}": { @@ -1081,7 +1129,15 @@ "description": "Internal Server Error" } }, - "summary": "Delete Bucket" + "summary": "Delete Bucket", + "x-stackit-authorization": { + "actions": [ + "object-storage.bucket.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get information for the given bucket in the project.", @@ -1166,7 +1222,15 @@ "description": "Internal Server Error" } }, - "summary": "Get Bucket" + "summary": "Get Bucket", + "x-stackit-authorization": { + "actions": [ + "object-storage.bucket.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create a bucket for the given project. Bucket with the same name\ncannot already exists in the object storage", @@ -1251,7 +1315,15 @@ "description": "Internal Server Error" } }, - "summary": "Create Bucket" + "summary": "Create Bucket", + "x-stackit-authorization": { + "actions": [ + "object-storage.bucket.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/project/{projectId}/buckets": { @@ -1324,7 +1396,15 @@ "description": "Internal Server Error" } }, - "summary": "Get Buckets" + "summary": "Get Buckets", + "x-stackit-authorization": { + "actions": [ + "object-storage.bucket.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/project/{projectId}/credentials-group": { @@ -1416,7 +1496,15 @@ "description": "Internal Server Error" } }, - "summary": "Create Credentials Group" + "summary": "Create Credentials Group", + "x-stackit-authorization": { + "actions": [ + "object-storage.credentials-group.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/project/{projectId}/credentials-group/{groupId}": { @@ -1491,7 +1579,15 @@ "description": "Internal Server Error" } }, - "summary": "Delete Credentials Group" + "summary": "Delete Credentials Group", + "x-stackit-authorization": { + "actions": [ + "object-storage.credentials-group.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/project/{projectId}/credentials-groups": { @@ -1554,7 +1650,15 @@ "description": "Internal Server Error" } }, - "summary": "Get Credentials Groups" + "summary": "Get Credentials Groups", + "x-stackit-authorization": { + "actions": [ + "object-storage.credentials-group.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/object-storage/v2/object-storage.json b/services/object-storage/v2/object-storage.json index 761486c..0a6480d 100644 --- a/services/object-storage/v2/object-storage.json +++ b/services/object-storage/v2/object-storage.json @@ -594,7 +594,15 @@ "description": "Internal Server Error" } }, - "summary": "Delete Project" + "summary": "Delete Project", + "x-stackit-authorization": { + "actions": [ + "object-storage.service.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get project details.", @@ -687,7 +695,15 @@ "description": "Internal Server Error" } }, - "summary": "Get Project" + "summary": "Get Project", + "x-stackit-authorization": { + "actions": [ + "object-storage.service.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create a project. Creation will also be successful if the project\nalready exists, but will not create a duplicate", @@ -790,7 +806,15 @@ "description": "Internal Server Error" } }, - "summary": "Create Project" + "summary": "Create Project", + "x-stackit-authorization": { + "actions": [ + "object-storage.service.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v2/project/{projectId}/regions/{region}/access-key": { @@ -905,7 +929,15 @@ "description": "Internal Server Error" } }, - "summary": "Create Access Key" + "summary": "Create Access Key", + "x-stackit-authorization": { + "actions": [ + "object-storage.access-key.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v2/project/{projectId}/regions/{region}/access-key/{keyId}": { @@ -1032,7 +1064,15 @@ "description": "Internal Server Error" } }, - "summary": "Delete Access Key" + "summary": "Delete Access Key", + "x-stackit-authorization": { + "actions": [ + "object-storage.access-key.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v2/project/{projectId}/regions/{region}/access-keys": { @@ -1137,7 +1177,15 @@ "description": "Internal Server Error" } }, - "summary": "Get Access Keys" + "summary": "Get Access Keys", + "x-stackit-authorization": { + "actions": [ + "object-storage.access-key.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v2/project/{projectId}/regions/{region}/bucket/{bucketName}": { @@ -1236,7 +1284,15 @@ "description": "Internal Server Error" } }, - "summary": "Delete Bucket" + "summary": "Delete Bucket", + "x-stackit-authorization": { + "actions": [ + "object-storage.bucket.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get information for the given bucket in the project.", @@ -1343,7 +1399,15 @@ "description": "Internal Server Error" } }, - "summary": "Get Bucket" + "summary": "Get Bucket", + "x-stackit-authorization": { + "actions": [ + "object-storage.bucket.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create a bucket for the given project. Bucket with the same name cannot already exists in the object storage", @@ -1450,7 +1514,15 @@ "description": "Internal Server Error" } }, - "summary": "Create Bucket" + "summary": "Create Bucket", + "x-stackit-authorization": { + "actions": [ + "object-storage.bucket.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v2/project/{projectId}/regions/{region}/buckets": { @@ -1545,7 +1617,15 @@ "description": "Internal Server Error" } }, - "summary": "Get Buckets" + "summary": "Get Buckets", + "x-stackit-authorization": { + "actions": [ + "object-storage.bucket.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v2/project/{projectId}/regions/{region}/credentials-group": { @@ -1659,7 +1739,15 @@ "description": "Internal Server Error" } }, - "summary": "Create Credentials Group" + "summary": "Create Credentials Group", + "x-stackit-authorization": { + "actions": [ + "object-storage.credentials-group.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v2/project/{projectId}/regions/{region}/credentials-group/{groupId}": { @@ -1756,7 +1844,15 @@ "description": "Internal Server Error" } }, - "summary": "Delete Credentials Group" + "summary": "Delete Credentials Group", + "x-stackit-authorization": { + "actions": [ + "object-storage.credentials-group.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v2/project/{projectId}/regions/{region}/credentials-groups": { @@ -1841,7 +1937,15 @@ "description": "Internal Server Error" } }, - "summary": "Get Credentials Groups" + "summary": "Get Credentials Groups", + "x-stackit-authorization": { + "actions": [ + "object-storage.credentials-group.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/observability/v1/observability.json b/services/observability/v1/observability.json index 81ed76d..6ebb1e7 100644 --- a/services/observability/v1/observability.json +++ b/services/observability/v1/observability.json @@ -3518,6 +3518,14 @@ }, "description": "You do not have permission to perform this action." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "post": { @@ -3585,6 +3593,14 @@ }, "description": "You do not have permission to perform this action." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -3637,6 +3653,14 @@ }, "description": "You do not have permission to perform this action." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "get": { @@ -3746,6 +3770,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "put": { @@ -3819,6 +3851,14 @@ }, "description": "You do not have permission to perform this action." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -3874,6 +3914,14 @@ }, "description": "You do not have permission to perform this action." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "put": { @@ -3946,6 +3994,14 @@ }, "description": "You do not have permission to perform this action." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -4086,6 +4142,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "put": { @@ -4247,6 +4311,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -4339,6 +4411,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "post": { @@ -4452,6 +4532,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -4565,6 +4653,14 @@ }, "description": "Alert config receiver not found." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "get": { @@ -4644,6 +4740,14 @@ }, "description": "Alert config receiver not found." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "put": { @@ -4778,6 +4882,14 @@ }, "description": "Alert config receiver not found." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -4855,6 +4967,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "post": { @@ -4953,6 +5073,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -5051,6 +5179,14 @@ }, "description": "Alert config route not found." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "get": { @@ -5134,6 +5270,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "put": { @@ -5253,6 +5397,14 @@ }, "description": "Alert config route not found." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -5314,6 +5466,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "post": { @@ -5368,6 +5528,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -5454,6 +5622,14 @@ }, "description": "Something went wrong deleting the technical credentials." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "get": { @@ -5530,6 +5706,14 @@ }, "description": "Technical credentials do not exists." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -5630,6 +5814,14 @@ }, "description": "failed to read kubernetes configmap" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "get": { @@ -5716,6 +5908,14 @@ }, "description": "failed to read kubernetes configmap" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "put": { @@ -5825,6 +6025,14 @@ }, "description": "failed to read kubernetes configmap" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -5879,6 +6087,14 @@ }, "description": "You do not have permission to perform this action." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "put": { @@ -5952,6 +6168,14 @@ }, "description": "You do not have permission to perform this action." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -6007,6 +6231,14 @@ }, "description": "You do not have permission to perform this action." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "put": { @@ -6080,6 +6312,14 @@ }, "description": "You do not have permission to perform this action." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -6148,6 +6388,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "post": { @@ -6237,6 +6485,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -6326,6 +6582,14 @@ }, "description": "Scrape target not found." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "get": { @@ -6398,6 +6662,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "put": { @@ -6508,6 +6780,14 @@ }, "description": "Scrape target not found." } + }, + "x-stackit-authorization": { + "actions": [ + "argus.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -6578,6 +6858,14 @@ }, "description": "You are not authorized" } + }, + "x-stackit-authorization": { + "actions": [ + "argus.plan.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } } diff --git a/services/opensearch/v1/opensearch.json b/services/opensearch/v1/opensearch.json index 5307ade..9f14d51 100644 --- a/services/opensearch/v1/opensearch.json +++ b/services/opensearch/v1/opensearch.json @@ -811,7 +811,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get service instances list" + "summary": "get service instances list", + "x-stackit-authorization": { + "actions": [ + "opensearch.instance.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Provision a service instance.", @@ -862,7 +870,15 @@ "description": "Conflict" } }, - "summary": "provision" + "summary": "provision", + "x-stackit-authorization": { + "actions": [ + "opensearch.instance.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}": { @@ -899,7 +915,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "delete service instance" + "summary": "delete service instance", + "x-stackit-authorization": { + "actions": [ + "opensearch.instance.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get a service instance", @@ -935,7 +959,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get a service instance" + "summary": "get a service instance", + "x-stackit-authorization": { + "actions": [ + "opensearch.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "patch": { "description": "Update a service instance. This could be a sgw acl update or a plan upgrade.", @@ -981,7 +1013,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "update a service instance" + "summary": "update a service instance", + "x-stackit-authorization": { + "actions": [ + "opensearch.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups": { @@ -1010,7 +1050,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest backup information for provided instanceId" + "summary": "get latest backup information for provided instanceId", + "x-stackit-authorization": { + "actions": [ + "opensearch.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "CreateBackup", @@ -1040,7 +1088,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "create a backup" + "summary": "create a backup", + "x-stackit-authorization": { + "actions": [ + "opensearch.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups-config": { @@ -1084,7 +1140,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "backups configuration update" + "summary": "backups configuration update", + "x-stackit-authorization": { + "actions": [ + "opensearch.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}/download": { @@ -1117,7 +1181,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "download backup" + "summary": "download backup", + "x-stackit-authorization": { + "actions": [ + "opensearch.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}/restore": { @@ -1152,7 +1224,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a restore" + "summary": "trigger a restore", + "x-stackit-authorization": { + "actions": [ + "opensearch.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/credentials": { @@ -1187,7 +1267,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get list of credentials ids" + "summary": "get list of credentials ids", + "x-stackit-authorization": { + "actions": [ + "opensearch.credential.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create new service credentials", @@ -1220,7 +1308,15 @@ "$ref": "#/components/responses/BadRequest" } }, - "summary": "create new credentials" + "summary": "create new credentials", + "x-stackit-authorization": { + "actions": [ + "opensearch.credential.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/credentials/{credentialsId}": { @@ -1257,7 +1353,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "delete credentials by id" + "summary": "delete credentials by id", + "x-stackit-authorization": { + "actions": [ + "opensearch.credential.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get a service credentials by credentials id", @@ -1299,7 +1403,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get credentials by id" + "summary": "get credentials by id", + "x-stackit-authorization": { + "actions": [ + "opensearch.credential.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/metrics": { @@ -1328,7 +1440,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest metrics for cpu load, memory and disk usage" + "summary": "get latest metrics for cpu load, memory and disk usage", + "x-stackit-authorization": { + "actions": [ + "opensearch.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/recreate": { @@ -1360,7 +1480,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a recreate" + "summary": "trigger a recreate", + "x-stackit-authorization": { + "actions": [ + "opensearch.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restart": { @@ -1392,7 +1520,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a restart" + "summary": "trigger a restart", + "x-stackit-authorization": { + "actions": [ + "opensearch.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restores": { @@ -1421,7 +1557,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest restore information for provided instanceId" + "summary": "get latest restore information for provided instanceId", + "x-stackit-authorization": { + "actions": [ + "opensearch.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/offerings": { @@ -1445,7 +1589,15 @@ "description": "Service plans response" } }, - "summary": "get the service offerings" + "summary": "get the service offerings", + "x-stackit-authorization": { + "actions": [ + "opensearch.offerings.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/postgres-flex/v1/postgres-flex.json b/services/postgres-flex/v1/postgres-flex.json index f06eec3..5ff0724 100644 --- a/services/postgres-flex/v1/postgres-flex.json +++ b/services/postgres-flex/v1/postgres-flex.json @@ -968,7 +968,15 @@ "BearerAuth": [] } ], - "summary": "Get Flavors" + "summary": "Get Flavors", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.flavor.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances": { @@ -1021,7 +1029,15 @@ "BearerAuth": [] } ], - "summary": "List Instances" + "summary": "List Instances", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.instance.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create a new instance of a postgres database", @@ -1083,7 +1099,15 @@ "BearerAuth": [] } ], - "summary": "Create Instance" + "summary": "Create Instance", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.instance.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}": { @@ -1157,7 +1181,15 @@ "BearerAuth": [] } ], - "summary": "Delete Instance" + "summary": "Delete Instance", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.instance.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get specific available instances", @@ -1219,7 +1251,15 @@ "BearerAuth": [] } ], - "summary": "Get specific instance" + "summary": "Get specific instance", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "patch": { "description": "Update available instance of a postgres database. Supported Versions are 12, 13, 14, 15 -- only upgrades are allowed!", @@ -1292,7 +1332,15 @@ "BearerAuth": [] } ], - "summary": "Update Instance" + "summary": "Update Instance", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "Update available instance of a postgres database. Supported Versions are 12, 13, 14, 15 -- only upgrades are allowed!", @@ -1365,7 +1413,15 @@ "BearerAuth": [] } ], - "summary": "Update Instance" + "summary": "Update Instance", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups": { @@ -1432,7 +1488,15 @@ "BearerAuth": [] } ], - "summary": "List backups" + "summary": "List backups", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.backup.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "Update backup schedule", @@ -1504,7 +1568,15 @@ "BearerAuth": [] } ], - "summary": "Update Backup Schedule" + "summary": "Update Backup Schedule", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.backup.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}": { @@ -1582,7 +1654,15 @@ "BearerAuth": [] } ], - "summary": "Get specific backup" + "summary": "Get specific backup", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.backup.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/clone": { @@ -1657,7 +1737,15 @@ "BearerAuth": [] } ], - "summary": "Clone Instance" + "summary": "Clone Instance", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.instance.clone" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/databases": { @@ -1721,7 +1809,15 @@ "BearerAuth": [] } ], - "summary": "List Databases" + "summary": "List Databases", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.database.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create database for a user\nNote: The name of a valid user must be provided in the \"options\" map field using the key \"owner\"", @@ -1794,7 +1890,15 @@ "BearerAuth": [] } ], - "summary": "Create Database" + "summary": "Create Database", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.database.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/databases/{databaseId}": { @@ -1862,7 +1966,15 @@ "BearerAuth": [] } ], - "summary": "Delete Database" + "summary": "Delete Database", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.database.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/force": { @@ -1926,7 +2038,15 @@ "BearerAuth": [] } ], - "summary": "Force delete instance" + "summary": "Force delete instance", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.instance.force-delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/metrics/{metric}": { @@ -2056,7 +2176,15 @@ "BearerAuth": [] } ], - "summary": "Get Metric" + "summary": "Get Metric", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.metric.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/parameter": { @@ -2120,7 +2248,15 @@ "BearerAuth": [] } ], - "summary": "List Databases parameter" + "summary": "List Databases parameter", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.parameter.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/users": { @@ -2184,7 +2320,15 @@ "BearerAuth": [] } ], - "summary": "List Users" + "summary": "List Users", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.user.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create user for an instance", @@ -2257,7 +2401,15 @@ "BearerAuth": [] } ], - "summary": "Create User" + "summary": "Create User", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.user.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/users/{userId}": { @@ -2325,7 +2477,15 @@ "BearerAuth": [] } ], - "summary": "Delete User" + "summary": "Delete User", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.user.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get specific available user for an instance", @@ -2398,7 +2558,15 @@ "BearerAuth": [] } ], - "summary": "Get User" + "summary": "Get User", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.user.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "patch": { "description": "Update user for an instance. Only the roles are updatable.", @@ -2481,7 +2649,15 @@ "BearerAuth": [] } ], - "summary": "Update User" + "summary": "Update User", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.user.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "Update user for an instance. Only the roles are updatable.", @@ -2564,7 +2740,15 @@ "BearerAuth": [] } ], - "summary": "Update User" + "summary": "Update User", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.user.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/users/{userId}/reset": { @@ -2656,7 +2840,15 @@ "BearerAuth": [] } ], - "summary": "Reset User" + "summary": "Reset User", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.user.reset" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/storages/{flavorId}": { @@ -2720,7 +2912,15 @@ "BearerAuth": [] } ], - "summary": "Get Storages" + "summary": "Get Storages", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.storage.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/versions": { @@ -2783,7 +2983,15 @@ "BearerAuth": [] } ], - "summary": "Get Versions" + "summary": "Get Versions", + "x-stackit-authorization": { + "actions": [ + "postgres-flex.version.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/rabbitmq/v1/rabbitmq.json b/services/rabbitmq/v1/rabbitmq.json index a6b4a3c..398167e 100644 --- a/services/rabbitmq/v1/rabbitmq.json +++ b/services/rabbitmq/v1/rabbitmq.json @@ -833,7 +833,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get service instances list" + "summary": "get service instances list", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.instance.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Provision a service instance.", @@ -884,7 +892,15 @@ "description": "Conflict" } }, - "summary": "provision" + "summary": "provision", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.instance.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}": { @@ -921,7 +937,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "delete service instance" + "summary": "delete service instance", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.instance.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get a service instance", @@ -957,7 +981,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get a service instance" + "summary": "get a service instance", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "patch": { "description": "Update a service instance. This could be a sgw acl update or a plan upgrade.", @@ -1003,7 +1035,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "update a service instance" + "summary": "update a service instance", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups": { @@ -1032,7 +1072,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest backup information for provided instanceId" + "summary": "get latest backup information for provided instanceId", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "CreateBackup", @@ -1062,7 +1110,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "create a backup" + "summary": "create a backup", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups-config": { @@ -1106,7 +1162,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "backups configuration update" + "summary": "backups configuration update", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}/download": { @@ -1139,7 +1203,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "download backup" + "summary": "download backup", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}/restore": { @@ -1174,7 +1246,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a restore" + "summary": "trigger a restore", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/credentials": { @@ -1209,7 +1289,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get list of credentials ids" + "summary": "get list of credentials ids", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.credential.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create new service credentials", @@ -1242,7 +1330,15 @@ "$ref": "#/components/responses/BadRequest" } }, - "summary": "create new credentials" + "summary": "create new credentials", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.credential.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/credentials/{credentialsId}": { @@ -1279,7 +1375,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "delete credentials by id" + "summary": "delete credentials by id", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.credential.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get a service credentials by credentials id", @@ -1321,7 +1425,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get credentials by id" + "summary": "get credentials by id", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.credential.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/metrics": { @@ -1350,7 +1462,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest metrics for cpu load, memory and disk usage" + "summary": "get latest metrics for cpu load, memory and disk usage", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/recreate": { @@ -1382,7 +1502,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a recreate" + "summary": "trigger a recreate", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restart": { @@ -1414,7 +1542,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a restart" + "summary": "trigger a restart", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restores": { @@ -1443,7 +1579,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest restore information for provided instanceId" + "summary": "get latest restore information for provided instanceId", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/offerings": { @@ -1467,7 +1611,15 @@ "description": "Service plans response" } }, - "summary": "get the service offerings" + "summary": "get the service offerings", + "x-stackit-authorization": { + "actions": [ + "rabbitmq.offerings.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/redis/v1/redis.json b/services/redis/v1/redis.json index 98dd3ba..e18b779 100644 --- a/services/redis/v1/redis.json +++ b/services/redis/v1/redis.json @@ -846,7 +846,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get service instances list" + "summary": "get service instances list", + "x-stackit-authorization": { + "actions": [ + "redis.instance.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Provision a service instance.", @@ -897,7 +905,15 @@ "description": "Conflict" } }, - "summary": "provision" + "summary": "provision", + "x-stackit-authorization": { + "actions": [ + "redis.instance.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}": { @@ -934,7 +950,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "delete service instance" + "summary": "delete service instance", + "x-stackit-authorization": { + "actions": [ + "redis.instance.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get a service instance", @@ -970,7 +994,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get a service instance" + "summary": "get a service instance", + "x-stackit-authorization": { + "actions": [ + "redis.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "patch": { "description": "Update a service instance. This could be a sgw acl update or a plan upgrade.", @@ -1016,7 +1048,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "update a service instance" + "summary": "update a service instance", + "x-stackit-authorization": { + "actions": [ + "redis.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups": { @@ -1045,7 +1085,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest backup information for provided instanceId" + "summary": "get latest backup information for provided instanceId", + "x-stackit-authorization": { + "actions": [ + "redis.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "CreateBackup", @@ -1075,7 +1123,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "create a backup" + "summary": "create a backup", + "x-stackit-authorization": { + "actions": [ + "redis.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups-config": { @@ -1119,7 +1175,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "backups configuration update" + "summary": "backups configuration update", + "x-stackit-authorization": { + "actions": [ + "redis.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}/download": { @@ -1152,7 +1216,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "download backup" + "summary": "download backup", + "x-stackit-authorization": { + "actions": [ + "redis.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}/restore": { @@ -1187,7 +1259,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a restore" + "summary": "trigger a restore", + "x-stackit-authorization": { + "actions": [ + "redis.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/credentials": { @@ -1222,7 +1302,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get list of credentials ids" + "summary": "get list of credentials ids", + "x-stackit-authorization": { + "actions": [ + "redis.credential.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create new service credentials", @@ -1255,7 +1343,15 @@ "$ref": "#/components/responses/BadRequest" } }, - "summary": "create new credentials" + "summary": "create new credentials", + "x-stackit-authorization": { + "actions": [ + "redis.credential.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/credentials/{credentialsId}": { @@ -1292,7 +1388,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "delete credentials by id" + "summary": "delete credentials by id", + "x-stackit-authorization": { + "actions": [ + "redis.credential.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "get a service credentials by credentials id", @@ -1334,7 +1438,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get credentials by id" + "summary": "get credentials by id", + "x-stackit-authorization": { + "actions": [ + "redis.credential.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/metrics": { @@ -1363,7 +1475,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest metrics for cpu load, memory and disk usage" + "summary": "get latest metrics for cpu load, memory and disk usage", + "x-stackit-authorization": { + "actions": [ + "redis.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/recreate": { @@ -1395,7 +1515,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a recreate" + "summary": "trigger a recreate", + "x-stackit-authorization": { + "actions": [ + "redis.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restart": { @@ -1427,7 +1555,15 @@ "$ref": "#/components/responses/ServerError" } }, - "summary": "trigger a restart" + "summary": "trigger a restart", + "x-stackit-authorization": { + "actions": [ + "redis.proxy.write" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restores": { @@ -1456,7 +1592,15 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "get latest restore information for provided instanceId" + "summary": "get latest restore information for provided instanceId", + "x-stackit-authorization": { + "actions": [ + "redis.proxy.read" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/offerings": { @@ -1480,7 +1624,15 @@ "description": "Service plans response" } }, - "summary": "get the service offerings" + "summary": "get the service offerings", + "x-stackit-authorization": { + "actions": [ + "redis.offerings.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/resource-manager/v0/resource-manager.json b/services/resource-manager/v0/resource-manager.json index e096265..8e45620 100644 --- a/services/resource-manager/v0/resource-manager.json +++ b/services/resource-manager/v0/resource-manager.json @@ -740,7 +740,15 @@ "description": "Unauthorized" } }, - "summary": "Get Containers Of A Folder" + "summary": "Get Containers Of A Folder", + "x-stackit-authorization": { + "actions": [ + "resource-manager.folder.get" + ], + "resource-id": "id", + "resource-id-type": "dynamic", + "resource-type": "folder" + } }, "parameters": [ { @@ -813,7 +821,10 @@ "description": "Organization Not Found" } }, - "summary": "Get Containers Of An Organization" + "summary": "Get Containers Of An Organization", + "x-stackit-authorization": { + "disabled": true + } }, "parameters": [ { @@ -898,7 +909,10 @@ "description": "Forbidden" } }, - "summary": "Get All Organizations" + "summary": "Get All Organizations", + "x-stackit-authorization": { + "disabled": true + } } }, "/v2/organizations/{id}": { @@ -932,7 +946,15 @@ "description": "Not Found" } }, - "summary": "Get Organization Details" + "summary": "Get Organization Details", + "x-stackit-authorization": { + "actions": [ + "resource-manager.organization.get" + ], + "resource-id": "id", + "resource-id-type": "dynamic", + "resource-type": "organization" + } }, "parameters": [ { @@ -1025,7 +1047,10 @@ "description": "Forbidden" } }, - "summary": "Get All Projects" + "summary": "Get All Projects", + "x-stackit-authorization": { + "disabled": true + } }, "post": { "description": "Create a new project. \n- The request is synchronous, but the workflow-based creation is asynchronous.\n- Lifecycle state remains in CREATING, until workflow completes", @@ -1096,7 +1121,10 @@ "description": "Conflict" } }, - "summary": "Create Project" + "summary": "Create Project", + "x-stackit-authorization": { + "disabled": true + } } }, "/v2/projects/{id}": { @@ -1123,7 +1151,15 @@ "description": "Conflict" } }, - "summary": "Delete Project" + "summary": "Delete Project", + "x-stackit-authorization": { + "actions": [ + "resource-manager.project.delete" + ], + "resource-id": "id", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Returns the project and its metadata.", @@ -1180,7 +1216,15 @@ "description": "Not Found" } }, - "summary": "Get Project Details" + "summary": "Get Project Details", + "x-stackit-authorization": { + "actions": [ + "resource-manager.project.get" + ], + "resource-id": "id", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -1262,7 +1306,15 @@ "description": "Conflict" } }, - "summary": "Update Project" + "summary": "Update Project", + "x-stackit-authorization": { + "actions": [ + "resource-manager.project.edit" + ], + "resource-id": "id", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/run-command/v1/run-command.json b/services/run-command/v1/run-command.json index 4750674..8c6f83a 100644 --- a/services/run-command/v1/run-command.json +++ b/services/run-command/v1/run-command.json @@ -381,7 +381,10 @@ "description": "Unauthorized" } }, - "security": [] + "security": [], + "x-stackit-authorization": { + "disabled": true + } } }, "/v1/projects/{projectId}/servers/{serverId}/command-templates/{commandTemplateName}": { @@ -469,6 +472,14 @@ }, "description": "Not Found" } + }, + "x-stackit-authorization": { + "actions": [ + "run-command.command-template.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -546,6 +557,14 @@ }, "description": "Not Found" } + }, + "x-stackit-authorization": { + "actions": [ + "run-command.command.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "post": { @@ -634,6 +653,19 @@ }, "description": "Not Found" } + }, + "x-stackit-authorization": { + "actions": [ + "run-command.command.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.run-command" + ] + } } } }, @@ -722,6 +754,14 @@ }, "description": "Not Found" } + }, + "x-stackit-authorization": { + "actions": [ + "run-command.command.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } } diff --git a/services/run-command/v1beta/run-command.json b/services/run-command/v1beta/run-command.json index c75a5b8..d3da83f 100644 --- a/services/run-command/v1beta/run-command.json +++ b/services/run-command/v1beta/run-command.json @@ -381,7 +381,10 @@ "description": "Unauthorized" } }, - "security": [] + "security": [], + "x-stackit-authorization": { + "disabled": true + } } }, "/v1beta/projects/{projectId}/servers/{serverId}/command-templates/{commandTemplateName}": { @@ -469,6 +472,14 @@ }, "description": "Not Found" } + }, + "x-stackit-authorization": { + "actions": [ + "run-command.command-template.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -546,6 +557,14 @@ }, "description": "Not Found" } + }, + "x-stackit-authorization": { + "actions": [ + "run-command.command.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "post": { @@ -634,6 +653,19 @@ }, "description": "Not Found" } + }, + "x-stackit-authorization": { + "actions": [ + "run-command.command.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.run-command" + ] + } } } }, @@ -722,6 +754,14 @@ }, "description": "Not Found" } + }, + "x-stackit-authorization": { + "actions": [ + "run-command.command.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } } diff --git a/services/secrets-manager/v1/secrets-manager.json b/services/secrets-manager/v1/secrets-manager.json index a3cf1f9..b060757 100644 --- a/services/secrets-manager/v1/secrets-manager.json +++ b/services/secrets-manager/v1/secrets-manager.json @@ -249,6 +249,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "parameters": [ @@ -297,6 +305,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -317,6 +333,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "get": { @@ -342,6 +366,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "parameters": [ @@ -397,6 +429,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -424,6 +464,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "parameters": [ @@ -486,6 +534,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "put": { @@ -517,6 +573,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -537,6 +601,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "get": { @@ -562,6 +634,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "parameters": [ @@ -628,6 +708,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -655,6 +743,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "parameters": [ @@ -720,6 +816,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } }, @@ -740,6 +844,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "get": { @@ -765,6 +877,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "parameters": [ @@ -828,6 +948,14 @@ "500": { "description": "Internal server error. The application experienced some unexpected situation." } + }, + "x-stackit-authorization": { + "actions": [ + "secrets-manager.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } } diff --git a/services/server-backup/v1/server-backup.json b/services/server-backup/v1/server-backup.json index 97937db..84e4ff0 100644 --- a/services/server-backup/v1/server-backup.json +++ b/services/server-backup/v1/server-backup.json @@ -422,7 +422,15 @@ "description": "Project Not Found" } }, - "summary": "get list of backup policies" + "summary": "get list of backup policies", + "x-stackit-authorization": { + "actions": [ + "server-backup.policy.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}": { @@ -460,7 +468,15 @@ "description": "Server not found" } }, - "summary": "disable backup service" + "summary": "disable backup service", + "x-stackit-authorization": { + "actions": [ + "server-backup.service.disable" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "deprecated": true, @@ -512,7 +528,15 @@ "description": "Server not found" } }, - "summary": "enable backup service" + "summary": "enable backup service", + "x-stackit-authorization": { + "actions": [ + "server-backup.service.enable" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/backup-schedules": { @@ -553,7 +577,15 @@ "description": "Server not found" } }, - "summary": "get list of backup schedules" + "summary": "get list of backup schedules", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup-schedule.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "CreateBackupSchedule", @@ -604,7 +636,15 @@ "description": "Server not found" } }, - "summary": "create backup schedule" + "summary": "create backup schedule", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup-schedule.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/backup-schedules/{backupScheduleId}": { @@ -647,7 +687,15 @@ "description": "Server | schedule not found" } }, - "summary": "delete backup schedule" + "summary": "delete backup schedule", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup-schedule.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "operationId": "GetBackupSchedule", @@ -695,7 +743,15 @@ "description": "Server | backup schedule not found" } }, - "summary": "get single backup schedule details" + "summary": "get single backup schedule details", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup-schedule.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "operationId": "UpdateBackupSchedule", @@ -755,7 +811,15 @@ "description": "Server | schedule not found" } }, - "summary": "update backup schedule" + "summary": "update backup schedule", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup-schedule.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/backups": { @@ -796,7 +860,15 @@ "description": "Server not found" } }, - "summary": "get list of backups" + "summary": "get list of backups", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "CreateBackup", @@ -847,7 +919,15 @@ "description": "Server not found" } }, - "summary": "create backup" + "summary": "create backup", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/backups/{backupId}": { @@ -890,7 +970,15 @@ "description": "Server | backup job not found" } }, - "summary": "delete backup" + "summary": "delete backup", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "operationId": "GetBackup", @@ -982,7 +1070,15 @@ "description": "Server | backup job not found" } }, - "summary": "get backup" + "summary": "get backup", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/backups/{backupId}/restore": { @@ -1037,7 +1133,15 @@ "description": "Server | backup not found" } }, - "summary": "trigger restore of the requested backup" + "summary": "trigger restore of the requested backup", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup.restore" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/backups/{backupId}/volume-backups/{volumeBackupId}": { @@ -1089,7 +1193,15 @@ "description": "Server | volume backup not found" } }, - "summary": "delete volume backup" + "summary": "delete volume backup", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup.volume-backup.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/backups/{backupId}/volume-backups/{volumeBackupId}/restore": { @@ -1153,7 +1265,15 @@ "description": "Server | backup not found" } }, - "summary": "trigger restore of the requested volume backup" + "summary": "trigger restore of the requested volume backup", + "x-stackit-authorization": { + "actions": [ + "server-backup.backup.volume-backup.restore" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/service": { @@ -1190,7 +1310,15 @@ "description": "Server not found" } }, - "summary": "disable backup service" + "summary": "disable backup service", + "x-stackit-authorization": { + "actions": [ + "server-backup.service.disable" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "operationId": "GetServiceResource", @@ -1232,7 +1360,15 @@ "description": "Server, or service, Not Found" } }, - "summary": "get backup service details" + "summary": "get backup service details", + "x-stackit-authorization": { + "actions": [ + "server-backup.service.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "EnableServiceResource", @@ -1283,7 +1419,15 @@ "description": "Server not found" } }, - "summary": "enable backup service" + "summary": "enable backup service", + "x-stackit-authorization": { + "actions": [ + "server-backup.service.enable" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/server-update/v1/server-update.json b/services/server-update/v1/server-update.json index 518441f..af2278e 100644 --- a/services/server-update/v1/server-update.json +++ b/services/server-update/v1/server-update.json @@ -337,7 +337,15 @@ "description": "Server not found" } }, - "summary": "disable update service" + "summary": "disable update service", + "x-stackit-authorization": { + "actions": [ + "server-update.service.disable" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "deprecated": true, @@ -392,7 +400,15 @@ "description": "Server not found" } }, - "summary": "enable update service" + "summary": "enable update service", + "x-stackit-authorization": { + "actions": [ + "server-update.service.enable" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/service": { @@ -432,7 +448,15 @@ "description": "Server not found" } }, - "summary": "disable update service" + "summary": "disable update service", + "x-stackit-authorization": { + "actions": [ + "server-update.service.disable" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "operationId": "GetServiceResource", @@ -477,7 +501,15 @@ "description": "Server, or service, Not Found" } }, - "summary": "get update service details" + "summary": "get update service details", + "x-stackit-authorization": { + "actions": [ + "server-update.service.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "EnableServiceResource", @@ -531,7 +563,15 @@ "description": "Server not found" } }, - "summary": "enable update service" + "summary": "enable update service", + "x-stackit-authorization": { + "actions": [ + "server-update.service.enable" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/update-schedules": { @@ -578,7 +618,15 @@ "description": "Server not found" } }, - "summary": "get list of update schedules" + "summary": "get list of update schedules", + "x-stackit-authorization": { + "actions": [ + "server-update.update-schedule.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "CreateUpdateSchedule", @@ -632,7 +680,15 @@ "description": "Server not found" } }, - "summary": "create update schedule" + "summary": "create update schedule", + "x-stackit-authorization": { + "actions": [ + "server-update.update-schedule.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/update-schedules/{scheduleId}": { @@ -681,7 +737,15 @@ "description": "Server | schedule not found" } }, - "summary": "delete update schedule" + "summary": "delete update schedule", + "x-stackit-authorization": { + "actions": [ + "server-update.update-schedule.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "operationId": "GetUpdateSchedule", @@ -735,7 +799,15 @@ "description": "Server | update schedule not found" } }, - "summary": "get single update schedule details" + "summary": "get single update schedule details", + "x-stackit-authorization": { + "actions": [ + "server-update.update-schedule.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "operationId": "UpdateUpdateSchedule", @@ -798,7 +870,15 @@ "description": "Server | schedule not found" } }, - "summary": "update update schedule" + "summary": "update update schedule", + "x-stackit-authorization": { + "actions": [ + "server-update.update-schedule.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/updates": { @@ -845,7 +925,15 @@ "description": "Server not found" } }, - "summary": "get list of updates" + "summary": "get list of updates", + "x-stackit-authorization": { + "actions": [ + "server-update.update.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "operationId": "CreateUpdate", @@ -899,7 +987,15 @@ "description": "Server not found" } }, - "summary": "create update" + "summary": "create update", + "x-stackit-authorization": { + "actions": [ + "server-update.update.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/servers/{serverId}/updates/{updateId}": { @@ -955,7 +1051,15 @@ "description": "Server | update job not found" } }, - "summary": "get update" + "summary": "get update", + "x-stackit-authorization": { + "actions": [ + "server-update.update.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/update-policies": { @@ -990,7 +1094,15 @@ "description": "Project Not Found" } }, - "summary": "get list of update policies" + "summary": "get list of update policies", + "x-stackit-authorization": { + "actions": [ + "server-update.policy.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/service-account/v2/service-account.json b/services/service-account/v2/service-account.json index 858950d..4afb944 100644 --- a/services/service-account/v2/service-account.json +++ b/services/service-account/v2/service-account.json @@ -742,7 +742,10 @@ "description": "OK" } }, - "summary": "Request short lived API access token (OAUTH2)." + "summary": "Request short lived API access token (OAUTH2).", + "x-stackit-authorization": { + "disabled": true + } } }, "/v2/projects/{projectId}/service-accounts": { @@ -802,7 +805,15 @@ "description": "Forbidden" } }, - "summary": "List all Service Accounts" + "summary": "List all Service Accounts", + "x-stackit-authorization": { + "actions": [ + "iam.service-account.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "parameters": [ { @@ -890,7 +901,15 @@ "description": "Name not unique" } }, - "summary": "Create a new Service Account" + "summary": "Create a new Service Account", + "x-stackit-authorization": { + "actions": [ + "iam.service-account.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v2/projects/{projectId}/service-accounts/{serviceAccountEmail}": { @@ -958,7 +977,15 @@ "description": "Service Account Not Found" } }, - "summary": "Delete Service Account" + "summary": "Delete Service Account", + "x-stackit-authorization": { + "actions": [ + "iam.service-account.delete" + ], + "resource-id": "serviceAccountEmail", + "resource-id-type": "dynamic", + "resource-type": "service-account" + } }, "parameters": [ { @@ -1054,7 +1081,15 @@ "description": "Service Account not found" } }, - "summary": "List Access Tokens of Service Account" + "summary": "List Access Tokens of Service Account", + "x-stackit-authorization": { + "actions": [ + "iam.service-account-token.list" + ], + "resource-id": "serviceAccountEmail", + "resource-id-type": "dynamic", + "resource-type": "service-account" + } }, "parameters": [ { @@ -1158,7 +1193,15 @@ "description": "Service Account not found" } }, - "summary": "Create a new Access Token" + "summary": "Create a new Access Token", + "x-stackit-authorization": { + "actions": [ + "iam.service-account-token.create" + ], + "resource-id": "serviceAccountEmail", + "resource-id-type": "dynamic", + "resource-type": "service-account" + } } }, "/v2/projects/{projectId}/service-accounts/{serviceAccountEmail}/access-tokens/{accessTokenId}": { @@ -1241,7 +1284,15 @@ "description": "Access Token already revoked" } }, - "summary": "Revoke Access Token" + "summary": "Revoke Access Token", + "x-stackit-authorization": { + "actions": [ + "iam.service-account-token.delete" + ], + "resource-id": "serviceAccountEmail", + "resource-id-type": "dynamic", + "resource-type": "service-account" + } }, "parameters": [ { @@ -1332,7 +1383,15 @@ "description": "Forbidden" } }, - "summary": "List all keys that belong to the service account" + "summary": "List all keys that belong to the service account", + "x-stackit-authorization": { + "actions": [ + "iam.service-account-key.list" + ], + "resource-id": "serviceAccountEmail", + "resource-id-type": "dynamic", + "resource-type": "service-account" + } }, "parameters": [ { @@ -1430,7 +1489,15 @@ "description": "Name not unique" } }, - "summary": "Create a new Service Account key" + "summary": "Create a new Service Account key", + "x-stackit-authorization": { + "actions": [ + "iam.service-account-key.create" + ], + "resource-id": "serviceAccountEmail", + "resource-id-type": "dynamic", + "resource-type": "service-account" + } } }, "/v2/projects/{projectId}/service-accounts/{serviceAccountEmail}/keys/{keyId}": { @@ -1483,7 +1550,15 @@ "description": "Forbidden" } }, - "summary": "Delete a service account key" + "summary": "Delete a service account key", + "x-stackit-authorization": { + "actions": [ + "iam.service-account-key.delete" + ], + "resource-id": "serviceAccountEmail", + "resource-id-type": "dynamic", + "resource-type": "service-account" + } }, "get": { "description": "Get key details", @@ -1555,7 +1630,15 @@ "description": "Forbidden" } }, - "summary": "Get service account key details" + "summary": "Get service account key details", + "x-stackit-authorization": { + "actions": [ + "iam.service-account-key.get" + ], + "resource-id": "serviceAccountEmail", + "resource-id-type": "dynamic", + "resource-type": "service-account" + } }, "parameters": [ { @@ -1663,7 +1746,15 @@ "description": "Name not unique" } }, - "summary": "Update Service Account key" + "summary": "Update Service Account key", + "x-stackit-authorization": { + "actions": [ + "iam.service-account-key.edit" + ], + "resource-id": "serviceAccountEmail", + "resource-id-type": "dynamic", + "resource-type": "service-account" + } } }, "/v2/service-accounts/public/jwk/{serviceAccountEmail}": { @@ -1682,7 +1773,10 @@ "description": "OK" } }, - "summary": "Get JSON Web Key set of the service account" + "summary": "Get JSON Web Key set of the service account", + "x-stackit-authorization": { + "disabled": true + } }, "parameters": [ { diff --git a/services/service-enablement/v1/service-enablement.json b/services/service-enablement/v1/service-enablement.json index 5ccf1ab..ee4166f 100644 --- a/services/service-enablement/v1/service-enablement.json +++ b/services/service-enablement/v1/service-enablement.json @@ -234,6 +234,14 @@ }, "description": "OK" } + }, + "x-stackit-authorization": { + "actions": [ + "service-enablement.service-state.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "parameters": [ @@ -258,6 +266,14 @@ "404": { "description": "service not found" } + }, + "x-stackit-authorization": { + "actions": [ + "service-enablement.service-state.edit" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "get": { @@ -277,6 +293,14 @@ "404": { "description": "service not found" } + }, + "x-stackit-authorization": { + "actions": [ + "service-enablement.service-state.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } }, "parameters": [ @@ -307,6 +331,14 @@ "404": { "description": "service not found" } + }, + "x-stackit-authorization": { + "actions": [ + "service-enablement.service-state.edit" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" } } } diff --git a/services/ske/v1/ske.json b/services/ske/v1/ske.json index dd96aa0..bf7cdcd 100644 --- a/services/ske/v1/ske.json +++ b/services/ske/v1/ske.json @@ -2003,7 +2003,20 @@ "description": "An unexpected error response." } }, - "summary": "List all clusters" + "summary": "List all clusters", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } } }, "/v1/projects/{projectId}/clusters/{clusterName}": { @@ -2060,7 +2073,20 @@ "description": "An unexpected error response." } }, - "summary": "Delete a cluster" + "summary": "Delete a cluster", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } }, "get": { "description": "Get Kubernetes cluster for the specified identifier, belonging to the project specified by `projectId`.", @@ -2105,7 +2131,20 @@ "description": "An unexpected error response." } }, - "summary": "Get a cluster" + "summary": "Get a cluster", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } }, "put": { "description": "Create a new cluster in your project or modify an existing one. To get valid values for certain properties please check the [provider-options](#tag/ProviderOptions/operation/SkeService_GetProviderOptions) endpoint.", @@ -2190,7 +2229,20 @@ "description": "An unexpected error response." } }, - "summary": "Create or update a cluster" + "summary": "Create or update a cluster", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } } }, "/v1/projects/{projectId}/clusters/{clusterName}/complete-credentials-rotation": { @@ -2267,7 +2319,20 @@ "description": "An unexpected error response." } }, - "summary": "Complete cluster credentials rotation" + "summary": "Complete cluster credentials rotation", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.credential.rotate" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } } }, "/v1/projects/{projectId}/clusters/{clusterName}/hibernate": { @@ -2334,7 +2399,20 @@ "description": "An unexpected error response." } }, - "summary": "Trigger cluster hibernation" + "summary": "Trigger cluster hibernation", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.hibernate" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } } }, "/v1/projects/{projectId}/clusters/{clusterName}/kubeconfig": { @@ -2391,7 +2469,20 @@ "description": "An unexpected error response." } }, - "summary": "Create a kubeconfig" + "summary": "Create a kubeconfig", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.kubeconfig.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } } }, "/v1/projects/{projectId}/clusters/{clusterName}/kubeconfig/login": { @@ -2438,7 +2529,20 @@ "description": "An unexpected error response." } }, - "summary": "Get a kubeconfig for use with the STACKIT CLI" + "summary": "Get a kubeconfig for use with the STACKIT CLI", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.kubeconfig.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } } }, "/v1/projects/{projectId}/clusters/{clusterName}/maintenance": { @@ -2505,7 +2609,20 @@ "description": "An unexpected error response." } }, - "summary": "Trigger cluster maintenance" + "summary": "Trigger cluster maintenance", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.maintain" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } } }, "/v1/projects/{projectId}/clusters/{clusterName}/reconcile": { @@ -2572,7 +2689,20 @@ "description": "An unexpected error response." } }, - "summary": "Trigger cluster reconciliation" + "summary": "Trigger cluster reconciliation", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.reconcile" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } } }, "/v1/projects/{projectId}/clusters/{clusterName}/start-credentials-rotation": { @@ -2649,7 +2779,20 @@ "description": "An unexpected error response." } }, - "summary": "Start cluster credentials rotation" + "summary": "Start cluster credentials rotation", + "x-stackit-authorization": { + "actions": [ + "ske.cluster.credential.rotate" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.ske" + ] + } + } } }, "/v1/provider-options": { @@ -2678,7 +2821,10 @@ "description": "An unexpected error response." } }, - "summary": "List provider options" + "summary": "List provider options", + "x-stackit-authorization": { + "disabled": true + } } } }, diff --git a/services/sqlserverflex/v1/sqlserverflex.json b/services/sqlserverflex/v1/sqlserverflex.json index 9c184ef..78cc723 100644 --- a/services/sqlserverflex/v1/sqlserverflex.json +++ b/services/sqlserverflex/v1/sqlserverflex.json @@ -1043,7 +1043,15 @@ "BearerAuth": [] } ], - "summary": "Get Flavors" + "summary": "Get Flavors", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.flavor.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances": { @@ -1096,7 +1104,15 @@ "BearerAuth": [] } ], - "summary": "List Instances" + "summary": "List Instances", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.instance.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create a new instance of a sqlServerCRD database", @@ -1158,7 +1174,15 @@ "BearerAuth": [] } ], - "summary": "Create Instance" + "summary": "Create Instance", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.instance.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}": { @@ -1215,7 +1239,15 @@ "BearerAuth": [] } ], - "summary": "Delete Instance" + "summary": "Delete Instance", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.instance.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get specific available instances", @@ -1277,7 +1309,15 @@ "BearerAuth": [] } ], - "summary": "Get specific instance" + "summary": "Get specific instance", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.instance.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "patch": { "description": "Update available instance of a mssql database.", @@ -1350,7 +1390,15 @@ "BearerAuth": [] } ], - "summary": "Update Instance" + "summary": "Update Instance", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "put": { "description": "Update available instance of a mssql database.", @@ -1423,7 +1471,15 @@ "BearerAuth": [] } ], - "summary": "Update Instance" + "summary": "Update Instance", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.instance.update" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups": { @@ -1487,7 +1543,15 @@ "BearerAuth": [] } ], - "summary": "List backups" + "summary": "List backups", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.backup.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/databases/{databaseName}": { @@ -1572,7 +1636,15 @@ "BearerAuth": [] } ], - "summary": "Trigger backup for a specific Database" + "summary": "Trigger backup for a specific Database", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.backup.trigger" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/databases/{databaseName}/restores": { @@ -1668,7 +1740,15 @@ "BearerAuth": [] } ], - "summary": "Trigger restore for a specific Database" + "summary": "Trigger restore for a specific Database", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.restore.trigger" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/backups/{backupId}": { @@ -1743,7 +1823,15 @@ "BearerAuth": [] } ], - "summary": "Get specific backup" + "summary": "Get specific backup", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.backup.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/collation": { @@ -1821,7 +1909,15 @@ "BearerAuth": [] } ], - "summary": "Get database collation list" + "summary": "Get database collation list", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.collation.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/compatibility": { @@ -1899,7 +1995,15 @@ "BearerAuth": [] } ], - "summary": "Get database compatibility list" + "summary": "Get database compatibility list", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.compatlevel.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/databases": { @@ -1963,7 +2067,15 @@ "BearerAuth": [] } ], - "summary": "Get list of databases" + "summary": "Get list of databases", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.database.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create a Database for an instance", @@ -2036,7 +2148,15 @@ "BearerAuth": [] } ], - "summary": "Create a Database" + "summary": "Create a Database", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.database.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/databases/{databaseName}": { @@ -2104,7 +2224,15 @@ "BearerAuth": [] } ], - "summary": "Delete Database" + "summary": "Delete Database", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.database.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get specific available database", @@ -2177,7 +2305,15 @@ "BearerAuth": [] } ], - "summary": "Get specific Database" + "summary": "Get specific Database", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.database.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/restores": { @@ -2241,7 +2377,15 @@ "BearerAuth": [] } ], - "summary": "List current running restore jobs" + "summary": "List current running restore jobs", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.restore.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/roles": { @@ -2305,7 +2449,15 @@ "BearerAuth": [] } ], - "summary": "List Roles" + "summary": "List Roles", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.role.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/users": { @@ -2369,7 +2521,15 @@ "BearerAuth": [] } ], - "summary": "List Users" + "summary": "List Users", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.user.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "post": { "description": "Create user for an instance", @@ -2442,7 +2602,15 @@ "BearerAuth": [] } ], - "summary": "Create User" + "summary": "Create User", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.user.create" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/users/{userId}": { @@ -2510,7 +2678,15 @@ "BearerAuth": [] } ], - "summary": "Delete User" + "summary": "Delete User", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.user.delete" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } }, "get": { "description": "Get specific available user for an instance", @@ -2600,7 +2776,15 @@ "BearerAuth": [] } ], - "summary": "Get User" + "summary": "Get User", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.user.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/instances/{instanceId}/users/{userId}/reset": { @@ -2692,7 +2876,15 @@ "BearerAuth": [] } ], - "summary": "Reset User" + "summary": "Reset User", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.user.reset" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/storages/{flavorId}": { @@ -2756,7 +2948,15 @@ "BearerAuth": [] } ], - "summary": "Get Storages" + "summary": "Get Storages", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.storage.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } }, "/v1/projects/{projectId}/versions": { @@ -2819,7 +3019,15 @@ "BearerAuth": [] } ], - "summary": "Get Versions" + "summary": "Get Versions", + "x-stackit-authorization": { + "actions": [ + "sqlserver-flex.version.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project" + } } } }, diff --git a/services/stackit-marketplace/v1/stackit-marketplace.json b/services/stackit-marketplace/v1/stackit-marketplace.json index 61098d4..0657ace 100644 --- a/services/stackit-marketplace/v1/stackit-marketplace.json +++ b/services/stackit-marketplace/v1/stackit-marketplace.json @@ -930,7 +930,10 @@ "$ref": "#/components/responses/Forbidden" } }, - "summary": "List all products" + "summary": "List all products", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1/catalog/products/{productId}": { @@ -969,7 +972,10 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "Get a product" + "summary": "Get a product", + "x-stackit-authorization": { + "disabled": true + } } }, "/v1/vendors/projects/{projectId}/resolve-customer": { @@ -1015,7 +1021,20 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "Resolve customer" + "summary": "Resolve customer", + "x-stackit-authorization": { + "actions": [ + "marketplace.subscription.approve" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.marketplace" + ] + } + } } }, "/v1/vendors/projects/{projectId}/subscriptions": { @@ -1057,7 +1076,20 @@ "$ref": "#/components/responses/Forbidden" } }, - "summary": "List all subscriptions" + "summary": "List all subscriptions", + "x-stackit-authorization": { + "actions": [ + "marketplace.subscription.list" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.marketplace" + ] + } + } } }, "/v1/vendors/projects/{projectId}/subscriptions/{subscriptionId}": { @@ -1096,7 +1128,20 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "Get a subscription" + "summary": "Get a subscription", + "x-stackit-authorization": { + "actions": [ + "marketplace.subscription.get" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.marketplace" + ] + } + } } }, "/v1/vendors/projects/{projectId}/subscriptions/{subscriptionId}/approve": { @@ -1128,7 +1173,20 @@ "$ref": "#/components/responses/NotFound" } }, - "summary": "Approve a subscription" + "summary": "Approve a subscription", + "x-stackit-authorization": { + "actions": [ + "marketplace.subscription.approve" + ], + "resource-id": "projectId", + "resource-id-type": "dynamic", + "resource-type": "project", + "service-enablement": { + "services": [ + "cloud.stackit.marketplace" + ] + } + } } } },