{
  "openapi": "3.0.1",
  "info": {
    "title": "Member Groups",
    "version": "9.1.20.0",
    "description": "Create and administer member groups.",
    "x-introduced": "9.1.0.0"
  },
  "servers": [
    {
      "url": "https://{hostname}:{port}/rest/admin/v2",
      "variables": {
        "port": {
          "default": "443",
          "enum": [
            "443",
            "8000"
          ]
        },
        "hostname": {
          "default": "localhost",
          "enum": [
            "localhost",
            "test.hcl.com"
          ]
        }
      }
    }
  ],
  "tags": [
    {
      "name": "Member Groups",
      "description": "Provides RESTful services to manage member groups."
    }
  ],
  "paths": {
    "/member-groups": {
      "get": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Get member groups by store and usage.",
        "operationId": "getMemberGroups",
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "usage",
            "in": "query",
            "description": "The member group's usage. Available values:\n* GeneralPurpose - A general grouping of persons and/or organizations.\n* AccessControl - A group of persons specified as part of an access control policy.\n* CustomerTerritory - A group of customers, typically by territory.\n* CustomerServiceRepresentative - A group of customer service representatives, which in turn can have customer territory groups or customer accounts assigned to them.\n* RegisteredCustomer - A group of buyer organizations that have registered to a seller organization.\n* CustomerPrice - A group of customers that are entitled to get a contract's terms and conditions; often used to enforce custom pricing for the group. Customer price groups can comprise any user, who can be included and excluded explicitly.\n* CustomerSegment - A group of persons based on common attributes, for example demographics or purchase history. This group is used in marketing campaigns.\n* RFQResponseApproval - An organization that wants request for quote (RFQ) response approvals owns a member group of this usage. The group contains persons that are able to approve RFQ responses.\n* DisableInheritedRFQResponseApproval - An organization that does not want request for quote (RFQ) response approvals owns a member group of this usage.\n* OrderProcessApproval - An organization that wants order approvals owns a member group of this usage. The group contains persons that are able to approve orders.\n* DisableInheritedOrderProcessApproval - An organization that does not want order approvals owns a member group of this usage.\n* ContractSubmitApproval - An organization that wants contract approvals owns a member group of this usage. The group contains persons that are able to approve contracts.\n* DisableInheritedContractSubmitApproval - An organization that does not want contract approvals owns a member group of this usage.\n* UserRegistrationApproval - An organization that wants user registration approvals owns a member group of this usage. The group contains persons that are able to approve user registration requests.\n* DisableInheritedUserRegistrationApproval - An organization that does not want user registration approvals owns a member group of this usage.\n* ResellerRegistrationApproval - An organization that wants reseller registration approvals owns a member group of this usage. The group contains persons that are able to approve reseller registration requests.\n* DisableInheritedResellerRegistrationApproval - An organization that does not want reseller registration approvals owns a member group of this usage.\n",
            "required": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "searchString",
            "in": "query",
            "description": "The search string used to search for member groups.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ownerId",
            "in": "query",
            "description": "The parent organization id used to filter the member groups.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The comma-separated set of properties that control the order of the listed items. Properties can be prefixed by either (-) to sort in descending order, or (+) to sort in ascending order. By default, properties are sorted in ascending order. For example, sort=name,-type will order the items first based on the name value in ascending order, and then by their type value in descending order. |\nAvailable values:\n* +name\n* -name\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The position within the resulting dataset where the query begins returning item records. If the offset is \"5\", the records that returned begin with the sixth record that matches the query parameters. If the offset is \"0\", the records that are returned begin with the first record that matches the query parameters.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/get/recordSetStartNumber"
            },
            "x-entity-path": "dataArea/get/recordSetStartNumber"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of records to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/get/maxItems"
            },
            "x-entity-path": "dataArea/get/maxItems"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberGroupCollection"
                }
              }
            },
            "x-entity-path": "dataArea/memberGroup"
          }
        },
        "x-expression-builder-class": "com.ibm.commerce.rest.admin.v2.member.MemberGroupExpressionBuilder",
        "x-expression-builder-method": "formatExpression",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "getMemberGroup",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.GetMemberGroupType"
      },
      "post": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Create a member group.",
        "operationId": "createMemberGroup",
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberGroup"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The operation is successful.",
            "headers": {
              "Location": {
                "description": "The URI of the member group.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "links": {
              "GetMemberGroup": {
                "operationRef": "#/paths/~1member-groups~1{id}/get",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `GET /member-groups~1{id}`.\n"
              },
              "DeleteMemberGroup": {
                "operationRef": "#/paths/~1member-groups~1{id}/delete",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `DELETE /member-groups/{id}`.\n"
              },
              "UpdateMemberGroup": {
                "operationRef": "#/paths/~1member-groups~1{id}/patch",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `PATCH /member-groups/{id}`.\n"
              },
              "ActivateMemberGroup": {
                "operationRef": "#/paths/~1member-groups~1{id}~1activate/post",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `POST /member-groups/{id}/activate`.\n"
              },
              "CreateMemberGroupConditionElements": {
                "operationRef": "#/paths/~1member-groups~1{id}~1condition-elements/post",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `POST /member-groups/{id}/descriptions`.\n"
              },
              "CreateMemberGroupDescriptions": {
                "operationRef": "#/paths/~1/member-groups/{id}/descriptions/post",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `POST /member-groups/{id}/condition-elements`.\n"
              }
            },
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          }
        },
        "x-action-code": "Add",
        "x-expression-template": "/MemberGroup[1]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "processMemberGroup",
        "x-flow-class": "com.ibm.commerce.rest.bod.PostBodMappingFlow",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.ProcessMemberGroupType",
        "x-codegen-request-body-name": "body"
      }
    },
    "/member-groups/{id}": {
      "get": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Get a member group by unique identifier.",
        "operationId": "getMemberGroup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberGroup"
                }
              }
            },
            "x-entity-path": "dataArea/memberGroup[1]"
          }
        },
        "x-expression-template": "{_wcf.ap='IBM_Admin_Details'}/MemberGroup[MemberGroupIdentifier[(UniqueID='{id}')]]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "getMemberGroup",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.GetMemberGroupType"
      },
      "delete": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Delete a member group by unique identifier.",
        "operationId": "deleteMemberGroup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "responses": {
          "204": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Delete",
        "x-expression-template": "/MemberGroup[1]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "processMemberGroup",
        "x-flow-class": "com.ibm.commerce.rest.bod.DeleteBodMappingFlow",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.ProcessMemberGroupType"
      },
      "patch": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Update a member group by unique identifier.",
        "operationId": "updateMemberGroup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberGroup"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Change",
        "x-action-expressions": [
          {
            "x-action-code": "Change",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupDescription[1]",
            "x-expression-template": "/MemberGroup[1]/MemberGroupDescription[1]"
          }
        ],
        "x-expression-template": "/MemberGroup[1]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "changeMemberGroup",
        "x-flow-class": "com.ibm.commerce.rest.bod.PatchBodMappingFlow",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.ChangeMemberGroupType",
        "x-codegen-request-body-name": "body"
      }
    },
    "/member-groups/{id}/activate": {
      "post": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Activates a member group by assembling the information for the group that is within the member group condition element authoring database tables. The information is transformed and persisted to the runtime database tables for use in evaluating whether a user implicitly belongs to a member group.",
        "operationId": "activateMemberGroup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/externalIdentifier/storeIdentifier/uniqueID"
            },
            "x-context-data": "storeId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Activate",
        "x-expression-template": "/MemberGroup[1]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "processMemberGroup",
        "x-flow-class": "com.ibm.commerce.rest.bod.PostBodMappingFlow",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.ProcessMemberGroupType"
      }
    },
    "/member-groups/{id}/condition-elements": {
      "get": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Get the condition elements that are part of a member group.",
        "operationId": "getMemberGroupConditionElements",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-context-data": "uniqueId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-context-data": "uniqueId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberGroupConditionElementCollection"
                }
              }
            },
            "x-entity-path": "dataArea/memberGroup[1]/conditionElement"
          }
        },
        "x-expression-template": "{_wcf.ap='IBM_Admin_Details'}/MemberGroup[MemberGroupIdentifier[(UniqueID='{id}')]]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "getMemberGroup",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.GetMemberGroupType"
      },
      "post": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Create a condition element within a member group.",
        "operationId": "createMemberGroupConditionElement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-context-data": "uniqueId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-context-data": "uniqueId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberGroupConditionElement"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The operation is successful.",
            "headers": {
              "Location": {
                "description": "The URI of the member group condition element.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "x-entity-path": "dataArea/memberGroup[1]/conditionElement[1]/memberGroupConditionElementIdentifier/uniqueID",
            "links": {
              "GetMemberGroupConditionElements": {
                "operationRef": "#/paths/~1member-groups~1{id}~1condition-elements/get",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `GET /member-groups/{id}/condition-elements`.\n"
              },
              "DeleteMemberGroupConditionElement": {
                "operationRef": "#/paths/~1member-groups~1{id}~1condition-elements/delete",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `DELETE /member-groups/{id}/condition-elements`.\n"
              },
              "UpdateMemberGroupConditionElement": {
                "operationRef": "#/paths/~1member-groups~1{id}~1condition-elements/patch",
                "parameters": {
                  "id": "$response.header.Location"
                },
                "description": "The `id` value used in the request body can be used as the `id` parameter in `PATCH /member-groups/{id}/condition-elements`.\n"
              }
            }
          }
        },
        "x-action-code": "Add",
        "x-expression-template": "/MemberGroup[1]/ConditionElement[1]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "changeMemberGroup",
        "x-flow-class": "com.ibm.commerce.rest.bod.PostBodMappingFlow",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.ChangeMemberGroupType",
        "x-request-verb": "change",
        "x-response-verb": "respond",
        "x-codegen-request-body-name": "body"
      }
    },
    "/member-groups/{id}/condition-elements/{elementId}": {
      "delete": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Delete a condition element within a member group.",
        "operationId": "deleteMemberGroupConditionElement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-context-data": "uniqueId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-context-data": "uniqueId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "elementId",
            "in": "path",
            "description": "The unique numeric ID for identifying the condition element.",
            "required": true,
            "schema": {
              "type": "string",
              "x-entity-path": "dataArea/memberGroup[1]/conditionElement[1]/memberGroupConditionElementIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/memberGroup[1]/conditionElement[1]/memberGroupConditionElementIdentifier/uniqueID"
          }
        ],
        "responses": {
          "204": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Delete",
        "x-expression-template": "/MemberGroup[1]/ConditionElement[1]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "changeMemberGroup",
        "x-flow-class": "com.ibm.commerce.rest.bod.DeleteBodMappingFlow",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.ChangeMemberGroupType",
        "x-request-verb": "change",
        "x-response-verb": "respond"
      },
      "patch": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Update a condition element within a member group.",
        "operationId": "updateMemberGroupConditionElement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-context-data": "uniqueId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-context-data": "uniqueId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "elementId",
            "in": "path",
            "description": "The unique numeric ID for identifying the condition element.",
            "required": true,
            "schema": {
              "type": "string",
              "x-entity-path": "dataArea/memberGroup[1]/conditionElement[1]/memberGroupConditionElementIdentifier/uniqueID"
            },
            "x-entity-path": "dataArea/memberGroup[1]/conditionElement[1]/memberGroupConditionElementIdentifier/uniqueID"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberGroupConditionElement"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Change",
        "x-expression-template": "/MemberGroup[1]/ConditionElement[1]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "changeMemberGroup",
        "x-flow-class": "com.ibm.commerce.rest.bod.PatchBodMappingFlow",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.ChangeMemberGroupType",
        "x-codegen-request-body-name": "body"
      }
    },
    "/member-groups/{id}/descriptions": {
      "get": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Get the descriptions that are part of a member group.",
        "operationId": "getMemberGroupDescriptions",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-context-data": "uniqueId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-context-data": "uniqueId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "dataLanguageIds",
            "in": "query",
            "description": "The integer(s) for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center. Multiple identifiers should be specified as a comma-separated list.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberGroupDescriptionCollection"
                }
              }
            },
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupDescription"
          }
        },
        "x-expression-template": "{_wcf.ap='IBM_Admin_Details';_wcf.dataLanguageIds='{dataLanguageIds}'}/MemberGroup[MemberGroupIdentifier[(UniqueID='{id}')]]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "getMemberGroup",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.GetMemberGroupType"
      },
      "post": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Create a description within a member group.",
        "operationId": "createMemberGroupDescription",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-context-data": "uniqueId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-context-data": "uniqueId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberGroupDescription"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The operation is successful.",
            "headers": {
              "Location": {
                "description": "The URI of the member group condition element.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {},
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupDescription[1]/language"
          }
        },
        "x-action-code": "Add",
        "x-expression-template": "/MemberGroup[1]/MemberGroupDescription[1]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "changeMemberGroup",
        "x-flow-class": "com.ibm.commerce.rest.bod.PostBodMappingFlow",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.ChangeMemberGroupType",
        "x-request-verb": "change",
        "x-response-verb": "respond",
        "x-codegen-request-body-name": "body"
      }
    },
    "/member-groups/{id}/descriptions/{languageId}": {
      "get": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Get the descriptions that are part of a member group for a specific language.",
        "operationId": "getMemberGroupDescription",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-context-data": "uniqueId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-context-data": "uniqueId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "languageId",
            "in": "path",
            "description": "The integer for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberGroupDescription"
                }
              }
            },
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupDescription[1]"
          }
        },
        "x-expression-template": "{_wcf.ap='IBM_Admin_Details';_wcf.dataLanguageIds='{languageId}'}/MemberGroup[MemberGroupIdentifier[(UniqueID='{id}')]]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "getMemberGroup",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.GetMemberGroupType"
      },
      "delete": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Delete a description within a member group.",
        "operationId": "deleteMemberGroupDescription",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-context-data": "uniqueId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-context-data": "uniqueId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          },
          {
            "name": "languageId",
            "in": "path",
            "description": "The integer for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupDescription[1]/language"
            },
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupDescription[1]/language"
          }
        ],
        "responses": {
          "204": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Delete",
        "x-expression-template": "/MemberGroup[1]/MemberGroupDescription[1]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "changeMemberGroup",
        "x-flow-class": "com.ibm.commerce.rest.bod.DeleteBodMappingFlow",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.ChangeMemberGroupType",
        "x-request-verb": "change",
        "x-response-verb": "respond"
      },
      "patch": {
        "tags": [
          "Member Groups"
        ],
        "summary": "Update a description within a member group.",
        "operationId": "updateMemberGroupDescription",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique numeric ID for identifying the member group.",
            "required": true,
            "schema": {
              "type": "string",
              "x-context-data": "uniqueId",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
            },
            "x-context-data": "uniqueId",
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupIdentifier/uniqueID"
          },
          {
            "name": "languageId",
            "in": "path",
            "description": "The integer for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-entity-path": "dataArea/memberGroup[1]/memberGroupDescription[1]/language"
            },
            "x-entity-path": "dataArea/memberGroup[1]/memberGroupDescription[1]/language"
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The unique numeric ID for identifying the store.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-context-data": "storeId"
            },
            "x-context-data": "storeId"
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberGroupDescription"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation is successful.",
            "content": {}
          }
        },
        "x-action-code": "Change",
        "x-expression-template": "/MemberGroup[1]/MemberGroupDescription[1]",
        "x-facade-client-class": "com.ibm.commerce.member.facade.client.MemberFacadeClient",
        "x-facade-client-method": "changeMemberGroup",
        "x-flow-class": "com.ibm.commerce.rest.bod.PatchBodMappingFlow",
        "x-request-bod-class": "com.ibm.commerce.member.facade.datatypes.ChangeMemberGroupType",
        "x-codegen-request-body-name": "body"
      }
    }
  },
  "components": {
    "schemas": {
      "MemberGroup": {
        "type": "object",
        "required": [
          "id",
          "name",
          "storeId"
        ],
        "properties": {
          "allowExport": {
            "type": "boolean",
            "description": "Allow information about the users in the member group, for example their email addresses and names, to be exported to external applications using the \"Export customer segment\" feature."
          },
          "description": {
            "type": "string",
            "description": "The member group description.",
            "x-entity-path": "memberGroupDescription[1]/longDescription"
          },
          "exportAll": {
            "type": "boolean",
            "description": "When exporting a member group to external applications, if exportAll is true, then all customers in the member group are exported, including customers that have opted out from marketing communications. If exportAll is false, then only customers that have opted in to receive marketing communications will be exported."
          },
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the member group.",
            "readOnly": true,
            "x-entity-path": "memberGroupIdentifier/uniqueID"
          },
          "name": {
            "type": "string",
            "description": "The member group name.",
            "x-entity-path": "memberGroupIdentifier/externalIdentifier/name"
          },
          "ownerId": {
            "type": "string",
            "description": "Identifier of the organization that owns the member group. Can only be set when the member group is created.",
            "x-entity-path": "memberGroupIdentifier/externalIdentifier/ownerID"
          },
          "storeId": {
            "type": "integer",
            "description": "The unique numeric ID for identifying the store.",
            "format": "int32",
            "readOnly": true,
            "x-entity-path": "memberGroupIdentifier/externalIdentifier/storeIdentifier/uniqueID"
          },
          "updatedBy": {
            "type": "string",
            "description": "Individual who performed the most recent update to the member group.",
            "readOnly": true,
            "x-entity-path": "lastUpdatedBy"
          },
          "updatedDateTime": {
            "type": "string",
            "description": "Date and time of the most recent update to the member group.",
            "format": "date-time",
            "readOnly": true,
            "x-entity-path": "lastUpdate"
          },
          "usage": {
            "type": "string",
            "description": "Member group's usage. Can only be set when member group is created. If multiple usages are specified, only the first one will be applied. Available values:\n* GeneralPurpose - A general grouping of persons and/or organizations.\n* AccessControl - A group of persons specified as part of an access control policy.\n* CustomerTerritory - A group of customers, typically by territory.\n* CustomerServiceRepresentative - A group of customer service representatives, which in turn can have customer territory groups or customer accounts assigned to them.\n* RegisteredCustomer - A group of buyer organizations that have registered to a seller organization.\n* CustomerPrice - A group of customers that are entitled to get a contract's terms and conditions; often used to enforce custom pricing for the group. Customer price groups can comprise any user, who can be included and excluded explicitly.\n* CustomerSegment - A group of persons based on common attributes, for example demographics or purchase history. This group is used in marketing campaigns.\n* RFQResponseApproval - An organization that wants request for quote (RFQ) response approvals owns a member group of this usage. The group contains persons that are able to approve RFQ responses.\n* DisableInheritedRFQResponseApproval - An organization that does not want request for quote (RFQ) response approvals owns a member group of this usage.\n* OrderProcessApproval - An organization that wants order approvals owns a member group of this usage. The group contains persons that are able to approve orders.\n* DisableInheritedOrderProcessApproval - An organization that does not want order approvals owns a member group of this usage.\n* ContractSubmitApproval - An organization that wants contract approvals owns a member group of this usage. The group contains persons that are able to approve contracts.\n* DisableInheritedContractSubmitApproval - An organization that does not want contract approvals owns a member group of this usage.\n* UserRegistrationApproval - An organization that wants user registration approvals owns a member group of this usage. The group contains persons that are able to approve user registration requests.\n* DisableInheritedUserRegistrationApproval - An organization that does not want user registration approvals owns a member group of this usage.\n* ResellerRegistrationApproval - An organization that wants reseller registration approvals owns a member group of this usage. The group contains persons that are able to approve reseller registration requests.\n* DisableInheritedResellerRegistrationApproval - An organization that does not want reseller registration approvals owns a member group of this usage.\n",
            "enum": [
              "GeneralPurpose",
              "AccessControl",
              "CustomerTerritory",
              "CustomerServiceRepresentative",
              "RegisteredCustomer",
              "CustomerPrice",
              "CustomerSegment",
              "RFQResponseApproval",
              "DisableInheritedRFQResponseApproval",
              "OrderProcessApproval",
              "DisableInheritedOrderProcessApproval",
              "ContractSubmitApproval",
              "DisableInheritedContractSubmitApproval",
              "UserRegistrationApproval",
              "DisableInheritedUserRegistrationApproval",
              "ResellerRegistrationApproval",
              "DisableInheritedResellerRegistrationApproval"
            ],
            "x-entity-path": "usage[1]",
            "x-entity-class": "com.ibm.commerce.member.facade.datatypes.MemberGroupUsageEnumerationType"
          }
        },
        "description": "A member group.",
        "x-entity-class": "com.ibm.commerce.member.facade.datatypes.MemberGroupType"
      },
      "MemberGroupCollection": {
        "type": "object",
        "required": [
          "count"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "description": "The number of member groups found.",
            "format": "int64"
          },
          "href": {
            "type": "string",
            "description": "The URL of the link.",
            "format": "uri"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberGroup"
            }
          }
        },
        "description": "A collection of member groups."
      },
      "MemberGroupConditionElement": {
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for identifying the condition element.",
            "readOnly": true,
            "x-entity-path": "memberGroupConditionElementIdentifier/uniqueID"
          },
          "name": {
            "type": "string",
            "description": "The name of the condition element. Can only be set when the member group condition element is created.",
            "x-entity-path": "memberGroupConditionElementIdentifier/name"
          },
          "nameValuePairVariable": {
            "type": "array",
            "description": "The name-value pair variables associated with a member group condition element. Applicable to condition elements of type simpleCondition only. Name-value pairs can only be set when the member group condition element is created. To change a name-value pair, delete the condition element and create it again with the desired name-value pairs.",
            "items": {
              "$ref": "#/components/schemas/MemberGroupConditionNameValuePair"
            }
          },
          "negate": {
            "type": "boolean",
            "description": "Whether or not to negate the condition element. Available values:\n* true - The condition element result is negated.\n* false - The condition element result is not negated.\n"
          },
          "parentElementName": {
            "type": "string",
            "description": "The name of the condition element's parent element.",
            "x-entity-path": "parentElementIdentifier/name"
          },
          "simpleConditionOperator": {
            "type": "string",
            "description": "For simple condition elements, the relational operator between the simpleConditionVariable and simpleConditionValue."
          },
          "simpleConditionValue": {
            "type": "string",
            "description": "For simple condition elements, the value that simpleConditionVariable will be compared to for determining membership of a member group."
          },
          "simpleConditionVariable": {
            "type": "string",
            "description": "For simple condition elements, the variable to assess to determine membership of a member group."
          },
          "type": {
            "type": "string",
            "description": "The usage of the member group condition element. Available values:\n* andListCondition - A boolean expression that consists of a list of boolean expressions joined by the boolean AND operator.\n* orListCondition - A boolean expression that consists of a list of boolean expressions joined by the boolean OR operator.\n* simpleCondition - A simple condition boolean expression.  A simple condition consists of a variable, an operator, and a value with optional qualifiers.\n* trueCondition - A boolean expression that always evaluates as true.\n",
            "enum": [
              "andListCondition",
              "orListCondition",
              "simpleCondition",
              "trueCondition"
            ],
            "x-entity-path": "conditionUsage"
          }
        },
        "description": "A member group condition element.",
        "x-entity-class": "com.ibm.commerce.member.facade.datatypes.MemberGroupConditionElementType"
      },
      "MemberGroupConditionElementCollection": {
        "type": "object",
        "required": [
          "count"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "description": "The number of condition elements found.",
            "format": "int64"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberGroupConditionElement"
            }
          }
        },
        "description": "A collection of member group condition elements."
      },
      "MemberGroupConditionNameValuePair": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique numeric ID for the condition element variable.",
            "readOnly": true,
            "x-entity-path": "uniqueID"
          },
          "name": {
            "type": "string",
            "description": "The name of the condition element variable."
          },
          "value": {
            "type": "string",
            "description": "The value of the condition element variable."
          }
        },
        "description": "A mapping of variable names to values as qualifiers within the context of a condition element.",
        "x-entity-class": "com.ibm.commerce.member.facade.datatypes.MemberGroupConditionNameValuePairVariableType"
      },
      "MemberGroupDescription": {
        "type": "object",
        "required": [
          "languageId"
        ],
        "properties": {
          "languageId": {
            "type": "integer",
            "description": "The integer for identifying the language of the member group description. For a list of the integers that map to the supported default languages, refer to the Knowledge Center.",
            "format": "int32",
            "x-entity-path": "language"
          },
          "longDescription": {
            "type": "string",
            "description": "Detailed description of a member group."
          },
          "shortDescription": {
            "type": "string",
            "description": "Brief description of a member group."
          }
        },
        "description": "A member group descriptor.",
        "x-entity-class": "com.ibm.commerce.member.facade.datatypes.MemberGroupDescriptionType"
      },
      "MemberGroupDescriptionCollection": {
        "type": "object",
        "required": [
          "count"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "description": "The number of descriptions found.",
            "format": "int64"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberGroupDescription"
            }
          }
        },
        "description": "A collection of member group descriptors."
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ],
  "x-components": {}
}
