openapi: 3.2.0 info: title: m3ter Lookup Table API description: 'If you are using Postman, you can: - Use the **Download** button above to download the m3ter Open API spec JSON file and then import this file as the **m3ter API Collection** into your Workspace.' version: '1.0' x-logo: url: https://console.m3ter.com/m3ter-logo-black.svg servers: - url: https://api.m3ter.com security: - OAuth2: [] tags: - name: Lookup Table description: Endpoints for creating/updating/deleting Lookup Tables. paths: /organizations/{orgId}/lookuptables: get: tags: - Lookup Table summary: List LookupTable description: 'Retrieve a list Lookup Tables created for the Organization: * Returned list can be filtered by Lookup Table `code` query parameter. * If you want to include any non-default fields for the returned Lookup Tables, use the additional query parameter to specify which you want to include in the response.' operationId: ListLookupTable parameters: - name: orgId in: path description: UUID of the Organization. The Organization represents your company as a direct customer of the m3ter service. required: true style: simple explode: false schema: type: string deprecated: true x-stainless-deprecation-message: the org id should be set at the client level instead - name: pageSize in: query description: Number of Lookup Tables to retrieve per page. required: false allowEmptyValue: true style: form explode: true schema: maximum: 200 minimum: 1 type: integer format: int32 - name: nextToken in: query description: Token to supply for multi page retrievals. required: false allowEmptyValue: true style: form explode: true schema: type: string - name: codes in: query description: List of Lookup Table codes to retrieve. required: false allowEmptyValue: true style: form explode: true schema: type: array items: type: string - name: additional in: query description: Comma separated list of additional non-default fields to be included in the response. For example,if you want to include the active Revision for each of the Lookup Tables returned, set `additional=activeRevision` in the query. required: false allowEmptyValue: true style: form explode: true schema: type: array items: type: string responses: '200': description: List of Lookup Tables content: application/json: schema: $ref: '#/components/schemas/PaginatedLookupTableResponseData' 4XX: $ref: '#/components/responses/Error' 5XX: $ref: '#/components/responses/Error' post: tags: - Lookup Table summary: Create LookupTable description: Create a new Lookup Table. operationId: PostLookupTable parameters: - name: orgId in: path description: UUID of the Organization. The Organization represents your company as a direct customer of the m3ter service. required: true style: simple explode: false schema: type: string deprecated: true x-stainless-deprecation-message: the org id should be set at the client level instead requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/LookupTableRequest' required: true responses: '200': description: Return the created Lookup Table content: application/json: schema: $ref: '#/components/schemas/LookupTableResponse' 4XX: $ref: '#/components/responses/Error' 5XX: $ref: '#/components/responses/Error' /organizations/{orgId}/lookuptables/{id}: get: tags: - Lookup Table summary: Get LookupTable description: Retrieve a Lookup Table by UUID. operationId: GetLookupTable parameters: - name: orgId in: path description: UUID of the Organization. The Organization represents your company as a direct customer of the m3ter service. required: true style: simple explode: false schema: type: string deprecated: true x-stainless-deprecation-message: the org id should be set at the client level instead - name: id in: path description: The UUID of the Lookup Table to retrieve. required: true style: simple explode: false schema: type: string - name: additional in: query description: Comma separated list of additional non-default fields to be included in the response. For example,if you want to include the active Revision for the Lookup Tables returned, set `additional=activeRevision` in the query. required: false allowEmptyValue: true style: form explode: true schema: type: array items: type: string responses: '200': description: Return the requested Lookup Table content: application/json: schema: $ref: '#/components/schemas/LookupTableResponse' 4XX: $ref: '#/components/responses/Error' 5XX: $ref: '#/components/responses/Error' put: tags: - Lookup Table summary: Update LookupTable description: Update the Lookup Table with the given UUID. operationId: PutLookupTable parameters: - name: orgId in: path description: UUID of the Organization. The Organization represents your company as a direct customer of the m3ter service. required: true style: simple explode: false schema: type: string deprecated: true x-stainless-deprecation-message: the org id should be set at the client level instead - name: id in: path description: The UUID of the Lookup Table to update. required: true style: simple explode: false schema: type: string requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/LookupTableRequest' required: true responses: '200': description: Return the updated Lookup Table. content: application/json: schema: $ref: '#/components/schemas/LookupTableResponse' 4XX: $ref: '#/components/responses/Error' 5XX: $ref: '#/components/responses/Error' delete: tags: - Lookup Table summary: Delete LookupTable description: Delete the Lookup Table with the given UUID. operationId: DeleteLookupTable parameters: - name: orgId in: path description: UUID of the Organization. The Organization represents your company as a direct customer of the m3ter service. required: true style: simple explode: false schema: type: string deprecated: true x-stainless-deprecation-message: the org id should be set at the client level instead - name: id in: path description: The UUID of the Lookup Table to delete. required: true style: simple explode: false schema: type: string responses: '200': description: Return the deleted Lookup Table content: application/json: schema: $ref: '#/components/schemas/LookupTableResponse' 4XX: $ref: '#/components/responses/Error' 5XX: $ref: '#/components/responses/Error' components: schemas: AbstractRequest: type: object properties: version: type: integer description: 'The version number of the entity: - **Create entity:** Not valid for initial insertion of new entity - *do not use for Create*. On initial Create, version is set at 1 and listed in the response. - **Update Entity:** On Update, version is required and must match the existing version because a check is performed to ensure sequential versioning is preserved. Version is incremented by 1 and listed in the response.' format: int64 x-stainless-terraform-configurability: computed x-stainless-terraform-always-send: true description: '' AbstractRequestWithCustomFields: type: object description: '' allOf: - $ref: '#/components/schemas/AbstractRequest' - properties: customFields: type: object description: 'User defined fields enabling you to attach custom data. The value for a custom field can be either a string or a number. If `customFields` can also be defined for this entity at the Organizational level, `customField` values defined at individual level override values of `customFields` with the same name defined at Organization level. See [Working with Custom Fields](https://www.m3ter.com/docs/guides/creating-and-managing-products/working-with-custom-fields) in the m3ter documentation for more information.' maxItems: 100 additionalProperties: anyOf: - title: StringCustomFieldReq type: string - title: IntegerCustomFieldReq type: integer - title: NumberCustomFieldReq type: number AbstractResponseWithCustomFields: type: object description: '' allOf: - $ref: '#/components/schemas/AbstractResponse' - properties: customFields: type: object description: 'User defined fields enabling you to attach custom data. The value for a custom field can be either a string or a number. If `customFields` can also be defined for this entity at the Organizational level,`customField` values defined at individual level override values of `customFields` with the same name defined at Organization level. See [Working with Custom Fields](https://www.m3ter.com/docs/guides/creating-and-managing-products/working-with-custom-fields) in the m3ter documentation for more information.' additionalProperties: anyOf: - title: StringCustomFieldRes type: string - title: IntegerCustomFieldRes type: integer - title: NumberCustomFieldRes type: number AbstractResponse: required: - id type: object properties: id: type: string description: 'The UUID of the entity. ' version: type: integer description: 'The version number: - **Create:** On initial Create to insert a new entity, the version is set at 1 in the response. - **Update:** On successful Update, the version is incremented by 1 in the response.' format: int64 x-stainless-terraform-configurability: computed x-stainless-terraform-always-send: true description: '' LookupTableResponse: type: object description: '' allOf: - $ref: '#/components/schemas/AbstractResponseWithCustomFields' - $ref: '#/components/schemas/AbstractResponse' - properties: name: type: string description: The name of the Lookup Table code: type: string description: The code of the Lookup Table dtCreated: type: string description: The DateTime when the Lookup Table was created. format: date-time x-stainless-skip: - terraform dtLastModified: type: string description: The DateTime when the Lookup Table was last modified. format: date-time x-stainless-skip: - terraform createdBy: type: string description: The id of the user who created this Lookup Table. x-stainless-skip: - terraform lastModifiedBy: type: string description: The id of the user who last modified this Lookup Table. x-stainless-skip: - terraform activeRevision: description: '' allOf: - $ref: '#/components/schemas/LookupTableRevisionResponse' - description: The active Lookup Table Revision LookupTableRevisionField: required: - type type: object properties: name: maxLength: 256 pattern: ^[\p{L}_$][\p{L}_$0-9]*$ type: string description: The name of the field example: lookuptablerevisionfieldkey type: description: '' allOf: - $ref: '#/components/schemas/LookupTableRevisionFieldType' - description: The type of the field description: Field of a Lookup Table Revision LookupTableRevisionStatus: type: string description: Status of a Lookup Table Revision enum: - DRAFT - PUBLISHED - ARCHIVED LookupTableRevisionResponse: type: object properties: name: type: string description: The name of the Lookup Table Revision. status: description: '' allOf: - $ref: '#/components/schemas/LookupTableRevisionStatus' - description: The status of the Lookup Table Revision startDate: type: string description: The start date of the Lookup Table Revision format: date-time fields: type: array description: The list of fields of the Lookup Table Revision. items: $ref: '#/components/schemas/LookupTableRevisionField' keys: type: array description: The ordered keys of the Lookup Table Revision items: type: string dtCreated: type: string description: The DateTime when the Lookup Table Revision was created. format: date-time x-stainless-skip: - terraform dtLastModified: type: string description: The DateTime when the Lookup Table Revision was last modified. format: date-time x-stainless-skip: - terraform createdBy: type: string description: The id of the user who created the Lookup Table Revision. x-stainless-skip: - terraform lastModifiedBy: type: string description: The id of the user who last modified the Lookup Table Revision. x-stainless-skip: - terraform itemCount: type: integer description: '' format: int64 description: Response containing a LookupTableRevision entity allOf: - $ref: '#/components/schemas/AbstractResponseWithCustomFields' - $ref: '#/components/schemas/AbstractResponse' LookupTableRequest: type: object description: '' allOf: - $ref: '#/components/schemas/AbstractRequestWithCustomFields' - $ref: '#/components/schemas/AbstractRequest' - required: - code - name properties: name: maxLength: 200 minLength: 1 type: string description: Descriptive name for the Lookup Table. code: maxLength: 80 minLength: 1 pattern: ^([^[\p{Cntrl}\s]])|([^[\p{Cntrl}\s]][[^[\p{Cntrl}\s]] ]*[^[\p{Cntrl}\s]])$ type: string description: 'Code of the Lookup Table - unique short code used to identify the Lookup Table. **NOTE:** Code has a maximum length of 80 characters and must not contain non-printable or whitespace characters (except space), and cannot start/end with whitespace.' PaginatedLookupTableResponseData: type: object properties: data: type: array description: '' items: $ref: '#/components/schemas/LookupTableResponse' nextToken: type: string description: '' description: '' LookupTableRevisionFieldType: type: string description: Type of a Lookup Table Revision Field enum: - STRING - NUMBER responses: Error: description: Error message content: application/json: schema: type: object properties: message: type: string securitySchemes: OAuth2: type: oauth2 description: "m3ter supports machine to machine authentication using the `clientCredentials` OAuth2 flow.\n\nThe `authorizationCode` flow controls access for human users via the m3ter Console application. \n" flows: clientCredentials: tokenUrl: /oauth/token scopes: m3ter-resources/m3ter-scope: m3ter resources measurements:upload: Upload measurements measurements:fileUpload: Upload file measurements:retrieve: Retrieve measurements authorizationCode: authorizationUrl: https://m3ter.auth.us-east-1.amazoncognito.com/oauth2/authorize tokenUrl: https://m3ter.auth.us-east-1.amazoncognito.com/oauth2/token scopes: m3ter-resources/m3ter-scope: m3ter resources openid: OpenID email: email measurements:upload: Upload measurements measurements:fileUpload: Upload file measurements:retrieve: Retrieve measurements