{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "description": "Use these REST APIs for performing operations on Group entity in your Azure API Management deployment. Groups are used to manage the visibility of products to developers. Each API Management service instance comes with the following immutable system groups whose membership is automatically managed by API Management.  - **Administrators** - Azure subscription administrators are members of this group. - **Developers** - Authenticated developer portal users fall into this group. - **Guests** - Unauthenticated developer portal users are placed into this group. In addition to these system groups, administrators can create custom groups or [leverage external groups in associated Azure Active Directory tenants](https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-aad#how-to-add-an-external-azure-active-directory-group). Custom and external groups can be used alongside system groups in giving developers visibility and access to API products. For example, you could create one custom group for developers affiliated with a specific partner organization and allow them access to the APIs from a product containing relevant APIs only. A user can be a member of more than one group.",
    "title": "ApiManagementClient",
    "version": "2016-10-10",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2016-10-10/apimgroups.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "apimanagement-apimgroups",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow.",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      },
      "type": "oauth2"
    }
  },
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "parameters": {
    "GroupIdParameter": {
      "description": "Group identifier. Must be unique in the current API Management service instance.",
      "in": "path",
      "maxLength": 256,
      "minLength": 1,
      "name": "groupId",
      "pattern": "^[^*#&+:<>?]+$",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups": {
      "get": {
        "description": "Lists a collection of groups defined within a service instance.",
        "externalDocs": {
          "url": "https://msdn.microsoft.com/en-us/library/azure/dn776329.aspx"
        },
        "operationId": "Groups_ListByService",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "| Field       | Supported operators    | Supported functions                         |\n|-------------|------------------------|---------------------------------------------|\n| id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| description | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| type        | eq, ne                 | N/A                                         |",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of records to return.",
            "format": "int32",
            "in": "query",
            "minimum": 1,
            "name": "$top",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Number of records to skip.",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "$skip",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Lists a collection of Group entities.",
            "schema": {
              "$ref": "#/definitions/GroupCollection"
            }
          }
        },
        "tags": [
          "Groups"
        ],
        "x-ms-odata": "#/definitions/GroupContract",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}": {
      "delete": {
        "description": "Deletes specific group of the API Management service instance.",
        "operationId": "Groups_Delete",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/GroupIdParameter"
          },
          {
            "description": "ETag of the Group Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.",
            "in": "header",
            "name": "If-Match",
            "required": true,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The group was successfully deleted."
          },
          "405": {
            "description": "The specified group cannot be updated because it is a built-in group.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "Groups"
        ]
      },
      "get": {
        "description": "Gets the details of the group specified by its identifier.",
        "operationId": "Groups_Get",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/GroupIdParameter"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The response body contains the specified Group entity.",
            "headers": {
              "ETag": {
                "description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/GroupContract"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "Groups"
        ]
      },
      "patch": {
        "description": "Updates the details of the group specified by its identifier.",
        "operationId": "Groups_Update",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/GroupIdParameter"
          },
          {
            "description": "Update parameters.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GroupUpdateParameters"
            }
          },
          {
            "description": "ETag of the Group Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.",
            "in": "header",
            "name": "If-Match",
            "required": true,
            "type": "string"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The group details were successfully updated."
          },
          "405": {
            "description": "The specified group cannot be updated because it is a built-in group.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "Groups"
        ]
      },
      "put": {
        "description": "Creates or Updates a group.",
        "operationId": "Groups_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/GroupIdParameter"
          },
          {
            "description": "Create parameters.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GroupCreateParameters"
            }
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "201": {
            "description": "Group was created successfully."
          },
          "204": {
            "description": "Group already exists."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "Groups"
        ]
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}/users": {
      "get": {
        "description": "Lists a collection of the members of the group, specified by its identifier.",
        "operationId": "GroupUsers_ListByGroups",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/GroupIdParameter"
          },
          {
            "description": "| Field            | Supported operators    | Supported functions               |\n|------------------|------------------------|-----------------------------------|\n| id               | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| firstName        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| lastName         | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| email            | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |\n| state            | eq                     | N/A                               |\n| registrationDate | ge, le, eq, ne, gt, lt | N/A                               |\n| note             | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Number of records to return.",
            "format": "int32",
            "in": "query",
            "minimum": 1,
            "name": "$top",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Number of records to skip.",
            "format": "int32",
            "in": "query",
            "minimum": 0,
            "name": "$skip",
            "required": false,
            "type": "integer",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Lists a collection of user entities associated with the group.",
            "schema": {
              "description": "Paged Users list representation.",
              "properties": {
                "count": {
                  "description": "Total record count number across all pages.",
                  "format": "int64",
                  "type": "integer"
                },
                "nextLink": {
                  "description": "Next page link if any.",
                  "type": "string"
                },
                "value": {
                  "description": "Page values.",
                  "items": {
                    "description": "User profile.",
                    "properties": {
                      "email": {
                        "description": "Email address.",
                        "type": "string"
                      },
                      "firstName": {
                        "description": "First name.",
                        "type": "string"
                      },
                      "id": {
                        "description": "User identifier path.",
                        "type": "string"
                      },
                      "identities": {
                        "description": "Collection of user identities.",
                        "items": {
                          "description": "User identity details.",
                          "properties": {
                            "id": {
                              "description": "Identifier value within provider.",
                              "type": "string"
                            },
                            "provider": {
                              "description": "Identity provider name.",
                              "type": "string"
                            }
                          }
                        },
                        "readOnly": true,
                        "type": "array"
                      },
                      "lastName": {
                        "description": "Last name.",
                        "type": "string"
                      },
                      "note": {
                        "description": "Administrator's note about given user.",
                        "type": "string"
                      },
                      "registrationDate": {
                        "description": "Date of user registration. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n",
                        "format": "date-time",
                        "type": "string"
                      },
                      "state": {
                        "description": "User state.",
                        "enum": [
                          "Active",
                          "Blocked"
                        ],
                        "type": "string",
                        "x-ms-enum": {
                          "modelAsString": false,
                          "name": "UserStateContract"
                        }
                      }
                    }
                  },
                  "type": "array"
                }
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "GroupUsers"
        ],
        "x-ms-odata": "./apimusers.json#/definitions/UserContract",
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}/users/{uid}": {
      "delete": {
        "description": "Remove existing user from existing group.",
        "operationId": "GroupUsers_Delete",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/GroupIdParameter"
          },
          {
            "description": "User identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "uid",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The user was successfully removed from the group."
          },
          "405": {
            "description": "Attempt was made to delete a user from a built-in group. Built-in group membership is managed by the API Management service.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "GroupUsers"
        ]
      },
      "put": {
        "description": "Adds a user to the specified group.",
        "operationId": "GroupUsers_Create",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "The name of the API Management service.",
            "in": "path",
            "maxLength": 50,
            "minLength": 1,
            "name": "serviceName",
            "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "$ref": "#/parameters/GroupIdParameter"
          },
          {
            "description": "User identifier. Must be unique in the current API Management service instance.",
            "in": "path",
            "maxLength": 256,
            "minLength": 1,
            "name": "uid",
            "pattern": "^[^*#&+:<>?]+$",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Version of the API to be used with the client request.",
            "in": "query",
            "name": "api-version",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
            "in": "path",
            "name": "subscriptionId",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "201": {
            "description": "The user was successfully added to the group."
          },
          "204": {
            "description": "The specified user is already a member of the specified group."
          },
          "405": {
            "description": "Attempt was made to add a user to a built-in group. Built-in group membership is managed by the system.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "description": "Error Body contract.",
              "properties": {
                "code": {
                  "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.",
                  "type": "string"
                },
                "details": {
                  "description": "The list of invalid fields send in request, in case of validation error.",
                  "items": {
                    "description": "Error Field contract.",
                    "properties": {
                      "code": {
                        "description": "Property level error code.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Human-readable representation of property-level error.",
                        "type": "string"
                      },
                      "target": {
                        "description": "Property name.",
                        "type": "string"
                      }
                    }
                  },
                  "type": "array"
                },
                "message": {
                  "description": "Human-readable representation of the error.",
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "GroupUsers"
        ]
      }
    }
  },
  "definitions": {
    "GroupCollection": {
      "description": "Paged Group list representation.",
      "properties": {
        "count": {
          "description": "Total record count number across all pages.",
          "format": "int64",
          "type": "integer"
        },
        "nextLink": {
          "description": "Next page link if any.",
          "type": "string"
        },
        "value": {
          "description": "Page values.",
          "items": {
            "$ref": "#/definitions/GroupContract"
          },
          "type": "array"
        }
      }
    },
    "GroupContract": {
      "description": "Developer group.",
      "properties": {
        "builtIn": {
          "description": "true if the group is one of the three system groups (Administrators, Developers, or Guests); otherwise false.",
          "readOnly": true,
          "type": "boolean"
        },
        "description": {
          "description": "Group description. Can contain HTML formatting tags.",
          "maxLength": 1000,
          "type": "string"
        },
        "externalId": {
          "description": "For external groups, this property contains the id of the group from the external identity provider, e.g. for Azure Active Directory aad://<tenant>.onmicrosoft.com/groups/<group object id>; otherwise the value is null.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "description": "Uniquely identifies the group within the current API Management service instance. The value is a valid relative URL in the format of /groups/{groupId} where {groupId} is a group identifier.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Group name.",
          "maxLength": 300,
          "minLength": 1,
          "type": "string"
        },
        "type": {
          "description": "Group type.",
          "enum": [
            "Custom",
            "System",
            "External"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "GroupTypeContract"
          }
        }
      },
      "required": [
        "name"
      ]
    },
    "GroupCreateParameters": {
      "description": "Parameters supplied to the Create Group operation.",
      "properties": {
        "description": {
          "description": "Group description.",
          "type": "string"
        },
        "externalId": {
          "description": "Identifier of the external groups, this property contains the id of the group from the external identity provider, e.g. for Azure Active Directory aad://<tenant>.onmicrosoft.com/groups/<group object id>; otherwise the value is null.",
          "type": "string"
        },
        "name": {
          "description": "Group name.",
          "maxLength": 300,
          "minLength": 1,
          "type": "string"
        },
        "type": {
          "description": "Group type.",
          "enum": [
            "Custom",
            "System",
            "External"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "GroupTypeContract"
          }
        }
      },
      "required": [
        "name"
      ]
    },
    "GroupUpdateParameters": {
      "description": "Parameters supplied to the Update Group operation.",
      "properties": {
        "description": {
          "description": "Group description.",
          "type": "string"
        },
        "externalId": {
          "description": "Identifier of the external groups, this property contains the id of the group from the external identity provider, e.g. for Azure Active Directory aad://<tenant>.onmicrosoft.com/groups/<group object id>; otherwise the value is null.",
          "type": "string"
        },
        "name": {
          "description": "Group name.",
          "maxLength": 300,
          "minLength": 1,
          "type": "string"
        },
        "type": {
          "description": "Group type.",
          "enum": [
            "Custom",
            "System",
            "External"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "GroupTypeContract"
          }
        }
      }
    }
  }
}