# Queries

# getEntitlementByActivationId

Fetches an Entitlement associated to the given Activation ID


## Arguments:

  - `activationId` (String!)

## Return type:

  Type: Entitlement - Represents the entitlement entity
  - `createdOn` (String): Represents the date and time when the entitlement was created
  - `description` (String): Human readable description of the entitlement
  - `entitlementId` (String!): Represents a high-level entitlement entity
  - `shipToAddress` (String): Represents the shipping address associated with the entitlement
  - `shipToEmail` (String): Email address associated with shipment contact
  - `status` (String): status could be one of the following values: ACTIVE, INACTIVE, DRAFT, DEPLOYED, OBSOLETE
  - `updatedOn` (String): Represents the date and time when the entitlement was last updated


---

# getEntitlementById

Fetches an Entitlement by its ID


## Arguments:

  - `entitlementId` (String!)

## Return type:

  Type: EntitlementDetail - Entitlement details including associated accounts and line items
  - `accounts` ([Account!]!): Represents the accounts associated with the entitlement
  - `attributes` ([Attribute]): Represents the custom attributes associated with the entitlement
  - `createdOn` (String): Represents the date and time when the entitlement was created
  - `description` (String): Human readable description of the entitlement
  - `entitlementId` (String!): Unique identifier of the entitlement
  - `lineItems` ([LineItemDetail!]!): List of line items associated with the entitlement
  - `shipToAddress` (String): Represents the shipping address associated with the entitlement
  - `shipToEmail` (String): Email address associated with shipment contact
  - `status` (String): status could be one of the following values: ACTIVE, INACTIVE, DRAFT, DEPLOYED, OBSOLETE
  - `updatedOn` (String): Represents the date and time when the entitlement was last updated


---

# getEntitlements

Fetches a list of Entitlements based on various filters


## Arguments:

  - `accountId` (String): Unique identifier for the account
  - `accountName` (String): Name of the account
  - `contactEmail` (String): Contact email associated with the entitlement
  - `limit` (Int): limit number of records per page
  - `page` (Int): page number for pagination
  - `partNumber` (String): Product Part number associated with the entitlement
  - `product` (String): Product associated with the entitlement
  - `productVersion` (String): Product version associated with the entitlement
  - `sortBy` (String): sortBy - You can sort by the following fields entitlement_id,account_name,created_on
  - `sortOrder` (String): sortOrder - You can specify either asc or desc
  - `status` (String): status - You can filter by the following statuses active, inactive, draft, deployed, obsolete

## Return type:

  Type: EntitlementListResponse - Paginated response carrying a list of entitlements
  - `entitlements` ([Entitlement!]!): List of entitlement entities
  - `limit` (Int): Represents limit per page for pagination
  - `page` (Int): Represents page for pagination


---

# getLineItemsForEntitlement

Given an entitlement ID, fetch the line items associated with it


## Arguments:

  - `activationId` (String): Activation ID of the line item
  - `entitlementId` (String!): Entitlement ID for which line items are to be fetched
  - `licenseModelName` (String): License model name associated with the line item
  - `limit` (Int): limit number of records per page
  - `page` (Int): page number for pagination
  - `productName` (String): Name of the product associated with the line item
  - `startDate` (String): Start date of the line item
  - `status` (String): Status of the line item. You can filter by the following statuses active, inactive, draft, deployed, obsolete

## Return type:

  Type: LineItemListResponse - Paginated response carrying a list of line items
  - `limit` (Int): Represents limit per page for pagination
  - `lineItems` ([LineItem!]!): List of line item entities
  - `page` (Int): Represents page for pagination


---

# getFeatureBundle

Get a specific feature bundle by its name.


## Arguments:

  - `featureBundleName` (String!): Name of the feature bundle.
Example: "MyFeatureBundle"

## Return type:

  Type: FeatureBundleGetResponse - Response containing a single feature bundle
  - `featureBundle` (FeatureBundleGet): The feature bundle details


