From 00febfa373d9b888f0f183a7b48fd983db6dd985 Mon Sep 17 00:00:00 2001 From: David Lee Date: Fri, 5 Apr 2024 02:49:39 -0400 Subject: [PATCH] OCM-6535 | feat: changes to support sts arbitrary policies --- model/clusters_mgmt/v1/aws_resource.model | 4 +++ .../v1/role_policy_binding_status_type.model | 20 ++++++++++++ ...role_policy_binding_status_type_type.model | 23 ++++++++++++++ .../v1/role_policy_binding_type.model | 23 ++++++++++++++ .../v1/role_policy_binding_type_type.model | 23 ++++++++++++++ .../v1/role_policy_bindings_resource.model | 31 +++++++++++++++++++ model/clusters_mgmt/v1/role_policy_type.model | 21 +++++++++++++ .../v1/role_policy_type_type.model | 26 ++++++++++++++++ 8 files changed, 171 insertions(+) create mode 100644 model/clusters_mgmt/v1/role_policy_binding_status_type.model create mode 100644 model/clusters_mgmt/v1/role_policy_binding_status_type_type.model create mode 100644 model/clusters_mgmt/v1/role_policy_binding_type.model create mode 100644 model/clusters_mgmt/v1/role_policy_binding_type_type.model create mode 100644 model/clusters_mgmt/v1/role_policy_bindings_resource.model create mode 100644 model/clusters_mgmt/v1/role_policy_type.model create mode 100644 model/clusters_mgmt/v1/role_policy_type_type.model diff --git a/model/clusters_mgmt/v1/aws_resource.model b/model/clusters_mgmt/v1/aws_resource.model index d506a477..eefc6a1a 100644 --- a/model/clusters_mgmt/v1/aws_resource.model +++ b/model/clusters_mgmt/v1/aws_resource.model @@ -19,4 +19,8 @@ resource AWS { locator PrivateLinkConfiguration { target PrivateLinkConfiguration } + + locator RolePolicyBindings { + target RolePolicyBindings + } } diff --git a/model/clusters_mgmt/v1/role_policy_binding_status_type.model b/model/clusters_mgmt/v1/role_policy_binding_status_type.model new file mode 100644 index 00000000..2e986072 --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_binding_status_type.model @@ -0,0 +1,20 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +struct RolePolicyBindingStatus { + Value RolePolicyBindingStatusType + Description String +} diff --git a/model/clusters_mgmt/v1/role_policy_binding_status_type_type.model b/model/clusters_mgmt/v1/role_policy_binding_status_type_type.model new file mode 100644 index 00000000..f4557a57 --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_binding_status_type_type.model @@ -0,0 +1,23 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +enum RolePolicyBindingStatusType { + @json(name = "succeeded") + Succeeded + + @json(name = "failed") + Failed +} diff --git a/model/clusters_mgmt/v1/role_policy_binding_type.model b/model/clusters_mgmt/v1/role_policy_binding_type.model new file mode 100644 index 00000000..22b87f0e --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_binding_type.model @@ -0,0 +1,23 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +struct RolePolicyBinding { + Name String + Arn String + Type RolePolicyBindingType + Status RolePolicyBindingStatus + Policies []RolePolicy +} diff --git a/model/clusters_mgmt/v1/role_policy_binding_type_type.model b/model/clusters_mgmt/v1/role_policy_binding_type_type.model new file mode 100644 index 00000000..aa14742e --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_binding_type_type.model @@ -0,0 +1,23 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +enum RolePolicyBindingType { + @json(name = "account") + Account + + @json(name = "operator") + Operator +} diff --git a/model/clusters_mgmt/v1/role_policy_bindings_resource.model b/model/clusters_mgmt/v1/role_policy_bindings_resource.model new file mode 100644 index 00000000..4df3d1c4 --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_bindings_resource.model @@ -0,0 +1,31 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +resource RolePolicyBindings { + method List { + // Index of the requested page, where one corresponds to the first page. + in out Page Integer = 1 + + // Number of items contained in the returned page. + in out Size Integer = 100 + + // Total number of items of the collection. + out Total Integer + + // Retrieved list of role policy bindings. + out Items []RolePolicyBinding + } +} diff --git a/model/clusters_mgmt/v1/role_policy_type.model b/model/clusters_mgmt/v1/role_policy_type.model new file mode 100644 index 00000000..fca5f948 --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_type.model @@ -0,0 +1,21 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +struct RolePolicy { + Name String + Arn String + Type RolePolicyType +} diff --git a/model/clusters_mgmt/v1/role_policy_type_type.model b/model/clusters_mgmt/v1/role_policy_type_type.model new file mode 100644 index 00000000..731f3c84 --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_type_type.model @@ -0,0 +1,26 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +enum RolePolicyType { + @json(name = "managed") + Managed + + @json(name = "customer") + Customer + + @json(name = "inline") + Inline +}