AppDirect SegmentFolders API

The SegmentFolders API from AppDirect — 11 operation(s) for segmentfolders.

OpenAPI Specification

appdirect-segmentfolders-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: The Companies API allows developers to manage marketplace companies and their user memberships.
  title: Companies AI Embed SegmentFolders API
  license:
    name: Apache License, Version 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  version: v296.0-SNAPSHOT
servers:
- url: https://marketplace.appdirect.com/api
- url: https://virtserver.swaggerhub.com
tags:
- name: SegmentFolders
  x-displayName: Segment Folders
paths:
  /channel/v1/companyGroups:
    post:
      tags:
      - SegmentFolders
      summary: Create segment folders
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: createCompanyGroup
      description: Creates a segment folder
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentFolderRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentFolder'
              examples:
                response:
                  value:
                    id: 7e3b3bb8-1b75-408b-8cbf-561ccd910479
                    name: Fortune 500 Companies
                    enable: true
                    partner: APPDIRECT
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The segment folder name already exists for the partner
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url https://marketplace.appdirect.com/api/channel/v1/companyGroups \\\n  --data '{\"name\":\"Fortune 500 Companies\"}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'POST',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/companyGroups',\n  body: {name: 'Fortune 500 Companies'},\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"name\\\":\\\"Fortune 500 Companies\\\"}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/companyGroups\")\n  .post(body)\n  .build();\n\nResponse response = client.newCall(request).execute();"
    get:
      tags:
      - SegmentFolders
      summary: Read segment folders
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: getCompanyGroups
      description: Returns a paginated list of segment folders for the marketplace
      parameters:
      - name: number
        in: query
        description: Page number
        required: false
        schema:
          type: integer
          default: 0
      - name: size
        in: query
        description: Number of results per page
        required: false
        schema:
          type: integer
          maximum: 250
          default: 50
      - name: sort
        in: query
        description: Sort field and order. For ascending sort order, use the '+[FieldName]' format. For descending order, use the '-[FieldName]' format.
        required: false
        schema:
          type: string
          default: +name
      - name: name
        in: query
        description: Search text
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedSegmentFolderAndSegments'
              examples:
                response:
                  value:
                    content:
                    - id: 7e3b3bb8-1b75-408b-8cbf-561ccd910479
                      name: Fortune 500 Companies
                      partner: APPDIRECT
                      segments:
                      - id: 04f8d043-10f1-4b89-8c0e-0780e5a62299
                        name: iOS users
                        partner: APPDIRECT
                        code: IOS
                        type: MANUAL
                    - id: 7e3b3bb8-1b75-408b-8cbf-561ccd910479
                      name: Fortune 100 Companies
                      partner: APPDIRECT
                      segments:
                      - id: 04f8d043-10f1-4b89-8c0e-0780e5a62299
                        name: Android users
                        partner: APPDIRECT
                        code: DROID
                        type: MANUAL
                    page:
                      number: 1
                      size: 2
                      totalElements: 10
                      totalPages: 2
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://marketplace.appdirect.com/api/channel/v1/companyGroups?number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&name=SOME_STRING_VALUE'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/companyGroups',\n  qs: {\n    number: 'SOME_INTEGER_VALUE',\n    size: 'SOME_INTEGER_VALUE',\n    sort: 'SOME_STRING_VALUE',\n    name: 'SOME_STRING_VALUE'\n  }\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/companyGroups?number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&name=SOME_STRING_VALUE\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /channel/v1/companyGroups/{companyGroupId}:
    put:
      tags:
      - SegmentFolders
      summary: Update segment folders
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: updateCompanyGroup
      description: Updates a segment folder
      parameters:
      - description: Segment folder ID
        name: companyGroupId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentFolderRequest'
        required: true
      responses:
        '204':
          description: The segment folder was successfully updated
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The segment folder name already exists for the partner
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request PUT \\\n  --url https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D \\\n  --data '{\"name\":\"Fortune 500 Companies\"}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'PUT',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D',\n  body: {name: 'Fortune 500 Companies'},\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"name\\\":\\\"Fortune 500 Companies\\\"}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D\")\n  .put(body)\n  .build();\n\nResponse response = client.newCall(request).execute();"
    delete:
      tags:
      - SegmentFolders
      summary: Delete segment folder
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: deleteCompanyGroup
      description: Deletes a segment folder, all associated segments, and all product associations
      parameters:
      - description: Segment folder ID
        name: companyGroupId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: The segment folder was successfully deleted
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request DELETE \\\n  --url https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'DELETE',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D\")\n  .delete(null)\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /channel/v1/companyGroups/{companyGroupId}/segments/{companySegmentId}:
    delete:
      tags:
      - SegmentFolders
      summary: Delete segments from segment folders
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: removeSegment
      description: Deletes a segment from a segment folder
      parameters:
      - description: Segment folder ID
        name: companyGroupId
        in: path
        required: true
        schema:
          type: string
      - description: Segment ID
        name: companySegmentId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: The segment was successfully deleted.
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request DELETE \\\n  --url https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D/segments/%7BcompanySegmentId%7D"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'DELETE',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D/segments/%7BcompanySegmentId%7D'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D/segments/%7BcompanySegmentId%7D\")\n  .delete(null)\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /channel/v1/segments:
    get:
      tags:
      - SegmentFolders
      summary: Read segments
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: getCompanyGroupSegments
      description: Returns a paginated list of segments
      parameters:
      - in: query
        name: companyGroupId
        description: Segment folder ID
        required: true
        schema:
          type: string
      - in: query
        name: number
        description: Page number
        required: false
        schema:
          type: integer
          default: 0
      - in: query
        name: size
        required: false
        description: Number of results per page
        schema:
          type: integer
          maximum: 250
          default: 50
      - in: query
        name: sort
        description: Sort field and order. For ascending sort order, use the '+[FieldName]' format. For descending order, use the '-[FieldName]' format.
        required: false
        schema:
          type: string
          pattern: ^[+-]name$
          default: +name
      - in: query
        name: searchText
        description: Search text
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedSegment'
              examples:
                response:
                  value:
                    content:
                    - id: 9f4e5c52-5258-4193-a132-303f06e9eef1
                      name: Canada
                      partner: APPDIRECT
                      code: CAN
                      type: MANUAL
                    - id: b1f5af35-ca68-431f-83b7-ef56189924ed
                      name: France
                      partner: APPDIRECT
                      code: FRA
                      type: MANUAL
                    - id: 5ca15227-da6b-413e-a09c-f8d06ab3dcd7
                      name: United States
                      partner: APPDIRECT
                      code: USA
                      type: MANUAL
                    page:
                      size: 50
                      totalElements: 3
                      totalPages: 1
                      number: 0
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://marketplace.appdirect.com/api/channel/v1/segments?companyGroupId=SOME_STRING_VALUE&number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&searchText=SOME_STRING_VALUE'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/segments',\n  qs: {\n    companyGroupId: 'SOME_STRING_VALUE',\n    number: 'SOME_INTEGER_VALUE',\n    size: 'SOME_INTEGER_VALUE',\n    sort: 'SOME_STRING_VALUE',\n    searchText: 'SOME_STRING_VALUE'\n  }\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/segments?companyGroupId=SOME_STRING_VALUE&number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&searchText=SOME_STRING_VALUE\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
    post:
      tags:
      - SegmentFolders
      summary: Create manual segment
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: createSegment
      description: Creates a manual segment. Manual segments allow Marketplace Managers to select companies manually, as opposed to dynamic segments, which contain user selected automatically based on filter values.
      parameters:
      - in: query
        name: companyGroupId
        description: Segment folder ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Segment'
              examples:
                response:
                  value:
                    id: 9f4e5c52-5258-4193-a132-303f06e9eef1
                    name: Canada
                    partner: APPDIRECT
                    code: CAN
                    type: MANUAL
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The segment already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url 'https://marketplace.appdirect.com/api/channel/v1/segments?companyGroupId=SOME_STRING_VALUE' \\\n  --data '{\"name\":\"Canada\",\"code\":\"XXYU\"}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'POST',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/segments',\n  qs: {companyGroupId: 'SOME_STRING_VALUE'},\n  body: {name: 'Canada', code: 'XXYU'},\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"name\\\":\\\"Canada\\\",\\\"code\\\":\\\"XXYU\\\"}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/segments?companyGroupId=SOME_STRING_VALUE\")\n  .post(body)\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /channel/v1/segments/{companySegmentId}:
    put:
      tags:
      - SegmentFolders
      summary: Update manual segments
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: updateSegment
      description: Updates a manual segment
      parameters:
      - in: path
        name: companySegmentId
        description: Segment ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentRequest'
        required: true
      responses:
        '204':
          description: The segment was successfully updated.
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The segment already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request PUT \\\n  --url https://marketplace.appdirect.com/api/channel/v1/segments/%7BcompanySegmentId%7D \\\n  --data '{\"name\":\"Canada\",\"code\":\"XXYU\"}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'PUT',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/segments/%7BcompanySegmentId%7D',\n  body: {name: 'Canada', code: 'XXYU'},\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"name\\\":\\\"Canada\\\",\\\"code\\\":\\\"XXYU\\\"}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/segments/%7BcompanySegmentId%7D\")\n  .put(body)\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /channel/v1/segments/{companySegmentId}/associationsBatchUpdate:
    post:
      tags:
      - SegmentFolders
      summary: Create or remove segment-company associations
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: deleteAndAddCompanies
      description: Creates or removes associations between segments and companies
      parameters:
      - in: path
        name: companySegmentId
        description: Segment ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanySegmentAssociationsBatchUpdateRequest'
        required: true
      responses:
        '204':
          description: The segment to company associations were successfully updated.
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The association already exists between the segment and company.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url https://marketplace.appdirect.com/api/channel/v1/segments/%7BcompanySegmentId%7D/associationsBatchUpdate \\\n  --header 'content-type: application/json' \\\n  --data '{\"deleteAll\":\"false\",\"companyIdsToAdd\":[\"7e3b3bb8-1b75-408b-8cbf-561ccd910479\"],\"companyIdsToRemove\":[\"7e3b3bb8-1b75-408b-8cbf-561ccd910478\"]}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'POST',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/segments/%7BcompanySegmentId%7D/associationsBatchUpdate',\n  headers: {'content-type': 'application/json'},\n  body: {\n    deleteAll: 'false',\n    companyIdsToAdd: ['7e3b3bb8-1b75-408b-8cbf-561ccd910479'],\n    companyIdsToRemove: ['7e3b3bb8-1b75-408b-8cbf-561ccd910478']\n  },\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"deleteAll\\\":\\\"false\\\",\\\"companyIdsToAdd\\\":[\\\"7e3b3bb8-1b75-408b-8cbf-561ccd910479\\\"],\\\"companyIdsToRemove\\\":[\\\"7e3b3bb8-1b75-408b-8cbf-561ccd910478\\\"]}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/segments/%7BcompanySegmentId%7D/associationsBatchUpdate\")\n  .post(body)\n  .addHeader(\"content-type\", \"application/json\")\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /channel/v1/segments/{companySegmentId}/availableAndAssociatedCompanies:
    get:
      tags:
      - SegmentFolders
      summary: Read segment companies
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: getAvailableAndAssociatedCompanies
      description: Returns a paginated list of all marketplace companies and indicates whether they are associated with the segment
      parameters:
      - in: path
        name: companySegmentId
        description: Segment ID
        required: true
        schema:
          type: string
      - in: query
        name: number
        description: Page number
        required: false
        schema:
          type: integer
          default: 0
      - in: query
        name: size
        required: false
        description: Number of results per page
        schema:
          type: integer
          maximum: 250
          default: 50
      - in: query
        name: sort
        description: Sort field and order. For ascending sort order, use the '+[FieldName]' format. For descending order, use the '-[FieldName]' format.
        required: false
        schema:
          type: string
          pattern: ^[+-]name$
          default: +name
      - in: query
        name: searchText
        description: Search text
        required: false
        schema:
          type: string
      - in: query
        name: selected
        description: If true, returns only associated companies
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedAvailableCompanySegmentAssociation'
              examples:
                response:
                  value:
                    content:
                    - name: Canada Company
                      id: 04f8d043-10f1-4b89-8c0e-0780e5a62299
                      selected: false
                    - name: US Company
                      id: 04f8d043-10f1-4b89-8c0e-0780e5a62298
                      selected: true
                    page:
                      number: 1
                      size: 2
                      totalElements: 10
                      totalPages: 2
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://marketplace.appdirect.com/api/channel/v1/segments/%7BcompanySegmentId%7D/availableAndAssociatedCompanies?number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&searchText=SOME_STRING_VALUE&selected=SOME_BOOLEAN_VALUE'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/segments/%7BcompanySegmentId%7D/availableAndAssociatedCompanies',\n  qs: {\n    number: 'SOME_INTEGER_VALUE',\n    size: 'SOME_INTEGER_VALUE',\n    sort: 'SOME_STRING_VALUE',\n    searchText: 'SOME_STRING_VALUE',\n    selected: 'SOME_BOOLEAN_VALUE'\n  }\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/segments/%7BcompanySegmentId%7D/availableAndAssociatedCompanies?number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&searchText=SOME_STRING_VALUE&selected=SOME_BOOLEAN_VALUE\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /channel/v1/segments/dynamicSegments/{dynamicSegmentId}:
    put:
      tags:
      - SegmentFolders
      summary: Update dynamic segments
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      operationId: updateDynamicSegment
      description: Updates a dynamic segment
      parameters:
      - in: path
        name: dynamicSegmentId
        description: Segment ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DynamicSegmentRequest'
        required: true
      responses:
        '204':
          description: The segment was successfully updated.
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The segment already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request PUT \\\n  --url https://marketplace.appdirect.com/api/channel/v1/segments/dynamicSegments/%7BdynamicSegmentId%7D \\\n  --data '{\"name\":\"Canada\",\"code\":\"XXYU\",\"filters\":[[{\"conditions\":[{\"parameter\":\"company.state\",\"operator\":\"matches\",\"values\":[\"Quebec\"]},{\"parameter\":\"company.city\",\"operator\":\"matches\",\"values\":[\"Montreal\"]}]},{\"conditions\":[{\"parameter\":\"company.state\",\"operator\":\"matches\",\"values\":[\"Quebec\"]},{\"parameter\":\"company.city\",\"operator\":\"matches\",\"values\":[\"Montreal\"]}]}]]}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'PUT',\n  url: 'https://marketplace.appdirect.com/api/channel/v1/segments/dynamicSegments/%7BdynamicSegmentId%7D',\n  body: {\n    name: 'Canada',\n    code: 'XXYU',\n    filters: [\n      [\n        {\n          conditions: [\n            {parameter: 'company.state', operator: 'matches', values: ['Quebec']},\n            {parameter: 'company.city', operator: 'matches', values: ['Montreal']}\n          ]\n        },\n        {\n          conditions: [\n            {parameter: 'company.state', operator: 'matches', values: ['Quebec']},\n            {parameter: 'company.city', operator: 'matches', values: ['Montreal']}\n          ]\n        }\n      ]\n    ]\n  },\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"name\\\":\\\"Canada\\\",\\\"code\\\":\\\"XXYU\\\",\\\"filters\\\":[[{\\\"conditions\\\":[{\\\"parameter\\\":\\\"company.state\\\",\\\"operator\\\":\\\"matches\\\",\\\"values\\\":[\\\"Quebec\\\"]},{\\\"parameter\\\":\\\"company.city\\\",\\\"operator\\\":\\\"matches\\\",\\\"values\\\":[\\\"Montreal\\\"]}]},{\\\"conditions\\\":[{\\\"parameter\\\":\\\"company.state\\\",\\\"operator\\\":\\\"matches\\\",\\\"values\\\":[\\\"Quebec\\\"]},{\\\"parameter\\\":\\\"company.city\\\",\\\"operator\\\":\\\"matches\\\",\\\"values\\\":[\\\"Montreal\\\"]}]}]]}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/channel/v1/segments/dynamicSegments/%7BdynamicSegmentId%7D\")\n  .put(body)\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /channel/v1/segments/dynamicSegments/filterParameters:
    get:
      tags:
      - SegmentFolders
      summary: Read filter parameters
      x-appdirect-required-scopes:
        ROLE_CHANNEL_ADMIN:
        - Allows access as a Marketplace Manager for the marketplace.
      description: Returns a list of parameters for the dynamic filter
      operationId: readFilterParameter
      parameters:
      - name: AD-Tenant
        in: header
        required: true
        schema:
          type: string
          pattern: (\s*\S+\s*)+
      - name: locale
        in: query
        required: false
        description: Locale
        schema:
          type: string
          default: en_US
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentFilterParamList'
              examples:
                response:
                  value:
                  - 

# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appdirect/refs/heads/main/openapi/appdirect-segmentfolders-api-openapi.yml