---

# getFeatureBundles

Get feature bundles with filtering and pagination support.
Filters can be applied on featureBundleName, state, creationDate, and lastModifiedDate.


## Arguments:

  - `creationDate` (String): Filter by creation date in ISO 8601 format.
Example: "2024-01-15"
  - `featureBundleName` (String): Filter by feature bundle name.
Example: "MyFeatureBundle"
  - `lastModifiedDate` (String): Filter by last modified date in ISO 8601 format.
Example: "2024-01-20"
  - `limit` (Int): Number of records per page.
Default: 25
  - `page` (Int): Requested page number for pagination.
Default: 1
  - `state` (String): Filter by feature bundle state.
Valid values: DRAFT, DEPLOYED, OBSOLETE, INACTIVE.
Example: "DEPLOYED"

## Return type:

  Type: FeatureBundleListResponse - Paginated response for feature bundles
  - `featureBundles` ([FeatureBundleResponseDTO]): List of feature bundles
  - `pagination` (Pagination): Pagination information


---

# getFeatures

Get features with filtering and pagination support.
Filters can be applied on name, version, versionFormat, state, creationDate, lastModifiedDate, and vendorAuthString.


## Arguments:

  - `creationDate` (String): Filter by creation date in ISO 8601 format.
Example: "2024-01-15"
  - `lastModifiedDate` (String): Filter by last modified date in ISO 8601 format.
Example: "2024-01-20"
  - `limit` (Int): Number of records per page.
Default: 25
  - `name` (String): Filter feature by name.
Example: "MyFeature"
  - `page` (Int): Requested page number for pagination.
Default: 1
  - `state` (String): Feature state (e.g., DRAFT, DEPLOYED).
Valid values: DRAFT, DEPLOYED, OBSOLETE, INACTIVE.
Example: "DEPLOYED"
  - `vendorAuthString` (String): Vendor authorization string for filtering.
  - `version` (String): Filter feature by version.
Example: "1.0"
  - `versionFormat` (String): Filter feature by versionFormat.
Valid values: FIXED, DATEBASED.
Example: "FIXED"

## Return type:

  Type: PagedFeatureResponse - Paginated response carrying a list of features
  - `features` ([FeaturesResponseDTO]): List of features
  - `pagination` (Pagination): Pagination information


---

# getMaintenanceProducts

Get maintenance products with filtering, sorting, and pagination support.
Filters can be applied on maintenanceName, version, partNumber, state,
creationDate, and lastModifiedDate.


## Arguments:

  - `creationDate` (String): Filter by creation date (ISO 8601 format).
Example: "2023-10-15T10:30:00Z"
  - `lastModifiedDate` (String): Filter by last modified date (ISO 8601 format).
Example: "2023-11-20T14:45:00Z"
  - `limit` (Int): Number of records per page.
Default: 25
  - `maintenanceName` (String): Filter by maintenance product name.
Example: "MyMaintenanceProduct"
  - `page` (Int): Requested page number for pagination.
Default: 1
  - `partNumber` (String): Filter by part number.
Example: "PN-12345"
  - `sort_by` (String): Field to sort by.
Valid values: maintenanceName, state, partNumber, version, creationDate, lastModifiedDate.
Example: "maintenanceName"
  - `sort_order` (String): Order to sort by.
Valid values: asc, desc.
Example: "asc"
  - `state` (String): Filter by maintenance product state.
Valid values: DRAFT, DEPLOYED, OBSOLETE, INACTIVE.
Example: "DEPLOYED"
  - `version` (String): Filter by maintenance product version.
Example: "1.0"

## Return type:

  Type: MaintenanceProductListDTO - Maintenance product list response.
  - `maintenanceProducts` ([MaintenanceProductDTO]): List of maintenance products
  - `pagination` (Pagination): Pagination information


---

# getPartNumbers

