openapi: 3.2.0 info: contact: email: support@linode.com name: Linode url: https://linode.com description: Add a Cloud Computing instance so you can build, release, and scale applications faster with virtual machines. license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: 'Akamai: Linode Control Plane ACL API' version: 4.215.0 servers: - url: https://api.linode.com tags: - description: View and manage access control lists (ACLs) for the control planes on your LKE clusters. Control Plane ACLs allow you to restrict access to your cluster's control plane to specific IP addresses or ranges. name: Control Plane ACL paths: /{apiVersion}/lke/clusters/{clusterId}/control_plane_acl: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' in: path name: apiVersion required: true schema: enum: - v4 - v4beta type: string x-akamai: file-path: parameters/api-version-path.yaml - description: ID of the Kubernetes cluster to look up. example: '{{clusterId}}' in: path name: clusterId required: true schema: type: integer x-akamai: file-path: parameters/cluster-id-path.yaml x-akamai: file-path: paths/lke-control-plane-acl.yaml path-info: /{apiVersion}/lke/clusters/{clusterId}/control_plane_acl x-linode-cli-command: lke get: description: 'Get a specific cluster''s control plane access control List. > --- - __CLI__. ``` linode-cli lke cluster-acl-view 12345 ``` Learn more... - __OAuth scopes__. ``` lke:read_only ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/get-lke-cluster-acl operationId: get-lke-cluster-acl responses: '200': content: application/json: schema: allOf: - properties: acl: additionalProperties: false description: Defines settings related to the IP-based ACL of the LKE cluster. The object requires the `enabled` and `addresses` keys. It also supports the optional key `revision-id`. The default policy is set to `ALLOW`, so that access controls are disabled. An empty object value (`{}`) sets default elements. properties: addresses: additionalProperties: false description: Supports keys `ipv4` and `ipv6`. Defaults to `{}`. properties: ipv4: description: A list of individual ipv4 addresses or CIDRs to ALLOW. Defaults to `[]`. example: - 203.0.113.1 - 192.0.2.0/24 items: type: string type: array ipv6: description: A list of individual ipv6 addresses or CIDRs to ALLOW. Defaults to `[]`. example: - 2001:db8:1234:abcd::/64 items: type: string type: array type: object enabled: description: Defines a default policy. A value of `true` results in a default policy of `DENY`. A value of `false` results in a default policy of `ALLOW`, such as for disabled access controls. It defaults to `true`. Creating a cluster with ACL, or upgrading a cluster to use ACL for LKE, is an irreversible change. Once upgraded, you can only toggle access controls with this field. example: true type: boolean x-linode-cli-display: 6 revision-id: description: Enables clients to track events related to ACL update requests and enforcements. Optional field. If omitted, defaults to a randomly generated string. example: 20240127r001 type: string type: object - additionalProperties: false properties: acl: properties: addresses: properties: ipv4: x-linode-cli-display: 7 ipv6: x-linode-cli-display: 8 type: object revision-id: x-linode-cli-display: 9 type: object type: object x-akamai: file-path: schemas/get-lke-cluster-control-plane.yaml description: Returns a single cluster's control plane access control list. The optional field `revision-id` provided will be reflected on GET response when (and only after) the ACL stanza is verified as enforced. '400': content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: acl type: string reason: description: A string explaining that the cluster does not support Control Plane ACL. example: Cluster does not support Control Plane ACL. type: string type: object type: array type: object x-akamai: file-path: schemas/400-control-plane-acl.yaml x-example: x-ref: ../examples/tbd.json description: If the cluster was not created or updated to enable the ACL feature, this request returns a 400 (Bad Request) error with an appropriate message, such as `Cluster does not support Control Plane ACL`. x-akamai: file-path: errors/400-control-plane-acl.yaml '404': content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: acl type: string reason: description: A string explaining that the cluster does not exist. example: Not Found. type: string type: object type: array type: object x-akamai: file-path: schemas/404-control-plane-acl.yaml x-example: x-ref: ../examples/tbd.json description: If the cluster does not exist, this request returns a 404 (Not Found) error. x-akamai: file-path: errors/404-control-plane-acl.yaml default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - lke:read_only summary: Get the control plane access control list tags: - Control Plane ACL x-akamai: tabs: - syntax: linode-cli lke cluster-acl-view 12345 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: lke:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: cluster-acl-view put: description: 'Updates a specific cluster''s control plane access control list. > --- - __CLI__. ``` linode-cli lke cluster-acl-update 12345 \ --acl.enabled true \ --acl.addresses.ipv4 "203.0.113.1" \ --acl.addresses.ipv6 "2001:db8:1234:abcd::/64" ``` Learn more... - __OAuth scopes__. ``` lke:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/put-lke-cluster-acl operationId: put-lke-cluster-acl requestBody: content: application/json: schema: additionalProperties: false description: Defines settings for the Kubernetes control plane, including an IP-based Access Control List (ACL) for the control plane components. properties: acl: additionalProperties: false description: Defines settings related to the IP-based ACL of the LKE cluster. The object requires the `enabled` and `addresses` keys. It also supports the optional key `revision-id`. The default policy is set to `ALLOW`, so that access controls are disabled. An empty object value (`{}`) sets default elements. properties: addresses: additionalProperties: false description: Supports keys `ipv4` and `ipv6`. Defaults to `{}`. properties: ipv4: description: A list of individual ipv4 addresses or CIDRs to ALLOW. Defaults to `[]`. example: - 203.0.113.1 - 192.0.2.0/24 items: type: string type: array ipv6: description: A list of individual ipv6 addresses or CIDRs to ALLOW. Defaults to `[]`. example: - 2001:db8:1234:abcd::/64 items: type: string type: array type: object enabled: description: Defines a default policy. A value of `true` results in a default policy of `DENY`. A value of `false` results in a default policy of `ALLOW`, such as for disabled access controls. It defaults to `true`. Creating a cluster with ACL, or upgrading a cluster to use ACL for LKE, is an irreversible change. Once upgraded, you can only toggle access controls with this field. example: true type: boolean x-linode-cli-display: 6 revision-id: description: Enables clients to track events related to ACL update requests and enforcements. Optional field. If omitted, defaults to a randomly generated string. example: 20240127r001 type: string type: object type: object x-example: x-ref: ../examples/put-lke-cluster.json description: The fields to update the cluster. responses: '200': content: application/json: schema: allOf: - properties: acl: additionalProperties: false description: Defines settings related to the IP-based ACL of the LKE cluster. The object requires the `enabled` and `addresses` keys. It also supports the optional key `revision-id`. The default policy is set to `ALLOW`, so that access controls are disabled. An empty object value (`{}`) sets default elements. properties: addresses: additionalProperties: false description: Supports keys `ipv4` and `ipv6`. Defaults to `{}`. properties: ipv4: description: A list of individual ipv4 addresses or CIDRs to ALLOW. Defaults to `[]`. example: - 203.0.113.1 - 192.0.2.0/24 items: type: string type: array ipv6: description: A list of individual ipv6 addresses or CIDRs to ALLOW. Defaults to `[]`. example: - 2001:db8:1234:abcd::/64 items: type: string type: array type: object enabled: description: Defines a default policy. A value of `true` results in a default policy of `DENY`. A value of `false` results in a default policy of `ALLOW`, such as for disabled access controls. It defaults to `true`. Creating a cluster with ACL, or upgrading a cluster to use ACL for LKE, is an irreversible change. Once upgraded, you can only toggle access controls with this field. example: true type: boolean x-linode-cli-display: 6 revision-id: description: Enables clients to track events related to ACL update requests and enforcements. Optional field. If omitted, defaults to a randomly generated string. example: 20240127r001 type: string type: object - additionalProperties: false properties: acl: properties: addresses: properties: ipv4: x-linode-cli-display: 7 ipv6: x-linode-cli-display: 8 type: object revision-id: x-linode-cli-display: 9 type: object type: object x-akamai: file-path: schemas/get-lke-cluster-control-plane.yaml description: Returns a single cluster's control plane access control list. The optional field `revision-id` provided will be reflected on GET response when (and only after) the ACL stanza is verified as enforced. '400': content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: acl type: string reason: description: A string explaining that the cluster does not support Control Plane ACL. example: Cluster does not support Control Plane ACL. type: string type: object type: array type: object x-akamai: file-path: schemas/400-control-plane-acl.yaml x-example: x-ref: ../examples/tbd.json description: If the cluster was not created or updated to enable the ACL feature, this request returns a 400 (Bad Request) error with an appropriate message, such as `Cluster does not support Control Plane ACL`. x-akamai: file-path: errors/400-control-plane-acl.yaml '404': content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: acl type: string reason: description: A string explaining that the cluster does not exist. example: Not Found. type: string type: object type: array type: object x-akamai: file-path: schemas/404-control-plane-acl.yaml x-example: x-ref: ../examples/tbd.json description: If the cluster does not exist, this request returns a 404 (Not Found) error. x-akamai: file-path: errors/404-control-plane-acl.yaml default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - lke:read_write summary: Update the control plane access control list tags: - Control Plane ACL x-akamai: tabs: - syntax: "linode-cli lke cluster-acl-update 12345 \\\n --acl.enabled true \\\n --acl.addresses.ipv4 \"203.0.113.1\" \\\n --acl.addresses.ipv6 \"2001:db8:1234:abcd::/64\"" title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: lke:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: cluster-acl-update delete: description: 'Disable control plane access controls and deletes all rules. This has the same effect as calling `PUT` with an acl json map value of `{“enabled” : false}`. > --- - __CLI__. ``` linode-cli lke cluster-acl-delete 12345 ``` Learn more... - __OAuth scopes__. ``` lke:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/delete-lke-cluster-acl operationId: delete-lke-cluster-acl responses: '200': content: application/json: schema: description: The API responds with an empty object. maxProperties: 0 type: object x-akamai: file-path: schemas/added-empty-obj.yaml x-example: x-ref: ../examples/delete-lke-cluster-200.json description: Delete successful. '400': content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: acl type: string reason: description: A string explaining that the cluster does not support Control Plane ACL. example: Cluster does not support Control Plane ACL. type: string type: object type: array type: object x-akamai: file-path: schemas/400-control-plane-acl.yaml x-example: x-ref: ../examples/tbd.json description: If the cluster was not created or updated to enable the ACL feature, this request returns a 400 (Bad Request) error with an appropriate message, such as `Cluster does not support Control Plane ACL`. x-akamai: file-path: errors/400-control-plane-acl.yaml '404': content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: acl type: string reason: description: A string explaining that the cluster does not exist. example: Not Found. type: string type: object type: array type: object x-akamai: file-path: schemas/404-control-plane-acl.yaml x-example: x-ref: ../examples/tbd.json description: If the cluster does not exist, this request returns a 404 (Not Found) error. x-akamai: file-path: errors/404-control-plane-acl.yaml default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - lke:read_write summary: Delete the control plane access control list tags: - Control Plane ACL x-akamai: tabs: - syntax: linode-cli lke cluster-acl-delete 12345 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: lke:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: cluster-acl-delete components: securitySchemes: oauth: flows: authorizationCode: authorizationUrl: https://login.linode.com/oauth/authorize scopes: account:read_only: Allows access to GET information about your account. account:read_write: Allows access to all endpoints related to your account. domains:read_only: Allows access to GET Domains on your account. domains:read_write: Allows access to all Domain endpoints. events:read_only: Allows access to GET your Events. events:read_write: Allows access to all endpoints related to your Events. firewall:read_only: Allows access to GET information about your Firewalls. firewall:read_write: Allows access to all Firewall endpoints. images:read_only: Allows access to GET your Images. images:read_write: Allows access to all endpoints related to your Images. ips:read_only: Allows access to GET your ips. ips:read_write: Allows access to all endpoints related to your ips. linodes:read_only: Allows access to GET Linodes on your account. linodes:read_write: Allow access to all endpoints related to your Linodes. lke:read_only: Allows access to GET LKE Clusters on your account. lke:read_write: Allows access to all endpoints related to LKE Clusters on your account. longview:read_only: Allows access to GET your Longview Clients. longview:read_write: Allows access to all endpoints related to your Longview Clients. monitor:read-write: Allows access to all Monitor (Akamai Cloud Pulse) endpoints. monitor:read_only: Allows access to Monitor (Akamai Cloud Pulse) data. nodebalancers:read_only: Allows access to GET NodeBalancers on your account. nodebalancers:read_write: Allows access to all NodeBalancer endpoints. object_storage:read_only: Allows access to GET information related to your Object Storage. object_storage:read_write: Allows access to all Object Storage endpoints. stackscripts:read_only: Allows access to GET your StackScripts. stackscripts:read_write: Allows access to all endpoints related to your StackScripts. volumes:read_only: Allows access to GET your Volumes. volumes:read_write: Allows access to all endpoints related to your Volumes. vpc:read_write: Allows access to all endpoints related to VPC and Subnet creation, updating, and deletion. tokenUrl: https://login.linode.com/oauth/token type: oauth2 personalAccessToken: scheme: bearer type: http externalDocs: description: See documentation for Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference x-readme: samples-languages: - curl - python - node