diff --git a/swagger.yaml b/swagger.yaml new file mode 100644 index 000000000..a5f83f15d --- /dev/null +++ b/swagger.yaml @@ -0,0 +1,1978 @@ +openapi: 3.0.0 +info: + title: Remote Provisioning (RPS) API + contact: {} + version: 2.22.0 + description: | + Open AMT Cloud Toolkit supports RPS API methods for domains, CIRA configuration, wireless, profiles, and version information. + + For direct connection to RPS: + * RPS Format of URI: `{{protocol}}://{{host}}:{{port}}/api/v1/admin/{{RPS API}}` + + * Example URI for Domains: [https://example.site.com:8081/api/v1/admin/domains]() + + + When running behind the Kong API proxy, prepend the following prefixes to the URI: + + Kong prefixes: + * `/rps` for all routes + + For connection through Kong: + + * RPS Format of URI: `{{protocol}}://{{host}}/rps/api/v1/admin/{{RPS API}}` + + * Example URI for Authorize: [https://example.site.com/rps/api/v1/admin/domains]() + +servers: + # Added by API Auto Mocking Plugin + - description: SwaggerHub API Auto Mocking + url: https://virtserver.swaggerhub.com/rbheopenamt/rps/2.8.0 + - url: http://example.com:8081 + variables: {} +security: + - BearerAuth: [] +paths: + /api/v1/admin/ciraconfigs: + get: + tags: + - CIRA + summary: Get All CIRA Configs + operationId: GetAllCIRAConfigs + description: Retrieves all of the CIRA configuration profiles from the database. Will not return the password field to protect the privacy of this asset + parameters: + - in: query + name: $skip + schema: + type: integer + description: The number of items to skip before starting to collect the result set + - in: query + name: $top + schema: + type: integer + description: The numbers of items to return + - in: query + name: $count + schema: + type: boolean + description: The total number of CIRA configs + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/CIRAConfigResponse' + - $ref: '#/components/schemas/CountCIRAResponse' + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + post: + tags: + - CIRA + summary: Create CIRA Config + operationId: CreateCIRAConfig + description: | + Creates a new CIRA configuration profile. + + The password is stored in a secrets manager and is only used during configuration to set the MPS credentials in the AMT device. + requestBody: + description: | + **serverAddressFormat** valid values: + * 3 = IPv4 address + * 201 = FQDN + + **authMethod** should stay as '2'. 2 is Username/Password Authentication and is how the MPS and AMT device will authenticate to communicate. + + **mpsRootCertificate** can be gotten by calling the MPS API endpoint `/api/v1/ciracert`. + content: + application/json: + schema: + $ref: '#/components/schemas/CIRAConfigPOST' + required: true + responses: + 201: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/CIRAConfigResponse' + 400: + description: 'bad request' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + patch: + tags: + - CIRA + summary: Edit CIRA Config + operationId: EditCIRAConfig + description: | + Edits an existing CIRA configuration profile. + + The configName can not be changed. + + Version must be provided to ensure the correct profile is edited. + + The password is stored in a secrets manager and is only used during configuration to set the MPS credentials in the AMT device. + requestBody: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/CIRAConfigPATCH' + required: true + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/CIRAConfigResponse' + 400: + description: 'bad request' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + /api/v1/admin/ciraconfigs/{configName}: + get: + tags: + - CIRA + summary: Get CIRA Config + operationId: GetCIRAConfig + description: Retrieves the specific CIRA configuration profile from the database. Will not return the password field to protect the privacy of this asset. + parameters: + - name: configName + in: path + description: Name of CIRA config to return + required: true + schema: + type: string + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/CIRAConfigResponse' + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + delete: + tags: + - CIRA + summary: Remove CIRA Config + operationId: RemoveCIRAConfig + description: Removes the specific CIRA configuration profile from the database. + parameters: + - name: configName + in: path + description: Name of CIRA config to remove + required: true + schema: + type: string + responses: + 204: + description: 'successful operation' + headers: {} + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + /api/v1/admin/domains: + get: + tags: + - Domains + summary: Get All Domains + operationId: GetAllDomains + description: Retrieves all of the domain configuration profiles stored in the database. Will not return the provisioning certificate or certificate password to protect the privacy of these assets. + parameters: + - in: query + name: $skip + schema: + type: integer + description: The number of items to skip before starting to collect the result set + - in: query + name: $top + schema: + type: integer + description: The numbers of items to return + - in: query + name: $count + schema: + type: boolean + description: The total number of domains + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/DomainResponse' + - $ref: '#/components/schemas/CountDomainResponse' + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + post: + tags: + - Domains + summary: Create Domain + operationId: CreateDomain + description: Creates a new domain configuration profile to the database. The provisioning certificate and certificate password are stored in a secrets manager and are only used when required during activation. + requestBody: + description: | + **provisioningCert** must be a base64 string of the Personal Information Exchange (PFX) certificate that includes the entire certificate chain and private key. + content: + application/json: + schema: + $ref: '#/components/schemas/DomainPOST' + required: true + responses: + 201: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/DomainResponse' + 400: + description: 'bad request' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + patch: + tags: + - Domains + summary: Update Domain Suffix + operationId: UpdateDomainSuffix + description: | + Edits an existing domain configuration profile. + + The profileName field can not be changed. + + Version must be provided to ensure the correct profile is edited. + + The provisioning certificate and certificate password are stored in a secrets manager and are only used when required during activation. Provisioning certificate must be a base64 string of the Personal Information Exchange (PFX) certificate that includes the entire certificate chain and private key. + requestBody: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DomainPATCH' + required: true + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/DomainResponse' + 400: + description: 'bad request' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + /api/v1/admin/domains/{profileName}: + get: + tags: + - Domains + summary: Get Domain + operationId: GetDomain + description: Retrieves the specific domain configuration profile. + parameters: + - name: profileName + in: path + description: Name of domain profile to return + required: true + schema: + type: string + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/DomainResponse' + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + + deprecated: false + delete: + tags: + - Domains + summary: Remove Domain + operationId: RemoveDomain + description: Removes the specific domain configuration profile + parameters: + - name: profileName + in: path + description: Name of domain profile to remove + required: true + schema: + type: string + responses: + 204: + description: 'successful operation' + headers: {} + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + /api/v1/admin/profiles: + get: + tags: + - Profiles + summary: Get All Profiles + operationId: GetAllProfiles + description: Retrieves all of the AMT configuration profiles from the database. Will not return the amtPassword or mebxPassword fields to protect the privacy of these assets. + parameters: + - in: query + name: $skip + schema: + type: integer + description: The number of items to skip before starting to collect the result set + - in: query + name: $top + schema: + type: integer + description: The numbers of items to return + - in: query + name: $count + schema: + type: boolean + description: The total number of profiles + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/ProfileResponse' + - $ref: '#/components/schemas/CountProfileResponse' + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + post: + tags: + - Profiles + summary: Create Profile + operationId: CreateProfile + description: | + Creates a new AMT configuration profile. The amtPassword and mebxPassword are stored in a secrets manager and are only used during activation and configuration, respectively, to set these credentials in the AMT device. + + **Warning:** Choosing CIRA or TLS is **highly recommended**. By choosing 'none', an unsecure and unsafe channel is used for communication between the AMT device and MPS and is vulnerable to attacks. To use neither, set both 'tlsMode' and 'ciraConfigName' to **null**. + requestBody: + description: | + **userConsent** valid values: + * None + * All (Mandatory for CCM activation.) + * KVM + content: + application/json: + schema: + $ref: '#/components/schemas/ProfilePOST' + required: true + responses: + 201: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProfileResponse' + 400: + description: 'bad request' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + patch: + tags: + - Profiles + summary: Update Profile + operationId: UpdateProfile + description: | + Edits an existing AMT configuration profile. + + The profileName can not be changed. + + **Version must be provided to ensure the correct profile is edited.** + + The amtPassword and mebxPassword are stored in a secrets manager and are only used during activation and configuration, respectively, to set these credentials in the AMT device. + + **Warning:** Choosing CIRA or TLS is **highly recommended**. By choosing 'none', an unsecure and unsafe channel is used for communication between the AMT device and MPS and is vulnerable to attacks. To use neither, set both 'tlsMode' and 'ciraConfigName' to **null**. + requestBody: + description: | + **userConsent** valid values: + * None + * All (Mandatory for CCM activation.) + * KVM + content: + application/json: + schema: + $ref: '#/components/schemas/ProfilePATCH' + required: true + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProfileResponse' + 400: + description: 'bad request' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + /api/v1/admin/profiles/{profileName}: + get: + tags: + - Profiles + summary: Get Profile + operationId: GetProfile + description: Retrieves the specific AMT configuration profile from the database. Will not return the amtPassword or mebxPassword fields to protect the privacy of these assets. + parameters: + - name: profileName + in: path + description: Name of profile to return + required: true + schema: + type: string + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProfileResponse' + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + delete: + tags: + - Profiles + summary: Remove Profile + operationId: RemoveProfile + description: Removes the specific AMT configuration profile from the database. + parameters: + - name: profileName + in: path + description: Name of profile to remove + required: true + schema: + type: string + responses: + 204: + description: 'successful operation' + headers: {} + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + /api/v1/admin/wirelessconfigs: + get: + tags: + - Wireless + summary: Get All Wireless Configs + operationId: GetAllWirelessConfigs + description: Retrieves all of the Wireless configuration profiles from the database. Will not return the password field to protect the privacy of this asset. + parameters: + - in: query + name: $skip + schema: + type: integer + description: The number of items to skip before starting to collect the result set + - in: query + name: $top + schema: + type: integer + description: The numbers of items to return + - in: query + name: $count + schema: + type: boolean + description: The total number of wireless configs + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/WirelessConfigResponse' + - $ref: '#/components/schemas/CountWirelessResponse' + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + post: + tags: + - Wireless + summary: Create Wireless Config + operationId: CreateWirelessConfig + description: Creates a new Wireless configuration profile. The PSK passphrase is stored in a secrets manager and is only used during configuration to set the Wi-Fi credentials in the AMT device. + requestBody: + description: | + **authenticationMethod** valid values: + * 4 = WPA PSK + * 5 = WPA_IEEE8021X + * 6 = WPA2 PSK + * 7 = WPA2_IEEE8021X + + **encryptionMethod** valid values: + * 3 = TKIP + * 4 = CCMP + content: + application/json: + schema: + $ref: '#/components/schemas/WirelessConfigPOST' + required: true + responses: + 201: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/WirelessConfigResponse' + 400: + description: 'bad request' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + patch: + tags: + - Wireless + summary: Edit Wireless Config + operationId: EditWirelessConfig + description: | + Edits an existing Wireless configuration profile. + + The profileName can not be changed. + + The password is stored in a secrets manager and is only used during configuration to set the Wi-Fi credentials in the AMT device. + + Version must be provided to ensure the correct profile is edited. + requestBody: + description: | + **authenticationMethod** valid values: + * 4 = WPA PSK + * 5 = WPA_IEEE8021X + * 6 = WPA2 PSK + * 7 = WPA2_IEEE8021X + + **encryptionMethod** valid values: + * 3 = TKIP + * 4 = CCMP + content: + application/json: + schema: + $ref: '#/components/schemas/WirelessConfigPATCH' + required: true + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/WirelessConfigResponse' + 400: + description: 'bad request' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + /api/v1/admin/wirelessconfigs/{profileName}: + get: + tags: + - Wireless + summary: Get Wireless Config + operationId: GetWirelessConfig + description: Retrieves the specific Wireless configuration profile from the database. Will not return the password field to protect the privacy of this asset. + parameters: + - name: profileName + in: path + description: Name of Wireless config to return + required: true + schema: + type: string + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/WirelessConfigResponse' + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + delete: + tags: + - Wireless + summary: Remove Wireless Config + operationId: RemoveWirelessConfig + description: Removes the specific Wireless configuration profile from the database. + parameters: + - name: profileName + in: path + description: Name of Wireless config to remove + required: true + schema: + type: string + responses: + 204: + description: 'successful operation' + headers: {} + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + /api/v1/admin/ieee8021xconfigs: + get: + tags: + - IEEE802.1x + summary: Get All IEEE802.1x Configs + operationId: GetAll8021xConfigs + description: Retrieves all of the IEEE802.1x configuration profiles from the database. + parameters: + - in: query + name: $skip + schema: + type: integer + description: The number of items to skip before starting to collect the result set + - in: query + name: $top + schema: + type: integer + description: The numbers of items to return + - in: query + name: $count + schema: + type: boolean + description: The total number of ieee8021xconfigs + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + oneOf: + - type: array + items: + $ref: '#/components/schemas/IEEE8021xConfigResponse' + - $ref: '#/components/schemas/CountIEEE8021xResponse' + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + post: + tags: + - IEEE802.1x + summary: Create IEEE802.1x Config + operationId: Create8021xConfig + description: Creates a new IEEE802.1x configuration profile. + requestBody: + description: | + Wired **authenticationProtocol** valid values: + * **0 = EAP-TLS**
Indicates that the desired EAP type is the Transport Layer Security EAP type specified in RFC 2716. + * **2 = PEAPv0/EAP-MSCHAPv2**
Indicates that the desired EAP type is the Protected Extensible Authentication Protocol (PEAP) Version 0 EAP type specified in draft-kamath-pppext-peapv0, with Microsoft PPP CHAP Extensions, Version 2 (MSCHAPv2) as the inner authentication method. + * **3 = PEAPv1/EAP-GTC**
Indicates that the desired EAP type is the Protected Extensible Authentication Protocol (PEAP) Version 1 EAP type specified in draft-josefsson-pppext-eap-tls-eap, with Generic Token Card (GTC) as the inner authentication method. + * **5 = EAP-FAST/GTC**
Indicates that the desired EAP type is the Flexible Authentication Extensible Authentication Protocol EAP type specified in IETF RFC 4851, with Generic Token Card (GTC) as the inner authentication method. + * **10 = EAP-FAST/TLS**
Indicates that the desired EAP type is the Flexible Authentication EAP type specified in IETF RFC 4851, with TLS as the inner authentication method. + + Wireless **authenticationProtocol** valid values: + * **0 = EAP-TLS**
Indicates that the desired EAP type is the Transport Layer Security EAP type specified in RFC 2716. + * **2 = PEAPv0/EAP-MSCHAPv2**
Indicates that the desired EAP type is the Protected Extensible Authentication Protocol (PEAP) Version 0 EAP type specified in draft-kamath-pppext-peapv0, with Microsoft PPP CHAP Extensions, Version 2 (MSCHAPv2) as the inner authentication method. + + **pxeTimeout is only valid for Wired 802.1x Configs.** This field is ignored for Wireless 802.1x Configs. + + **pxeTimeout** is the number of seconds in which the Intel(R) AMT will hold an authenticated 802.1X session. During the defined period, Intel(R) AMT manages the 802.1X negotiation while a PXE boot takes place. After the timeout, control of the negotiation passes to the host. + + **pxeTimeout** valid values: + * The maximum value is 86400 seconds (one day). + * A value of 0 disables the feature. + * If this optional value is omitted, Intel(R) AMT sets a default value of 120 seconds. + content: + application/json: + schema: + $ref: '#/components/schemas/IEEE8021xConfigPOST' + required: true + responses: + 201: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/IEEE8021xConfigResponse' + 400: + description: 'bad request' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + patch: + tags: + - IEEE802.1x + summary: Edit IEEE802.1x Config + operationId: Edit8021xConfig + description: | + Edits an existing IEEE802.1x configuration profile. + + The profileName can not be changed. + + Version must be provided to ensure the correct profile is edited. + requestBody: + description: | + Wired **authenticationProtocol** valid values: + * **0 = EAP-TLS**
Indicates that the desired EAP type is the Transport Layer Security EAP type specified in RFC 2716. + * **2 = PEAPv0/EAP-MSCHAPv2**
Indicates that the desired EAP type is the Protected Extensible Authentication Protocol (PEAP) Version 0 EAP type specified in draft-kamath-pppext-peapv0, with Microsoft PPP CHAP Extensions, Version 2 (MSCHAPv2) as the inner authentication method. + * **3 = PEAPv1/EAP-GTC**
Indicates that the desired EAP type is the Protected Extensible Authentication Protocol (PEAP) Version 1 EAP type specified in draft-josefsson-pppext-eap-tls-eap, with Generic Token Card (GTC) as the inner authentication method. + * **5 = EAP-FAST/GTC**
Indicates that the desired EAP type is the Flexible Authentication Extensible Authentication Protocol EAP type specified in IETF RFC 4851, with Generic Token Card (GTC) as the inner authentication method. + * **10 = EAP-FAST/TLS**
Indicates that the desired EAP type is the Flexible Authentication EAP type specified in IETF RFC 4851, with TLS as the inner authentication method. + + Wireless **authenticationProtocol** valid values: + * **0 = EAP-TLS**
Indicates that the desired EAP type is the Transport Layer Security EAP type specified in RFC 2716. + * **2 = PEAPv0/EAP-MSCHAPv2**
Indicates that the desired EAP type is the Protected Extensible Authentication Protocol (PEAP) Version 0 EAP type specified in draft-kamath-pppext-peapv0, with Microsoft PPP CHAP Extensions, Version 2 (MSCHAPv2) as the inner authentication method. + + **pxeTimeout is only valid for Wired 802.1x Configs.** The field is ignored for Wireless 802.1x Configs. + + **pxeTimeout** is the number of seconds in which the Intel(R) AMT will hold an authenticated 802.1X session. During the defined period, Intel(R) AMT manages the 802.1X negotiation while a PXE boot takes place. After the timeout, control of the negotiation passes to the host. + + **pxeTimeout** valid values: + * The maximum value is 86400 seconds (one day). + * A value of 0 disables the feature. + * If this optional value is omitted, Intel(R) AMT sets a default value of 120 seconds. + content: + application/json: + schema: + $ref: '#/components/schemas/IEEE8021xConfigPATCH' + required: true + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/IEEE8021xConfigResponse' + 400: + description: 'bad request' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + /api/v1/admin/ieee8021xconfigs/{profileName}: + get: + tags: + - IEEE802.1x + summary: Get IEEE802.1x Config + operationId: Get8021xConfig + description: Retrieves the specific IEEE802.1x configuration profile from the database. + parameters: + - name: profileName + in: path + description: Name of IEEE802.1x config to return + required: true + schema: + type: string + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/IEEE8021xConfigResponse' + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + delete: + tags: + - IEEE802.1x + summary: Remove IEEE802.1x Config + operationId: Remove8021xConfig + description: Removes the specific IEEE802.1x configuration profile from the database. + parameters: + - name: profileName + in: path + description: Name of IEEE802.1x config profile to remove + required: true + schema: + type: string + responses: + 204: + description: 'successful operation' + headers: {} + 404: + description: 'not found' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + 500: + description: 'internal server error' + content: + application/json: + schema: + $ref: '#/components/schemas/APIResponse' + deprecated: false + /api/v1/admin/health: + get: + summary: Return Status of DB and Secret Store + description: Returns statuses for the database and secret store that RPS is attempting to connect to. + tags: + - Misc + responses: + 200: + description: 'Successful operation' + content: + application/json: + schema: + $ref: '#/components/schemas/HealthcheckResponse' + /api/v1/admin/version: + get: + tags: + - Misc + summary: Get Version + operationId: GetVersion + description: Returns the version of the service and the supported protocol version. The protocol version is used to check compatibility with RPC + responses: + 200: + description: 'successful operation' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/VersionResponse' + deprecated: false +components: + securitySchemes: + BearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + schemas: + CIRAConfigResponse: + title: CIRAConfigResponse + required: + - configName + - mpsServerAddress + - mpsPort + - username + - commonName + - serverAddressFormat + - authMethod + - mpsRootCertificate + - proxyDetails + type: object + properties: + configName: + type: string + mpsServerAddress: + type: string + mpsPort: + type: integer + format: int32 + username: + type: string + commonName: + type: string + serverAddressFormat: + type: integer + format: int32 + authMethod: + type: integer + format: int32 + mpsRootCertificate: + type: string + format: byte + proxyDetails: + type: string + tenantId: + type: string + version: + type: string + example: + configName: ciraconfig + mpsServerAddress: 192.168.8.50 + mpsPort: 4433 + username: mps + commonName: 192.168.8.50 + serverAddressFormat: 3 + authMethod: 2 + mpsRootCertificate: U3dhZ2dlciByb2Nrcw== + proxyDetails: '' + tenantId: '' + version: '2000' + CIRAConfigPOST: + title: CIRAConfigPOST + required: + - configName + - mpsServerAddress + - mpsPort + - username + - commonName + - serverAddressFormat + - authMethod + - mpsRootCertificate + - proxyDetails + type: object + properties: + configName: + type: string + mpsServerAddress: + type: string + mpsPort: + type: integer + format: int32 + username: + type: string + minLength: 5 + maxLength: 16 + password: + type: string + format: password + commonName: + type: string + serverAddressFormat: + type: integer + format: int32 + authMethod: + type: integer + format: int32 + mpsRootCertificate: + type: string + format: byte + proxyDetails: + type: string + example: + configName: ciraconfig + mpsServerAddress: 192.168.8.50 + mpsPort: 4433 + username: mpsuser + password: G@ppm0ym + commonName: 192.168.8.50 + serverAddressFormat: 3 + authMethod: 2 + mpsRootCertificate: MIIEOzCCAqOgAwIBAgIDAjVCMA0GCSqGSIb3DQEBDAUAMD0xFzAVBgNVBAMTDk1QU1Jvb3QtNmZhNMSDIWEdsqwe89dsNNJSOW2Db3duMRAwDgYDVQQGEwd1bmtub3duMCAXDTIyMDkwNTE4MTgwMloYDzIwNTMwOTA1MTgxODAyWjA9MRcwFQYDVQQDEw5NUFNSb290LTZmYTQ5NEQMA4GA1UEChMHdW5rbm93bjEQMA4GA1UEBhMHdW5rbm93bjCCAaIwDQYJKoZIhNMSDANdnSdsnmasSDWED8oCggGBAPiA+YEPjIlryv8PdJsfIwkqd/7wJriASiM3W5VePKtO5gXKCg3piuUAAIj8Lk36TK6Lvz5He818o1YMLposvTzZJHVPILye5aqp2Lgs079nESgoAt0/yxSMh53S8dzEf5CXBmlA5foEebVUKQoei/bqSkbIC3CvZ/NMIGHF0nUMoKeigzeJbADDQVIMCnqZoPq0pRLUTbCyogAaPQ+9N72XNPw3HYX7voH2EOJxHtZHH8LTJZXKc4ozt/JU9G0onfnSTCJAirbZSfY0bdxdaSEOJg4tGAFAseHikYP6hHGqjutUC7/WiT/3EBcQnO5OjckWDXVOiG6AmNsIqW2cfJnNjd0kOwbdyEC+Tmt3w9VR8491wFexfLodbbk5JUS99bBwf856y70zfmAiCSgQcIjU5Yra7eIkNtqBv1RG4tSBm0fD5YB/mArICoYF0zNWGrqqcbfuyARdEiNCjxIbSZt+l1onUfFWfjoBcE7AhL0EaZmUTbQKP9hl+1zffpa0wIDAQABo0IwQDAMBgNVHRMEBTADAQH/MBEGCWCGSAGG+EIBAQQEAwIABzAdBgNVHQ4EFgQUb6SWpSxsakc8AP/bm+gwt0qIsMEwDQYJKoZIhvcBHgfIJKLOpnmASfdHQaft0QROp4vl1J/hcAfPw0j+l3dMEpKbzJQhaRoRkIECpxhvaYgAUq7hA7MNNn4QV20BOiDfV8ZURFrEmnehP13I7jd7YDLxpfK17x5r6wlAYZ/pGb8u9lgexE14kERmmRZvuh7wxQy0rTcYKe9+jM5R8Ugv/8gWYdpp1gr8fGJJx/e2DfSs+ViXEOWwgWmidTwPgerwWR8AcvW8IXkylXO6+SlTXnv3cWcY3BEh9r0xXBa4lkFAse2+Zj/X9rudYGqOLYtIsef0Q5fOopHJ7JBXUbMQySAIdAbBb0X14rgEC2kwow1NCm0vzi8CAL/14D1csd0c1K8fRu//lQgj+gh7Tk4B7RMZOOwTMAUQj1LoYnjSDNJS87sAmkmNNJOS09PTi9RVW3nddcgMVSSa2wehS4ZpYkZOxLdgcV58dfW9wBKBWuqmnMGPjI5pjNCRK8foPePwuP1avckSdKsen5qT0tfthDV+2TrZuV07eKVrmTXq0GBNEIVQplV1yyA== + proxyDetails: '' + CIRAConfigPATCH: + title: CIRAConfigPATCH + required: + - configName + - mpsServerAddress + - mpsPort + - username + - commonName + - serverAddressFormat + - authMethod + - mpsRootCertificate + - proxyDetails + - regeneratePassword + - version + type: object + properties: + configName: + type: string + mpsServerAddress: + type: string + mpsPort: + type: integer + format: int32 + username: + type: string + minLength: 5 + maxLength: 16 + password: + type: string + format: password + commonName: + type: string + serverAddressFormat: + type: integer + format: int32 + authMethod: + type: integer + format: int32 + mpsRootCertificate: + type: string + format: byte + proxyDetails: + type: string + regeneratePassword: + type: boolean + version: + type: string + example: + configName: ciraconfig + mpsServerAddress: 192.168.8.50 + mpsPort: 4433 + username: mpsuser + password: G@ppm0ym + commonName: 192.168.8.50 + serverAddressFormat: 3 + authMethod: 2 + mpsRootCertificate: U3dhZ2dlciByb2Nrcw== + proxyDetails: '' + regeneratePassword: false + version: '3000' + DomainResponse: + title: DomainResponse + type: object + required: + - profileName + - domainSuffix + - provisioningCertStorageFormat + - tenantId + - version + - expirationDate + properties: + profileName: + type: string + domainSuffix: + type: string + provisioningCertStorageFormat: + type: string + tenantId: + type: string + version: + type: string + expirationDate: + type: string + format: date-time + example: + profileName: NewDomain + domainSuffix: NewDomain.com + provisioningCertStorageFormat: string + tenantId: '' + version: '2000' + expirationDate: 2024-12-31T23:59:00Z + DomainPOST: + title: DomainPOST + type: object + required: + - profileName + - domainSuffix + - provisioningCertStorageFormat + - provisioningCert + - provisioningCertPassword + properties: + profileName: + type: string + domainSuffix: + type: string + provisioningCertStorageFormat: + type: string + provisioningCert: + type: string + format: byte + provisioningCertPassword: + type: string + format: password + example: + profileName: NewDomain + domainSuffix: NewDomain.com + provisioningCertStorageFormat: string + provisioningCert: U3dhZ2dlciByb2Nrcw== + provisioningCertPassword: G@ppm0ym + DomainPATCH: + title: DomainPATCH + type: object + required: + - profileName + - domainSuffix + - provisioningCertStorageFormat + - provisioningCert + - provisioningCertPassword + - version + properties: + profileName: + type: string + domainSuffix: + type: string + provisioningCertStorageFormat: + type: string + provisioningCert: + type: string + format: byte + provisioningCertPassword: + type: string + format: password + version: + type: string + example: + profileName: NewDomain + domainSuffix: NewDomain.com + provisioningCertStorageFormat: string + provisioningCert: U3dhZ2dlciByb2Nrcw== + provisioningCertPassword: G@ppm0ym + version: '3000' + ProfileResponse: + title: ProfileResponse + required: + - profileName + - activation + - ciraConfigName + - generateRandomPassword + - generateRandomMEBxPassword + - tags + - dhcpEnabled + - tlsMode + - userConsent + - iderEnabled + - kvmEnabled + - solEnabled + - wifiConfigs + - tlsSigningAuthority + - ieee8021xProfile + type: object + properties: + profileName: + type: string + activation: + type: string + ciraConfigName: + type: string + generateRandomPassword: + type: boolean + generateRandomMEBxPassword: + type: boolean + tags: + type: array + items: + type: string + dhcpEnabled: + type: boolean + tlsMode: + type: number + description: Server Authentication Only(1), Server and Non-TLS Authentication (2), Mutual TLS only (3), Mutual and Non-TLS authentication (4) + userConsent: + type: string + description: User Consenst must be one of None, All, KVM. It must be 'All' in client control mode + iderEnabled: + type: boolean + kvmEnabled: + type: boolean + solEnabled: + type: boolean + version: + type: string + tenantId: + type: string + wifiConfigs: + type: array + items: + type: object + tlsSigningAuthority: + type: string + ieee8021xProfile: + type: string + ipSyncEnabled: + type: boolean + localWifiSyncEnabled: + type: boolean + example: + profileName: profile1 + activation: acmactivate + ciraConfigName: ciraconfig + generateRandomPassword: false + generateRandomMEBxPassword: false + tags: [tag1, tag2] + dhcpEnabled: true + tlsMode: null + userConsent: None + iderEnabled: false + kvmEnabled: true + solEnabled: true + tenantId: '' + version: '2000' + wifiConfigs: [{ priority: 1, profileName: 'home' }, { priority: 2, profileName: 'office' }] + tlsSigningAuthority: MicrosoftCA + ieee8021xProfile: wired8021xProfile + ipSyncEnabled: false + localWifiSyncEnabled: true + ProfilePOST: + title: ProfilePOST + required: + - profileName + - generateRandomPassword + - activation + - generateRandomMEBxPassword + - tags + - dhcpEnabled + - tlsSigningAuthority + type: object + properties: + profileName: + type: string + amtPassword: + type: string + format: password + generateRandomPassword: + type: boolean + activation: + type: string + ciraConfigName: + type: string + networkConfigName: + type: string + mebxPassword: + type: string + format: password + generateRandomMEBxPassword: + type: boolean + tags: + type: array + items: + type: string + dhcpEnabled: + type: boolean + wifiConfigs: + type: array + items: + type: object + tlsMode: + type: number + description: Server Authentication Only (1), Server and Non-TLS Authentication (2) + enum: + - 1 + - 2 + userConsent: + type: string + description: User Consent must be one of None, All, KVM. It should be 'All' in client control mode + enum: + - 'None' + - 'All' + - 'KVM' + iderEnabled: + type: boolean + kvmEnabled: + type: boolean + solEnabled: + type: boolean + tlsSigningAuthority: + type: string + ieee8021xProfile: + type: string + ipSyncEnabled: + type: boolean + localWifiSyncEnabled: + type: boolean + example: + profileName: profile1 + amtPassword: G@ppm0ym + generateRandomPassword: false + activation: acmactivate + ciraConfigName: ciraconfig + mebxPassword: G@ppm0ym + generateRandomMEBxPassword: false + tlsMode: null + tags: [tag1, tag2] + dhcpEnabled: true + wifiConfigs: [{ priority: 1, profileName: 'home' }, { priority: 2, profileName: 'office' }] + userConsent: None + iderEnabled: false + kvmEnabled: true + solEnabled: true + tlsSigningAuthority: MicrosoftCA + ieee8021xProfile: wired8021xProfile + ipSyncEnabled: false + localWifiSyncEnabled: true + ProfilePATCH: + title: ProfilePATCH + required: + - profileName + - generateRandomPassword + - activation + - ciraConfigName + - generateRandomMEBxPassword + - tags + - dhcpEnabled + - wifiConfigs + - tlsMode + - userConsent + - iderEnabled + - kvmEnabled + - solEnabled + - version + type: object + properties: + profileName: + type: string + amtPassword: + type: string + format: password + generateRandomPassword: + type: boolean + activation: + type: string + ciraConfigName: + type: string + mebxPassword: + type: string + format: password + generateRandomMEBxPassword: + type: boolean + tags: + type: array + items: + type: string + dhcpEnabled: + type: boolean + wifiConfigs: + type: array + items: + type: object + tlsMode: + type: number + description: Server Authentication Only (1), Server and Non-TLS Authentication (2) + enum: + - 1 + - 2 + userConsent: + type: string + description: User Consent must be one of None, All, KVM. It should be 'All' in client control mode + enum: + - 'None' + - 'All' + - 'KVM' + iderEnabled: + type: boolean + kvmEnabled: + type: boolean + solEnabled: + type: boolean + version: + type: string + tlsSigningAuthority: + type: string + ieee8021xProfile: + type: string + ipSyncEnabled: + type: boolean + localWifiSyncEnabled: + type: boolean + example: + profileName: profile1 + amtPassword: G@ppm0ym + generateRandomPassword: false + activation: acmactivate + ciraConfigName: ciraconfig + mebxPassword: G@ppm0ym + generateRandomMEBxPassword: false + tlsMode: null + tags: [tag1, tag2] + dhcpEnabled: true + wifiConfigs: [{ priority: 1, profileName: 'home' }, { priority: 2, profileName: 'office' }] + userConsent: None + iderEnabled: false + kvmEnabled: true + solEnabled: true + version: '3000' + tlsSigningAuthority: MicrosoftCA + ipSyncEnabled: false + localWifiSyncEnabled: true + WirelessConfigResponse: + title: WirelessConfigResponse + required: + - profileName + - authenticationMethod + - encryptionMethod + - ssid + - pskValue + - linkPolicy + type: object + properties: + profileName: + type: string + authenticationMethod: + type: integer + encryptionMethod: + type: integer + ssid: + type: string + pskValue: + type: string + linkPolicy: + type: array + items: + type: integer + total_count: + type: string + tenantId: + type: string + version: + type: string + ieee8021xProfile: + type: string + example: + profileName: homeWifiConfig + authenticationMethod: 4 + encryptionMethod: 4 + ssid: home + pskValue: 'null' + linkPolicy: [14, 16] + tenantId: '' + version: '2000' + ieee8021xProfile: wireless8021xconfig + WirelessConfigPOST: + title: WirelessConfigPOST + required: + - profileName + - authenticationMethod + - encryptionMethod + - ssid + - linkPolicy + type: object + properties: + profileName: + type: string + authenticationMethod: + type: integer + encryptionMethod: + type: integer + ssid: + type: string + pskPassphrase: + type: string + linkPolicy: + type: array + items: + type: integer + enum: + - 1 + - 14 + - 16 + - 224 + ieee8021xProfile: + type: string + example: + profileName: homeWifiConfig + authenticationMethod: 4 + encryptionMethod: 4 + ssid: home + pskPassphrase: P@ssw0rd + linkPolicy: [14, 16] + ieee8021xProfile: wireless8021xconfig + WirelessConfigPATCH: + title: WirelessConfigPATCH + required: + - profileName + - authenticationMethod + - encryptionMethod + - ssid + - linkPolicy + - version + type: object + properties: + profileName: + type: string + authenticationMethod: + type: integer + encryptionMethod: + type: integer + ssid: + type: string + pskPassphrase: + type: string + linkPolicy: + type: array + items: + type: integer + enum: + - 1 + - 14 + - 16 + - 224 + ieee8021xProfile: + type: string + version: + type: string + example: + profileName: homeWifiConfig + authenticationMethod: 4 + encryptionMethod: 4 + ssid: home + pskPassphrase: P@ssw0rd + linkPolicy: [14, 16] + version: '3000' + ieee8021xProfile: wireless8021xconfig + IEEE8021xConfigResponse: + title: IEEE8021xConfigResponse + required: + - profileName + - authenticationProtocol + - pxeTimeout + - wiredInterface + - tenantId + - version + type: object + properties: + profileName: + type: string + authenticationProtocol: + type: array + items: + type: integer + enum: + - 0 + - 2 + - 3 + - 5 + - 10 + pxeTimeout: + type: integer + wiredInterface: + type: boolean + tenantId: + type: string + version: + type: string + example: + profileName: wired8021xConfig + authenticationProtocol: 0 + pxeTimeout: 120 + wiredInterface: true + tenantId: '' + version: '3000' + IEEE8021xConfigPOST: + title: IEEE8021xConfigPOST + required: + - profileName + - authenticationProtocol + - wiredInterface + type: object + properties: + profileName: + type: string + authenticationProtocol: + type: array + items: + type: integer + enum: + - 0 + - 2 + - 3 + - 5 + - 10 + pxeTimeout: + type: integer + wiredInterface: + type: boolean + tenantId: + type: string + version: + type: string + example: + profileName: wired8021xConfig + authenticationProtocol: 0 + pxeTimeout: 120 + wiredInterface: true + tenantId: '' + IEEE8021xConfigPATCH: + title: IEEE8021xConfigPATCH + required: + - profileName + - authenticationProtocol + - wiredInterface + - version + type: object + properties: + profileName: + type: string + authenticationProtocol: + type: array + items: + type: integer + enum: + - 0 + - 2 + - 3 + - 5 + - 10 + pxeTimeout: + type: integer + wiredInterface: + type: boolean + tenantId: + type: string + version: + type: string + example: + profileName: wired8021xConfig + authenticationProtocol: 0 + pxeTimeout: 120 + wiredInterface: true + tenantId: '' + version: '5000' + CountCIRAResponse: + title: CountCIRAResponse + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/CIRAConfigResponse' + totalCount: + type: integer + CountDomainResponse: + title: CountDomainResponse + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/DomainResponse' + totalCount: + type: integer + CountProfileResponse: + title: CountProfileResponse + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/ProfileResponse' + totalCount: + type: integer + CountWirelessResponse: + title: CountWirelessResponse + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/WirelessConfigResponse' + totalCount: + type: integer + CountIEEE8021xResponse: + title: CountIEEE8021xResponse + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/IEEE8021xConfigResponse' + totalCount: + type: integer + APIResponse: + title: APIResponse + type: object + properties: + error: + type: string + message: + type: string + HealthcheckResponse: + title: HealthcheckResponse + example: + db: + name: 'POSTGRES' + status: 'OK' + secretStore: + name: 'VAULT' + status: + initialized: true + sealed: false + standby: false + performance_standby: false + replication_performance_mode: 'disabled' + replication_dr_mode: 'disabled' + server_time_utc: 1646337196 + version: '1.9.3' + cluster_name: 'vault-cluster-3dc0c596' + cluster_id: '469ada72-d74b-4d1e-6e77-476bf9902b72' + properties: + db: + type: object + properties: + name: + type: string + status: + type: string + secretStore: + type: object + properties: + name: + type: string + status: + type: object + properties: + initialized: + type: boolean + sealed: + type: boolean + standby: + type: boolean + performance_standby: + type: boolean + replication_performance_mode: + type: string + replication_dr_mode: + type: string + server_time_utc: + type: integer + version: + type: string + cluster_name: + type: string + cluster_id: + type: string + VersionResponse: + title: VersionResponse + required: + - serviceVersion + - protocolVersion + type: object + properties: + serviceVersion: + type: string + protocolVersion: + type: string + example: + serviceVersion: 2.9.0 + protocolVersion: 4.0.0 + +tags: + - name: CIRA + - name: Domains + - name: Profiles + - name: Wireless + - name: IEEE802.1x + - name: Misc + description: ''