Get part numbers with filtering, sorting, and pagination support.
Filters can be applied on partNumber, productName, licenseModel, dates, and mapping status.


## Arguments:

  - `creationDate` (String): Filter by creation date in ISO 8601 format.
Example: "2024-01-15"
  - `lastModifiedDate` (String): Filter by last modified date in ISO 8601 format.
Example: "2024-01-20"
  - `licenseModel` (String): Filter by license model.
Example: "LicenseModelName"
  - `limit` (Int): Number of records per page.
Default: 25
  - `page` (Int): Requested page number for pagination.
Default: 1
  - `partNumber` (String): Filter by part number name.
Example: "MyPartNumber"
  - `productName` (String): Filter by product name.
Example: "SampleProduct"
  - `sort_by` (String): Field to sort by.
Valid values: partNumber, productName, licenseModel, creationDate, lastModifiedDate.
Example: "partNumber"
  - `sort_order` (String): Order to sort by.
Valid values: asc, desc.
Default: asc.
  - `unmappedWithLicenseModel` (Boolean): Filter by unmapped with license model.
Example: false.
  - `unmappedWithProduct` (Boolean): Filter by unmapped with product.
Example: true.

## Return type:

  Type: PartNumberResponseListDTO - Paginated response carrying a list of part numbers
  - `pagination` (Pagination): Pagination information
  - `partNumbers` ([PartNumberResponseDTO]): List of part numbers


---

# getProducts

Fetches a list of Products based on various filters


## Arguments:

  - `description` (String): Filter by description
  - `hostType` (String): Filter by host type
  - `licenseTechnology` (String): Filter by license technology
  - `limit` (Int): Number of records per page
  - `page` (Int): Requested page number
  - `partNumber` (String): Filter by part number
  - `productId` (ID): Filter by product ID
  - `productName` (String): Filter by product name
  - `sortBy` (String): Field to sort by (productName,state,partNumber,hosttype,licenseTechnology,version,usedOnDevice)
  - `sortOrder` (String): Order to sort by (asc/desc)
  - `state` (String): Filter by product state
  - `usedOnDevice` (String): Filter by used on device
  - `version` (String): Filter by product version

## Return type:

  Type: ProductListDTO - Paginated response carrying a list of products
  - `pagination` (Pagination): Represents pagination information
  - `productList` ([Product]): List of product entities


---

# getSuite

Get a single suite by its name and version.


## Arguments:

  - `suiteName` (String!): Suite name of the suite to retrieve.
Example: "Suite A"
  - `suiteVersion` (String!): Suite version of the suite to retrieve.
Example: "1.0"

## Return type:

  Type: SuiteResponseDTO - Response containing a single suite.
  - `suite` (SuiteDTO): The suite data


---

# getSuites

Get suites with filtering, sorting, and pagination support.
Filters can be applied on suiteName, version, description, partNumber, state,
packageName, packageVersion, hostType, licenseTechnology, licenseGenerator,
usedOnDevice, creationDate, and lastModifiedDate.


## Arguments:

  - `creationDate` (String): Filter by creation date (ISO 8601 format).
Example: "2023-10-15T10:30:00Z"
  - `description` (String): Filter by description.
Example: "Product suite for enterprise"
  - `hostType` (String): Filter by host type.
Example: "Windows"
  - `lastModifiedDate` (String): Filter by last modified date (ISO 8601 format).
Example: "2023-11-20T14:45:00Z"
  - `licenseGenerator` (String): Filter by license generator.
Example: "GeneratorX"
  - `licenseTechnology` (String): Filter by license technology.
Example: "FlexNet"
  - `limit` (Int): Number of records per page.
Default: 25
  - `packageName` (String): Filter by package name.
Example: "PackageA"
  - `packageVersion` (String): Filter by package version.
Example: "2.0"
  - `page` (Int): Requested page number for pagination.
Default: 1
  - `partNumber` (String): Filter by part number.
