openapi: 3.0.1
info:
title: Product Catalog Management agreement API
description: "Product Catalog API is one of Catalog Management API Family. Product Catalog API goal is to provide a catalog of products. \n### Operations\nProduct Catalog API performs the following operations on the resources :\n- Retrieve an entity or a collection of entities depending on filter criteria\n- Partial update of an entity (including updating rules)\n- Create an entity (including default values and creation rules)\n- Delete an entity\n- Manage notification of events"
version: 5.0.0
servers:
- url: https://serverRoot/productCatalogManagement/v5/
tags:
- name: agreement
paths:
/agreement:
get:
operationId: listAgreement
summary: List or find Agreement objects
description: This operation list or find Agreement entities
tags:
- agreement
parameters:
- name: fields
description: Comma-separated properties to be provided in response
required: false
in: query
type: string
- name: offset
description: Requested index for start of resources to be provided in response
required: false
in: query
type: integer
- name: limit
description: Requested number of resources to be provided in response
required: false
in: query
type: integer
responses:
'200':
description: Success
headers:
X-Result-Count:
description: Actual number of items returned in the response body
type: integer
X-Total-Count:
description: Total number of items matching criteria
type: integer
schema:
type: array
items:
$ref: '#/definitions/Agreement'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Not Found
schema:
$ref: '#/definitions/Error'
'405':
description: Method Not allowed
schema:
$ref: '#/definitions/Error'
'409':
description: Conflict
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Error'
post:
operationId: createAgreement
summary: Creates a Agreement
description: This operation creates a Agreement entity.
tags:
- agreement
parameters:
- name: agreement
description: The Agreement to be created
required: true
schema:
$ref: '#/definitions/Agreement_Create'
in: body
responses:
'201':
description: Created
schema:
$ref: '#/definitions/Agreement'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'405':
description: Method Not allowed
schema:
$ref: '#/definitions/Error'
'409':
description: Conflict
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Error'
/agreement/{id}:
get:
operationId: retrieveAgreement
summary: Retrieves a Agreement by ID
description: This operation retrieves a Agreement entity. Attribute selection is enabled for all first level attributes.
tags:
- agreement
parameters:
- name: id
description: Identifier of the Agreement
required: true
type: string
in: path
- name: fields
description: Comma-separated properties to provide in response
required: false
type: string
in: query
responses:
'200':
description: Success
schema:
$ref: '#/definitions/Agreement'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Not Found
schema:
$ref: '#/definitions/Error'
'405':
description: Method Not allowed
schema:
$ref: '#/definitions/Error'
'409':
description: Conflict
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Error'
patch:
operationId: patchAgreement
summary: Updates partially a Agreement
description: This operation updates partially a Agreement entity.
tags:
- agreement
parameters:
- name: id
description: Identifier of the Agreement
required: true
type: string
in: path
- name: agreement
description: The Agreement to be updated
required: true
schema:
$ref: '#/definitions/Agreement_Update'
in: body
responses:
'200':
description: Updated
schema:
$ref: '#/definitions/Agreement'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Not Found
schema:
$ref: '#/definitions/Error'
'405':
description: Method Not allowed
schema:
$ref: '#/definitions/Error'
'409':
description: Conflict
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Error'
delete:
operationId: deleteAgreement
summary: Deletes a Agreement
description: This operation deletes a Agreement entity.
tags:
- agreement
parameters:
- name: id
description: Identifier of the Agreement
required: true
type: string
in: path
responses:
'204':
description: Deleted
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Not Found
schema:
$ref: '#/definitions/Error'
'405':
description: Method Not allowed
schema:
$ref: '#/definitions/Error'
'409':
description: Conflict
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Error'
definitions:
Agreement_Create:
type: object
description: 'An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.
Skipped properties: id,href'
required:
- agreementItem
- agreementType
- engagedParty
- name
properties:
agreementType:
type: string
description: The type of the agreement. For example commercial
description:
type: string
description: Narrative that explains the agreement and details about the it , such as why the agreement is taking place.
documentNumber:
type: integer
description: A reference number assigned to an Agreement that follows a prescribed numbering system.
initialDate:
type: string
format: date-time
description: Date at which the agreement was initialized
name:
type: string
description: A human-readable name for the agreement
statementOfIntent:
type: string
description: An overview and goals of the Agreement
status:
type: string
description: 'The current status of the agreement. Typical values are: in process, approved and rejected'
version:
type: string
description: A string identifying the version of the agreement
agreementAuthorization:
type: array
items:
$ref: '#/definitions/AgreementAuthorization'
agreementItem:
type: array
items:
$ref: '#/definitions/AgreementItem'
minItems: 1
agreementPeriod:
$ref: '#/definitions/TimePeriod'
description: The time period during which the Agreement is in effect.
agreementSpecification:
$ref: '#/definitions/AgreementSpecificationRef'
associatedAgreement:
type: array
items:
$ref: '#/definitions/AgreementRef'
characteristic:
type: array
items:
$ref: '#/definitions/Characteristic'
completionDate:
$ref: '#/definitions/TimePeriod'
description: Date at which the agreement is completed
engagedParty:
type: array
items:
$ref: '#/definitions/RelatedParty'
minItems: 1
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
ProductRef:
type: object
properties:
id:
type: string
description: Unique identifier of a related entity.
href:
type: string
description: Reference of the related entity.
name:
type: string
description: Name of the related entity.
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
required:
- id
AgreementAuthorization:
type: object
description: A business participant that is responsible for approving the agreement.
properties:
date:
type: string
format: date-time
description: The date associated with the authorization state.
signatureRepresentation:
type: string
description: Indication that represents whether the signature is a physical paper signature or a digital signature.
state:
type: string
description: Current status of the authorization, for example in process, approved, rejected.
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
Characteristic:
type: object
description: Describes a given characteristic of an object or entity through a name/value pair.
required:
- name
- value
properties:
name:
type: string
description: Name of the characteristic
valueType:
type: string
description: Data type of the value of the characteristic
value:
$ref: '#/definitions/Any'
description: The value of the characteristic
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
Error:
description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
type: object
required:
- code
- reason
properties:
code:
type: string
description: Application relevant detail, defined in the API or a common list.
reason:
type: string
description: Explanation of the reason for the error which can be shown to a client user.
message:
type: string
description: More details and corrective actions related to the error which can be shown to a client user.
status:
type: string
description: HTTP Error code extension
referenceError:
type: string
format: uri
description: URI of documentation describing the error.
'@baseType':
type: string
description: When sub-classing, this defines the super-class.
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name.
Any: {}
AgreementSpecificationRef:
type: object
description: AgreementSpecification reference. An AgreementSpecification represents a template of an agreement that can be used when establishing partnerships.
properties:
id:
type: string
description: Unique identifier of a related entity.
href:
type: string
description: Reference of the related entity.
description:
type: string
description: A narrative that explains in detail what the agreement specification is about.
name:
type: string
description: Name of the agreement specification
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
required:
- id
TimePeriod:
type: object
description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both
properties:
endDateTime:
type: string
format: date-time
description: End of the time period, using IETC-RFC-3339 format
startDateTime:
type: string
format: date-time
description: Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end
ProductOfferingRef:
type: object
description: ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.
properties:
id:
type: string
description: Unique identifier of a related entity.
href:
type: string
description: Reference of the related entity.
name:
type: string
description: Name of the related entity.
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
required:
- id
Agreement_Update:
type: object
description: 'An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.
Skipped properties: id,href,completionDate'
required:
- agreementItem
- agreementType
- engagedParty
- name
properties:
agreementType:
type: string
description: The type of the agreement. For example commercial
description:
type: string
description: Narrative that explains the agreement and details about the it , such as why the agreement is taking place.
documentNumber:
type: integer
description: A reference number assigned to an Agreement that follows a prescribed numbering system.
initialDate:
type: string
format: date-time
description: Date at which the agreement was initialized
name:
type: string
description: A human-readable name for the agreement
statementOfIntent:
type: string
description: An overview and goals of the Agreement
status:
type: string
description: 'The current status of the agreement. Typical values are: in process, approved and rejected'
version:
type: string
description: A string identifying the version of the agreement
agreementAuthorization:
type: array
items:
$ref: '#/definitions/AgreementAuthorization'
agreementItem:
type: array
items:
$ref: '#/definitions/AgreementItem'
minItems: 1
agreementPeriod:
$ref: '#/definitions/TimePeriod'
description: The time period during which the Agreement is in effect.
agreementSpecification:
$ref: '#/definitions/AgreementSpecificationRef'
associatedAgreement:
type: array
items:
$ref: '#/definitions/AgreementRef'
characteristic:
type: array
items:
$ref: '#/definitions/Characteristic'
engagedParty:
type: array
items:
$ref: '#/definitions/RelatedParty'
minItems: 1
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
AgreementRef:
type: object
description: Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.
properties:
id:
type: string
description: Unique identifier of a related entity.
href:
type: string
description: Reference of the related entity.
name:
type: string
description: Name of the agreement
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
required:
- id
Agreement:
type: object
description: An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.
required:
- agreementItem
- agreementType
- engagedParty
- name
properties:
id:
type: string
description: Unique identifier for the agreement
href:
type: string
description: Unique url identifying the agreement as a resource
agreementType:
type: string
description: The type of the agreement. For example commercial
description:
type: string
description: Narrative that explains the agreement and details about the it , such as why the agreement is taking place.
documentNumber:
type: integer
description: A reference number assigned to an Agreement that follows a prescribed numbering system.
initialDate:
type: string
format: date-time
description: Date at which the agreement was initialized
name:
type: string
description: A human-readable name for the agreement
statementOfIntent:
type: string
description: An overview and goals of the Agreement
status:
type: string
description: 'The current status of the agreement. Typical values are: in process, approved and rejected'
version:
type: string
description: A string identifying the version of the agreement
agreementAuthorization:
type: array
items:
$ref: '#/definitions/AgreementAuthorization'
agreementItem:
type: array
items:
$ref: '#/definitions/AgreementItem'
minItems: 1
agreementPeriod:
$ref: '#/definitions/TimePeriod'
description: The time period during which the Agreement is in effect.
agreementSpecification:
$ref: '#/definitions/AgreementSpecificationRef'
associatedAgreement:
type: array
items:
$ref: '#/definitions/AgreementRef'
characteristic:
type: array
items:
$ref: '#/definitions/Characteristic'
completionDate:
$ref: '#/definitions/TimePeriod'
description: Date at which the agreement is completed
engagedParty:
type: array
items:
$ref: '#/definitions/RelatedParty'
minItems: 1
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
RelatedParty:
type: object
description: Related Entity reference. A related party defines party or party role linked to a specific entity.
required:
- '@referredType'
- id
- name
properties:
id:
type: string
description: Unique identifier of a related entity.
href:
type: string
description: Reference of the related entity.
name:
type: string
description: Name of the related entity.
role:
type: string
description: Role played by the related party
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
AgreementTermOrCondition:
type: object
description: Aspects of the agreement not formally specified elsewhere in the agreement and that cannot be captured elsewhere in a formal notation, or automatically monitored and require a more human level of management.
properties:
id:
type: string
description: Unique number assigned for reference.
description:
type: string
description: Text that explains the term or condition of the agreement.
validFor:
$ref: '#/definitions/TimePeriod'
description: The period of time during which the term or condition of the agreement applies.
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name
AgreementItem:
type: object
description: A part of the agreement expressed in terms of a product offering and possibly including specific terms and conditions.
properties:
product:
type: array
items:
$ref: '#/definitions/ProductRef'
description: The list of products indirectly referred by this agreement item (since an agreement item refers primarily to product offerings)
productOffering:
type: array
items:
$ref: '#/definitions/ProductOfferingRef'
description: The list of product offerings referred by this agreement item
termOrCondition:
type: array
items:
$ref: '#/definitions/AgreementTermOrCondition'
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name