diff --git a/model/aro_hcp/v1_alpha1/cloud_region_type.model b/model/aro_hcp/v1_alpha1/cloud_region_type.model new file mode 100644 index 00000000..7168eede --- /dev/null +++ b/model/aro_hcp/v1_alpha1/cloud_region_type.model @@ -0,0 +1,19 @@ +/* +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. +*/ + +@ref(path = "/clusters_mgmt/v1/cloud_region") +class CloudRegion { +} \ No newline at end of file diff --git a/model/aro_hcp/v1_alpha1/cluster_resource.model b/model/aro_hcp/v1_alpha1/cluster_resource.model new file mode 100644 index 00000000..6a7b940c --- /dev/null +++ b/model/aro_hcp/v1_alpha1/cluster_resource.model @@ -0,0 +1,37 @@ +/* +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. +*/ + +// Manages a specific cluster. +resource Cluster { + // Retrieves the details of the cluster. + method Get { + out Body Cluster + } + + // Updates the cluster. + method Update { + in out Body Cluster + } + + // Deletes the cluster. + method Delete { + // Dry run flag is used to check if the operation can be completed, but won't delete. + in DryRun Boolean = false + + // BestEffort flag is used to check if the cluster deletion should be best-effort mode or not. + in BestEffort Boolean = false + } +} \ No newline at end of file diff --git a/model/aro_hcp/v1_alpha1/cluster_type.model b/model/aro_hcp/v1_alpha1/cluster_type.model new file mode 100644 index 00000000..e598c251 --- /dev/null +++ b/model/aro_hcp/v1_alpha1/cluster_type.model @@ -0,0 +1,22 @@ +/* +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. +*/ + +@ref(path = "/clusters_mgmt/v1/cluster") +class Cluster { + link Product Product + + link Region CloudRegion +} \ No newline at end of file diff --git a/model/aro_hcp/v1_alpha1/clusters_resource.model b/model/aro_hcp/v1_alpha1/clusters_resource.model new file mode 100644 index 00000000..136b0818 --- /dev/null +++ b/model/aro_hcp/v1_alpha1/clusters_resource.model @@ -0,0 +1,79 @@ +/* +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. +*/ + +// Manages the collection of aro_hcp clusters. +resource Clusters { + // Retrieves the list of clusters. + method List { + // Index of the requested page, where one corresponds to the first page. + in out Page Integer = 1 + + // Maximum number of items that will be contained in the returned page. + in out Size Integer = 100 + + // Search criteria. + // + // The syntax of this parameter is similar to the syntax of the _where_ clause of a + // SQL statement, but using the names of the attributes of the cluster instead of + // the names of the columns of a table. For example, in order to retrieve all the + // clusters with a name starting with `my` in the `us-east-1` region the value + // should be: + // + // ```sql + // name like 'my%' and region.id = 'us-east-1' + // ``` + // + // If the parameter isn't provided, or if the value is empty, then all the + // clusters that the user has permission to see will be returned. + in Search String + + // Order criteria. + // + // The syntax of this parameter is similar to the syntax of the _order by_ clause of + // a SQL statement, but using the names of the attributes of the cluster instead of + // the names of the columns of a table. For example, in order to sort the clusters + // descending by region identifier the value should be: + // + // ```sql + // region.id desc + // ``` + // + // If the parameter isn't provided, or if the value is empty, then the order of the + // results is undefined. + in Order String + + // Total number of items of the collection that match the search criteria, + // regardless of the size of the page. + out Total Integer + + // Retrieved list of clusters. + out Items []Cluster + } + + // Provision a new cluster and add it to the collection of clusters. + // + // See the `register_cluster` method for adding an existing cluster. + method Add { + // Description of the cluster. + in out Body Cluster + } + + // Returns a reference to the service that manages an specific cluster. + locator Cluster { + target Cluster + variable ID + } +} \ No newline at end of file diff --git a/model/aro_hcp/v1_alpha1/product_type.model b/model/aro_hcp/v1_alpha1/product_type.model new file mode 100644 index 00000000..c7eb26f5 --- /dev/null +++ b/model/aro_hcp/v1_alpha1/product_type.model @@ -0,0 +1,19 @@ +/* +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. +*/ + +@ref(path = "/clusters_mgmt/v1/product") +class Product { +} \ No newline at end of file diff --git a/model/aro_hcp/v1_alpha1/root_resource.model b/model/aro_hcp/v1_alpha1/root_resource.model new file mode 100644 index 00000000..4b3f7243 --- /dev/null +++ b/model/aro_hcp/v1_alpha1/root_resource.model @@ -0,0 +1,22 @@ +/* +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. +*/ + +// Root of the tree of resources of the aro_hcp service. +resource Root { + locator Clusters { + target Clusters + } +}