Example: "PN-12345"
  - `sort_by` (String): Field to sort by.
Valid values: suiteName, createdOn.
Example: "suiteName"
  - `sort_order` (String): Order to sort by.
Valid values: asc, desc.
Example: "asc"
  - `state` (String): Filter by suite state.
Valid values: DRAFT, DEPLOYED, OBSOLETE, INACTIVE.
Example: "DEPLOYED"
  - `suiteName` (String): Filter by suite name.
Example: "Suite A"
  - `usedOnDevice` (Boolean): Filter by used on device flag.
Example: true
  - `version` (String): Filter by suite version.
Example: "1.0"

## Return type:

  Type: SuiteListResponseDTO - Paginated response containing a list of suites.
  - `pagination` (Pagination): Pagination information
  - `suiteList` ([SuiteListItemDTO]): List of suites


---

# getAccounts

Gets accounts with filtering and pagination


## Arguments:

  - `accountId` (String): Unique identifier of the account to filter by
  - `accountName` (String): Name of the account to filter by
  - `accountType` ([String]): Type of the account to filter by.
Valid values: CUSTOMER, PUBLISHER, CHANNEL_PARTNER, SELF_REGISTERED.
Default: CUSTOMER
  - `limit` (Int): Number of records per page
  - `page` (Int): Page number for pagination
  - `rootAccountOnly` (Boolean): Whether to return only root accounts (accounts without parent).
Default: false

## Return type:

  Type: PagedAccountResponse - Paginated account response
  - `accounts` ([Account!]): List of accounts
  - `pagination` (Pagination): Pagination information


---

# getUserByID

Gets the user account details by the user ID


## Arguments:

  - `UserID` (String!): UserId of the user to retrieve details for

## Return type:

  Type: UserDetail - Response returned after getting user details with account information
  - `accounts` ([UserAccount!]!): Accounts associated with the user
  - `attributes` ([Attribute]): Represents the custom attributes associated with the account
  - `city` (String): City of the user
  - `country` (String): Country of the user
  - `displayName` (String): Display name of the user
  - `emailAddress` (String): Email address of the user
  - `faxNumber` (String): Fax number of the user
  - `firstName` (String): First name of the user
  - `lastName` (String): Last name of the user
  - `locale` (String): Locale preference of the user
  - `optIn` (Boolean): Whether the user has opted in for communications
  - `phoneNumber` (String): Phone number of the user
  - `portalLogin` (Boolean): Whether the user can login
  - `shared` (Boolean): Whether the user is shared across accounts
  - `state` (String): State or province of the user
  - `status` (String): Status of the user account (active/inactive)
  - `street` (String): Street address of the user
  - `timezone` (String): Timezone preference of the user
  - `userName` (String): Username of the user
  - `zipcode` (String): Postal/ZIP code of the user


---

# getUsers

Gets all users with optional filtering, sorting, and pagination


## Arguments:

  - `accountId` (String): Unique identifier of the account to filter users by
  - `accountName` (String): Name of the account to filter users by
  - `accountType` (String): Type of the account to filter users by.
Valid values: HOME, PUBLISHER, END_CUSTOMER, CHANNEL_PARTNER, SELF_REGISTERED
  - `displayName` (String): Display name of the user to filter by
  - `email` (String): Email address of the user to filter by
  - `limit` (Int): Number of records per page.
Default: 25
  - `page` (Int): Page number for pagination.
Default: 1
  - `sort_by` (String): Field to sort results by.
Valid values: displayName, email, status.
Default: displayName
  - `sort_order` (String): Sort order for the results.
Valid values: asc, desc.
Default: asc
  - `status` (String): Status of the user account to filter by.
Valid values: active, inactive
  - `userName` (String): Username to filter by

## Return type:

  Type: PagedUserResponse - Paginated users response
  - `pagination` (Pagination): Pagination information
  - `userList` ([UserInfo!]): List of user accounts


---

