# RedHatOpenShift HCP Clusters

> see https://aka.ms/autorest


## This is the autorest configuration file for RedHatOpenShift HCP Clusters.

The service is hosted under Microsoft.RedHatOpenShift namespace but HCP is exposed
as a separarate set of resources, APIs and SDKs.

## Getting Started

To build the SDK for ContainerServices, [install Autorest](https://aka.ms/autorest/install). Then
in this folder, run this command:

> `autorest`

To see additional help and options, run:

> `autorest --help`

---

## Configuration

### Basic Information

These are the global settings for the ContainerServices API.

``` yaml
openapi-type: arm
tag: package-2026-09-01-preview
```

### Tag: package-2026-09-01-preview

These settings apply only when `--tag=package-2026-09-01-preview` is specified on the command line.

``` yaml $(tag) == 'package-2026-09-01-preview'
input-file:
  - preview/2026-09-01-preview/openapi.json
```

### Tag: package-2026-06-30-preview

These settings apply only when `--tag=package-2026-06-30-preview` is specified on the command line.

``` yaml $(tag) == 'package-2026-06-30-preview'
input-file:
  - preview/2026-06-30-preview/openapi.json
```

### Tag: package-2025-12-23-preview

These settings apply only when `--tag=package-2025-12-23-preview` is specified on the command line.

``` yaml $(tag) == 'package-2025-12-23-preview'
input-file:
  - preview/2025-12-23-preview/openapi.json
```

### Tag: package-2024-06-10-preview

These settings apply only when `--tag=package-2024-06-10-preview` is specified on the command line.

``` yaml $(tag) == 'package-2024-06-10-preview'
input-file:
  - preview/2024-06-10-preview/openapi.json
```

# Code Generation

## Swagger to SDK

This section describes what SDK should be generated by the automatic system.
This is not used by Autorest itself.

``` yaml $(swagger-to-sdk)
swagger-to-sdk:
  - repo: azure-sdk-for-python
  - repo: azure-sdk-for-go
  - repo: azure-resource-manager-schemas
  - repo: azure-powershell
```

<!-- ## Suppression -->

<!-- ### AutoRest v3 Suppressions -->
``` yaml
suppressions:
  - code: AvoidAdditionalProperties
    from: openapi.json
    where: $.definitions.UserAssignedIdentitiesProfile.properties.controlPlaneOperators
    reason: This is a Record<UserAssignedIdentityResourceId> where the string keys are control plane operator names. The intention is to pair a control plane operator with a user-assigned managed identity resource ID. The set of valid control plane operator names varies by OpenShift version, and will be discoverable through a forthcoming proxy resource that models a supported OpenShift version.
  - code: AvoidAdditionalProperties
    from: openapi.json
    where: $.definitions.UserAssignedIdentitiesProfileUpdate.properties.controlPlaneOperators
    reason: This is a Record<UserAssignedIdentityResourceId> where the string keys are control plane operator names. The intention is to pair a control plane operator with a user-assigned managed identity resource ID. The set of valid control plane operator names varies by OpenShift version, and will be discoverable through a forthcoming proxy resource that models a supported OpenShift version.
  - code: AvoidAdditionalProperties
    from: openapi.json
    where: $.definitions.UserAssignedIdentitiesProfile.properties.dataPlaneOperators
    reason: This is a Record<UserAssignedIdentityResourceId> where the string keys are data plane operator names. The intention is to pair a data plane operator with a user-assigned managed identity resource ID. The set of valid data plane operator names varies by OpenShift version, and will be discoverable through a forthcoming proxy resource that models a supported OpenShift version.
  - code: AvoidAdditionalProperties
    from: openapi.json
    where: $.definitions.UserAssignedIdentitiesProfileUpdate.properties.dataPlaneOperators
    reason: This is a Record<UserAssignedIdentityResourceId> where the string keys are data plane operator names. The intention is to pair a data plane operator with a user-assigned managed identity resource ID. The set of valid data plane operator names varies by OpenShift version, and will be discoverable through a forthcoming proxy resource that models a supported OpenShift version.
  - code: EnumInsteadOfBoolean
    from: openapi.json
    where: $.definitions.NodePoolProperties.properties.autoRepair
    reason: Evaluated and decided to stay with a boolean.
  - code: EnumInsteadOfBoolean
    from: openapi.json
    where: $.definitions.NodePoolPlatformProfile.properties.enableEncryptionAtHost
    reason: Evaluated and decided to stay with a boolean.
  - code: EnumInsteadOfBoolean
    from: openapi.json
    where: $.definitions.HcpOpenShiftVersionProperties.properties.enabled
    reason: Evaluated and decided to stay with a boolean.
  - code: PostResponseCodes
    from: openapi.json
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters/{hcpOpenShiftClusterName}/revokeCredentials"].post
    reason: False positive from validator on ArmResourceActionNoResponseContentAsync pattern. See https://github.com/Azure/azure-openapi-validator/issues/809
  - code: PreviewVersionOverOneYear
    from: openapi.json
    reason: API version will be deprecated when 2025-12-23-preview is deployed to Azure regions.
```


## Go

See configuration in [readme.go.md](./readme.go.md)

## Python

See configuration in [readme.python.md](./readme.python.md)
