# SHACL Shapes generated by @inferal-relay/rdf-emitter

@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tsps: <https://relay.inferal.com/ontology/typespec/shapes/> .
@prefix tspv: <https://relay.inferal.com/ontology/typespec/versioning/> .
@prefix adm: <https://ontology.inferal.com/modules/advertising-measurement/> .
@prefix aent: <https://ontology.inferal.com/modules/advertising-entity/> .
@prefix chatgptads: <https://relay.inferal.com/ontology/chatgptads/> .
@prefix schema: <https://schema.org/> .

# Class hierarchy
chatgptads:AdAccountResource rdfs:subClassOf aent:AdAccount .
chatgptads:AdGroupItemBody rdfs:subClassOf aent:TargetingGroup .
chatgptads:BiddingConfigBody rdfs:subClassOf aent:BidStrategy .
chatgptads:AdItemBody rdfs:subClassOf aent:Ad .
chatgptads:CampaignItemBody rdfs:subClassOf aent:Campaign .

<https://relay.inferal.com/ontology/chatgptads/shapes> a tsps:ShapeGeneration ;
  tsps:shapeReferenceChainLimit 5 ;
  tsps:omittedShapeReferenceCount 0 .

# Shape for Account Integrity Review Body
chatgptads:AccountIntegrityReviewBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:AccountIntegrityReviewBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AccountIntegrityReviewBody/review> ;
    sh:name "review" ;
    sh:description "Contains the review associated with the account integrity review." ;
    sh:node chatgptads:ReviewBodyShape ;
    sh:class chatgptads:ReviewBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AccountIntegrityReviewBody/details> ;
    sh:name "details" ;
    sh:description "Contains details about the account integrity review." ;
    sh:node chatgptads:AccountIntegrityReviewDetailsBodyShape ;
    sh:class chatgptads:AccountIntegrityReviewDetailsBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Review Body
chatgptads:ReviewBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ReviewBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ReviewBody/status> ;
    sh:name "status" ;
    sh:description "Reports the status of the review." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "in_review" "rejected" "approved" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ReviewBody/reason> ;
    sh:name "reason" ;
    sh:description "Represents the reason associated with the review." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ReviewBody/screenshotUrl> ;
    sh:name "screenshot url" ;
    sh:description "Provides the URL of a screenshot associated with the review." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Account Integrity Review Details Body
chatgptads:AccountIntegrityReviewDetailsBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:AccountIntegrityReviewDetailsBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AccountIntegrityReviewDetailsBody/decision> ;
    sh:name "decision" ;
    sh:description "Records the decision for the account integrity review." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AccountIntegrityReviewDetailsBody/reason> ;
    sh:name "reason" ;
    sh:description "Records the reason associated with the account integrity review decision." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AccountIntegrityReviewDetailsBody/statusUpdatedAt> ;
    sh:name "status updated at" ;
    sh:description "Records when the account integrity review status was updated." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Account Creation Session Resource
chatgptads:AdAccountCreationSessionResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdAccountCreationSessionResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountCreationSessionResource/url> ;
    sh:name "url" ;
    sh:description "Provides the URL for the ad account creation session." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountCreationSessionResource/expiresIn> ;
    sh:name "expires in" ;
    sh:description "Indicates how long the ad account creation session remains available." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Account Resource
chatgptads:AdAccountResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdAccountResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountResource/id> ;
    sh:name "id" ;
    sh:description "Identifies the ad account." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountResource/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the ad account." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountResource/url> ;
    sh:name "url" ;
    sh:description "Provides the URL associated with the ad account." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountResource/previewUrl> ;
    sh:name "preview url" ;
    sh:description "Provides the preview URL associated with the ad account." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountResource/status> ;
    sh:name "status" ;
    sh:description "Indicates the status of the ad account." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountResource/timezone> ;
    sh:name "timezone" ;
    sh:description "Identifies the timezone associated with the ad account." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountResource/currencyCode> ;
    sh:name "currency code" ;
    sh:description "Identifies the currency used by the ad account." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountResource/negativeKeywords> ;
    sh:name "negative keywords" ;
    sh:description "Lists the negative keywords associated with the ad account." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountResource/review> ;
    sh:name "review" ;
    sh:description "Contains the review associated with the ad account." ;
    sh:node chatgptads:ReviewBodyShape ;
    sh:class chatgptads:ReviewBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountResource/accountIntegrityReview> ;
    sh:name "account integrity review" ;
    sh:description "Contains the account integrity review associated with the ad account." ;
    sh:node chatgptads:AccountIntegrityReviewBodyShape ;
    sh:class chatgptads:AccountIntegrityReviewBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Account Spend Limit Window Body
chatgptads:AdAccountSpendLimitWindowBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdAccountSpendLimitWindowBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/windowId> ;
    sh:name "window id" ;
    sh:description "Identifies the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/startDate> ;
    sh:name "start date" ;
    sh:description "Specifies the start date of the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/endDate> ;
    sh:name "end date" ;
    sh:description "Specifies the end date of the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/amountMicros> ;
    sh:name "amount micros" ;
    sh:description "Specifies the spend limit amount for the window in micros." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/ioId> ;
    sh:name "io id" ;
    sh:description "Identifies the insertion order associated with the spend limit window." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/status> ;
    sh:name "status" ;
    sh:description "Indicates the status of the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/canEdit> ;
    sh:name "can edit" ;
    sh:description "Indicates whether the ad account spend limit window can be edited." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/canEditStartDate> ;
    sh:name "can edit start date" ;
    sh:description "Indicates whether the spend limit window start date can be edited." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/canDelete> ;
    sh:name "can delete" ;
    sh:description "Indicates whether the ad account spend limit window can be deleted." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowBody/spentMicros> ;
    sh:name "spent micros" ;
    sh:description "Records the amount spent against the window in micros." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Account Spend Limit Windows List Resource
chatgptads:AdAccountSpendLimitWindowsListResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdAccountSpendLimitWindowsListResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowsListResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the object represented by the spend limit windows response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountSpendLimitWindowsListResource/data> ;
    sh:name "data" ;
    sh:description "Contains the ad account spend limit windows in the response." ;
    sh:node chatgptads:AdAccountSpendLimitWindowBodyShape ;
    sh:class chatgptads:AdAccountSpendLimitWindowBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Ad Accounts Resource
chatgptads:AdAccountsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdAccountsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the object represented by the ad accounts response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the ad accounts in the response." ;
    sh:node chatgptads:AdAccountResourceShape ;
    sh:class chatgptads:AdAccountResource ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first ad account in the response." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last ad account in the response." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAccountsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more ad accounts are available." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Appeal Body
chatgptads:AdAppealBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdAppealBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAppealBody/status> ;
    sh:name "status" ;
    sh:description "Indicates the status of the ad appeal." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "requested" "approved" "rejected" "superseded" "failed" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAppealBody/requestedAt> ;
    sh:name "requested at" ;
    sh:description "Records when the ad appeal was requested." ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdAppealBody/resolvedAt> ;
    sh:name "resolved at" ;
    sh:description "Records when the ad appeal was resolved." ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Group Item Body
chatgptads:AdGroupItemBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdGroupItemBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/id> ;
    sh:name "id" ;
    sh:description "Identifies the ad group." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/createdAt> ;
    sh:name "created at" ;
    sh:description "Records when the ad group was created." ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Records when the ad group was last updated." ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the ad group." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/description> ;
    sh:name "description" ;
    sh:description "Provides the description of the ad group." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/contextHints> ;
    sh:name "context hints" ;
    sh:description "Lists the context hints associated with the ad group." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/productSet> ;
    sh:name "product set" ;
    sh:description "Contains the product set associated with the ad group." ;
    sh:node chatgptads:ProductSetBodyShape ;
    sh:class chatgptads:ProductSetBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/status> ;
    sh:name "status" ;
    sh:description "Indicates the status of the ad group." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/biddingConfig> ;
    sh:name "bidding config" ;
    sh:description "Contains the bidding configuration for the ad group." ;
    sh:node chatgptads:BiddingConfigBodyShape ;
    sh:class chatgptads:BiddingConfigBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/landingPageConfiguration> ;
    sh:name "landing page configuration" ;
    sh:description "Contains the landing page configuration for the ad group." ;
    sh:node chatgptads:LandingPageConfigurationBodyShape ;
    sh:class chatgptads:LandingPageConfigurationBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupItemBody/servingIssues> ;
    sh:name "serving issues" ;
    sh:description "Lists the serving issues associated with the ad group." ;
    sh:node chatgptads:AdGroupServingIssueBodyShape ;
    sh:class chatgptads:AdGroupServingIssueBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Product Set Body
chatgptads:ProductSetBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductSetBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductSetBody/productFeedId> ;
    sh:name "product feed id" ;
    sh:description "Identifies the product feed used by the product set." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductSetBody/filters> ;
    sh:name "filters" ;
    sh:description "Defines the filters applied to the product set." ;
    sh:node chatgptads:ProductSetFilterBodyShape ;
    sh:class chatgptads:ProductSetFilterBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Product Set Filter Body
chatgptads:ProductSetFilterBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductSetFilterBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductSetFilterBody/field> ;
    sh:name "field" ;
    sh:description "Identifies the product field to which the filter applies." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductSetFilterBody/operator> ;
    sh:name "operator" ;
    sh:description "Specifies how the filter is applied to the selected product field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductSetFilterBody/values> ;
    sh:name "values" ;
    sh:description "Provides the values used by the product set filter." ;
    sh:datatype xsd:string ;
  ] .

# Shape for Bidding Config Body
chatgptads:BiddingConfigBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:BiddingConfigBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BiddingConfigBody/billingEventType> ;
    sh:name "billing event type" ;
    sh:description "Specifies the event type used for billing in the bidding configuration." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BiddingConfigBody/strategy> ;
    sh:name "strategy" ;
    sh:description "Specifies the bidding strategy." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "fixed_bid" "automated_bid" "maximize_clicks" "maximize_conversions" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BiddingConfigBody/maxBidMicros> ;
    sh:name "max bid micros" ;
    sh:description "Specifies the maximum bid amount in micros." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BiddingConfigBody/customAudienceBidMultipliers> ;
    sh:name "custom audience bid multipliers" ;
    sh:description "Lists the bid multipliers for custom audiences." ;
    sh:node chatgptads:CustomAudienceBidMultiplierBodyShape ;
    sh:class chatgptads:CustomAudienceBidMultiplierBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Custom Audience Bid Multiplier Body
chatgptads:CustomAudienceBidMultiplierBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CustomAudienceBidMultiplierBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceBidMultiplierBody/customAudienceId> ;
    sh:name "custom audience id" ;
    sh:description "Identifies the custom audience for the bid multiplier." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceBidMultiplierBody/bidMultiplierMicros> ;
    sh:name "bid multiplier micros" ;
    sh:description "Specifies the bid multiplier for the custom audience in micros." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Landing Page Configuration Body
chatgptads:LandingPageConfigurationBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:LandingPageConfigurationBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LandingPageConfigurationBody/queryStringTemplate> ;
    sh:name "query string template" ;
    sh:description "Represents the query-string template in the landing page configuration." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Group Serving Issue Body
chatgptads:AdGroupServingIssueBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdGroupServingIssueBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupServingIssueBody/code> ;
    sh:name "code" ;
    sh:description "Identifies the ad group serving issue." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "ad_account_suspended" "ad_account_brand_review_missing_favicon" "ad_account_brand_review_escalated_review" "ad_account_brand_review_rejected" "ad_account_brand_review_in_progress" "ad_account_payment_method_missing_or_unauthorized" "ad_account_threshold_payment_failed" "ad_account_persona_verification_not_approved" "ad_account_persona_verification_step_up_required" "campaign_not_active" "campaign_not_started" "campaign_ended" "ad_group_not_active" "ad_group_has_no_ads" "ad_group_has_no_serving_ready_ads" "campaign_budget_exhausted" "ad_account_budget_exhausted" "review_not_approved" "landing_page_crawl_issue" "ad_in_review" "partial_serving_review_not_approved" "partial_serving_landing_page_crawl_issue" "partial_serving_ad_in_review" ) ;
  ] .

# Shape for Ad Groups Resource
chatgptads:AdGroupsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdGroupsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the object represented by the ad groups response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the ad groups in the response." ;
    sh:node chatgptads:AdGroupItemBodyShape ;
    sh:class chatgptads:AdGroupItemBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first ad group in the response." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last ad group in the response." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdGroupsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more ad groups are available." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Image Crop Body
chatgptads:AdImageCropBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdImageCropBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdImageCropBody/x> ;
    sh:name "x" ;
    sh:description "Horizontal offset as a fraction of the EXIF-oriented source image (0-1)." ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdImageCropBody/y> ;
    sh:name "y" ;
    sh:description "Vertical offset as a fraction of the EXIF-oriented source image (0-1)." ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdImageCropBody/width> ;
    sh:name "width" ;
    sh:description "Crop width as a fraction of the EXIF-oriented source image (0-1)." ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdImageCropBody/height> ;
    sh:name "height" ;
    sh:description "Crop height as a fraction of the EXIF-oriented source image (0-1)." ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Image Crop Params
chatgptads:AdImageCropParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdImageCropParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdImageCropParams/x> ;
    sh:name "x" ;
    sh:description "Horizontal offset as a fraction of the EXIF-oriented source image (0-1)." ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdImageCropParams/y> ;
    sh:name "y" ;
    sh:description "Vertical offset as a fraction of the EXIF-oriented source image (0-1)." ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdImageCropParams/width> ;
    sh:name "width" ;
    sh:description "Crop width as a fraction of the EXIF-oriented source image (0-1)." ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdImageCropParams/height> ;
    sh:name "height" ;
    sh:description "Crop height as a fraction of the EXIF-oriented source image (0-1)." ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Item Body
chatgptads:AdItemBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdItemBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/id> ;
    sh:name "id" ;
    sh:description "Identifies the ad." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the ad." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/createdAt> ;
    sh:name "created at" ;
    sh:description "Records when the ad was created." ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Records when the ad was last updated." ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/creative> ;
    sh:name "creative" ;
    sh:description "Contains the creative for the ad." ;
    sh:node chatgptads:ConversationalBottomOtmSpecBodyShape ;
    sh:class chatgptads:ConversationalBottomOtmSpecBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/status> ;
    sh:name "status" ;
    sh:description "Indicates the status of the ad." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/reviewStatus> ;
    sh:name "review status" ;
    sh:description "Indicates the review status of the ad." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "in_review" "rejected" "approved" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/landingPageConfiguration> ;
    sh:name "landing page configuration" ;
    sh:description "Contains the landing page configuration for the ad." ;
    sh:node chatgptads:LandingPageConfigurationBodyShape ;
    sh:class chatgptads:LandingPageConfigurationBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/appeal> ;
    sh:name "appeal" ;
    sh:description "Contains the appeal associated with the ad." ;
    sh:node chatgptads:AdAppealBodyShape ;
    sh:class chatgptads:AdAppealBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/review> ;
    sh:name "review" ;
    sh:description "Contains the review associated with the ad." ;
    sh:node chatgptads:ReviewBodyShape ;
    sh:class chatgptads:ReviewBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdItemBody/servingIssues> ;
    sh:name "serving issues" ;
    sh:description "Lists the serving issues associated with the ad." ;
    sh:node chatgptads:AdServingIssueBodyShape ;
    sh:class chatgptads:AdServingIssueBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Conversational Bottom Otm Spec Body
chatgptads:ConversationalBottomOtmSpecBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ConversationalBottomOtmSpecBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversationalBottomOtmSpecBody/type> ;
    sh:name "type" ;
    sh:description "Indicates the ad specification type." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "chat_card" "product_ad_template" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversationalBottomOtmSpecBody/title> ;
    sh:name "title" ;
    sh:description "Provides the title of the conversational bottom specification." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversationalBottomOtmSpecBody/body> ;
    sh:name "body" ;
    sh:description "Provides the body content of the conversational bottom specification." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversationalBottomOtmSpecBody/price> ;
    sh:name "price" ;
    sh:description "Provides the price associated with the conversational bottom specification." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversationalBottomOtmSpecBody/fileId> ;
    sh:name "file id" ;
    sh:description "Identifies the file associated with the conversational bottom specification." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversationalBottomOtmSpecBody/imageUrl> ;
    sh:name "image url" ;
    sh:description "Provides the image URL associated with the conversational bottom specification." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversationalBottomOtmSpecBody/imageCrop> ;
    sh:name "image crop" ;
    sh:description "Normalized square crop for a chat_card creative, when present." ;
    sh:node chatgptads:AdImageCropBodyShape ;
    sh:class chatgptads:AdImageCropBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversationalBottomOtmSpecBody/targetUrl> ;
    sh:name "target url" ;
    sh:description "Provides the target URL for the conversational bottom specification." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Serving Issue Body
chatgptads:AdServingIssueBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdServingIssueBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdServingIssueBody/code> ;
    sh:name "code" ;
    sh:description "Identifies the ad serving issue." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "ad_account_suspended" "ad_account_brand_review_missing_favicon" "ad_account_brand_review_escalated_review" "ad_account_brand_review_rejected" "ad_account_brand_review_in_progress" "ad_account_payment_method_missing_or_unauthorized" "ad_account_threshold_payment_failed" "ad_account_persona_verification_not_approved" "ad_account_persona_verification_step_up_required" "campaign_not_active" "campaign_not_started" "campaign_ended" "ad_group_not_active" "campaign_budget_exhausted" "ad_account_budget_exhausted" "ad_not_active" "review_not_approved" "landing_page_crawl_issue" "ad_in_review" "ad_over_18_only" "policy_country_targeting_blocked" "policy_country_targeting_limited" "title_missing" "advertiser_name_missing" "image_or_favicon_missing" "target_url_invalid" "reserved_query_params_present" "product_feed_id_missing" ) ;
  ] .

# Shape for Ad Preview Item Body
chatgptads:AdPreviewItemBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdPreviewItemBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdPreviewItemBody/body> ;
    sh:name "body" ;
    sh:description "Contains the body of the ad preview." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Preview Resource
chatgptads:AdPreviewResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdPreviewResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdPreviewResource/data> ;
    sh:name "data" ;
    sh:description "Contains the ad previews in the response." ;
    sh:node chatgptads:AdPreviewItemBodyShape ;
    sh:class chatgptads:AdPreviewItemBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Ads OAuth Me Resource
chatgptads:AdsOAuthMeResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdsOAuthMeResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdsOAuthMeResource/id> ;
    sh:name "id" ;
    sh:description "Identifies the authenticated ads account or entity." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdsOAuthMeResource/displayName> ;
    sh:name "display name" ;
    sh:description "Provides the display name of the authenticated ads account or entity." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Ads Resource
chatgptads:AdsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:AdsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the object represented by the ads response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the ads in the response." ;
    sh:node chatgptads:AdItemBodyShape ;
    sh:class chatgptads:AdItemBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first ad in the response." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last ad in the response." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.AdsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more ads are available." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Archived Product Feed Resource
chatgptads:ArchivedProductFeedResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ArchivedProductFeedResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ArchivedProductFeedResource/feedId> ;
    sh:name "feed id" ;
    sh:description "Identifies the archived product feed." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ArchivedProductFeedResource/archivedAt> ;
    sh:name "archived at" ;
    sh:description "Records when the product feed was archived." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Bidding Config Params
chatgptads:BiddingConfigParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:BiddingConfigParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BiddingConfigParams/billingEventType> ;
    sh:name "billing event type" ;
    sh:description "Specifies the event type used for billing in the bidding parameters." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "impression" "click" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BiddingConfigParams/strategy> ;
    sh:name "strategy" ;
    sh:description "Specifies the bidding strategy in the bidding parameters." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "fixed_bid" "maximize_clicks" "maximize_conversions" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BiddingConfigParams/maxBidMicros> ;
    sh:name "max bid micros" ;
    sh:description "Represents the maximum bid amount in micros." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "1"^^xsd:long ;
    sh:maxInclusive "30400000000000"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BiddingConfigParams/customAudienceBidMultipliers> ;
    sh:name "custom audience bid multipliers" ;
    sh:description "Lists the bid multipliers for custom audiences in the bidding parameters." ;
    sh:node chatgptads:CustomAudienceBidMultiplierParamsShape ;
    sh:class chatgptads:CustomAudienceBidMultiplierParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Custom Audience Bid Multiplier Params
chatgptads:CustomAudienceBidMultiplierParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:CustomAudienceBidMultiplierParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceBidMultiplierParams/customAudienceId> ;
    sh:name "custom audience id" ;
    sh:description "Identifies the custom audience for the bid multiplier." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceBidMultiplierParams/bidMultiplierMicros> ;
    sh:name "bid multiplier micros" ;
    sh:description "Represents the custom-audience bid multiplier in micros." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minInclusive "100000"^^xsd:long ;
    sh:maxInclusive "10000000"^^xsd:long ;
  ] .

# Shape for Budget Body
chatgptads:BudgetBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:BudgetBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BudgetBody/lifetimeSpendLimitMicros> ;
    sh:name "lifetime spend limit micros" ;
    sh:description "Specifies the lifetime spend limit in micros." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BudgetBody/dailySpendLimitMicros> ;
    sh:name "daily spend limit micros" ;
    sh:description "Specifies the daily spend limit in micros." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Budget Params
chatgptads:BudgetParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:BudgetParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BudgetParams/lifetimeSpendLimitMicros> ;
    sh:name "lifetime spend limit micros" ;
    sh:description "Represents the lifetime spending limit in micros." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "1000000"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BudgetParams/dailySpendLimitMicros> ;
    sh:name "daily spend limit micros" ;
    sh:description "Represents the daily spending limit in micros." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "1000000"^^xsd:long ;
  ] .

# Shape for Business Agent Catalog Tool Body
chatgptads:BusinessAgentCatalogToolBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:BusinessAgentCatalogToolBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentCatalogToolBody/id> ;
    sh:name "id" ;
    sh:description "Identifies the business agent catalog tool." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentCatalogToolBody/type> ;
    sh:name "type" ;
    sh:description "Specifies the type of the business agent catalog tool." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentCatalogToolBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the business agent catalog tool." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentCatalogToolBody/description> ;
    sh:name "description" ;
    sh:description "Provides the description of the business agent catalog tool." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentCatalogToolBody/logoUrl> ;
    sh:name "logo url" ;
    sh:description "Provides the logo URL for the business agent catalog tool." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Business Agent Lead Form Selection Body
chatgptads:BusinessAgentLeadFormSelectionBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:BusinessAgentLeadFormSelectionBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentLeadFormSelectionBody/leadFormId> ;
    sh:name "lead form id" ;
    sh:description "Identifies the selected lead form." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentLeadFormSelectionBody/leadFormRevisionId> ;
    sh:name "lead form revision id" ;
    sh:description "Identifies the selected lead form revision." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Business Agent Lead Form Selection Body Param
chatgptads:BusinessAgentLeadFormSelectionBodyParamShape a sh:NodeShape ;
  sh:targetClass chatgptads:BusinessAgentLeadFormSelectionBodyParam ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentLeadFormSelectionBodyParam/leadFormId> ;
    sh:name "lead form id" ;
    sh:description "Identifies the lead form specified in the selection parameters." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentLeadFormSelectionBodyParam/leadFormRevisionId> ;
    sh:name "lead form revision id" ;
    sh:description "Identifies the lead form revision specified in the selection parameters." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] .

# Shape for Business Agent List Item Body
chatgptads:BusinessAgentListItemBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:BusinessAgentListItemBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/id> ;
    sh:name "id" ;
    sh:description "Identifies the business agent." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/name> ;
    sh:name "name" ;
    sh:description "Identifies the business agent." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/status> ;
    sh:name "status" ;
    sh:description "Indicates the business agent's status." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/description> ;
    sh:name "description" ;
    sh:description "Provides a description of the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/privacyPolicyUrl> ;
    sh:name "privacy policy url" ;
    sh:description "Provides the URL for the business agent's privacy policy." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/instructions> ;
    sh:name "instructions" ;
    sh:description "Provides instructions for the business agent." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/conversationStarters> ;
    sh:name "conversation starters" ;
    sh:description "Lists conversation starters for the business agent." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/tools> ;
    sh:name "tools" ;
    sh:description "Lists tools associated with the business agent." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/productFeedIds> ;
    sh:name "product feed ids" ;
    sh:description "Lists product feed identifiers associated with the business agent." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/leadFormId> ;
    sh:name "lead form id" ;
    sh:description "Identifies the lead form associated with the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/leadForm> ;
    sh:name "lead form" ;
    sh:description "Provides the business agent's lead form selection." ;
    sh:node chatgptads:BusinessAgentLeadFormSelectionBodyShape ;
    sh:class chatgptads:BusinessAgentLeadFormSelectionBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/createdAt> ;
    sh:name "created at" ;
    sh:description "Records when the business agent was created." ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Records when the business agent was last updated." ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/publishedAt> ;
    sh:name "published at" ;
    sh:description "Records when the business agent was published." ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/disabledAt> ;
    sh:name "disabled at" ;
    sh:description "Records when the business agent was disabled." ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentListItemBody/hasPendingChanges> ;
    sh:name "has pending changes" ;
    sh:description "Indicates whether the business agent has pending changes." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Business Agent Preview Message Body
chatgptads:BusinessAgentPreviewMessageBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:BusinessAgentPreviewMessageBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentPreviewMessageBody/role> ;
    sh:name "role" ;
    sh:description "Identifies the role associated with the preview message." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentPreviewMessageBody/content> ;
    sh:name "content" ;
    sh:description "Provides the content of the preview message." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Business Agent Preview Resource
chatgptads:BusinessAgentPreviewResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:BusinessAgentPreviewResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.BusinessAgentPreviewResource/message> ;
    sh:name "message" ;
    sh:description "Contains the business agent preview message." ;
    sh:node chatgptads:BusinessAgentPreviewMessageBodyShape ;
    sh:class chatgptads:BusinessAgentPreviewMessageBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Campaign Item Body
chatgptads:CampaignItemBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CampaignItemBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/id> ;
    sh:name "id" ;
    sh:description "Identifies the campaign." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/createdAt> ;
    sh:name "created at" ;
    sh:description "Records when the campaign was created." ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Records when the campaign was last updated." ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/name> ;
    sh:name "name" ;
    sh:description "Identifies the campaign by name." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/description> ;
    sh:name "description" ;
    sh:description "Provides a description of the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/status> ;
    sh:name "status" ;
    sh:description "Indicates the campaign's status." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/mode> ;
    sh:name "mode" ;
    sh:description "Indicates the campaign's mode." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/productFeedId> ;
    sh:name "product feed id" ;
    sh:description "Identifies the product feed associated with the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/businessAgentId> ;
    sh:name "business agent id" ;
    sh:description "Identifies the business agent associated with the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/startTime> ;
    sh:name "start time" ;
    sh:description "Records when the campaign starts." ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/endTime> ;
    sh:name "end time" ;
    sh:description "Records when the campaign ends." ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/budget> ;
    sh:name "budget" ;
    sh:description "Defines the campaign budget." ;
    sh:node chatgptads:BudgetBodyShape ;
    sh:class chatgptads:BudgetBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/biddingType> ;
    sh:name "bidding type" ;
    sh:description "Indicates the campaign's bidding type." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/objective> ;
    sh:name "objective" ;
    sh:description "Indicates the campaign's objective." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/billingEventType> ;
    sh:name "billing event type" ;
    sh:description "Indicates the event type used for campaign billing." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/conversionEventSettingIds> ;
    sh:name "conversion event setting ids" ;
    sh:description "Lists conversion event setting identifiers associated with the campaign." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/targeting> ;
    sh:name "targeting" ;
    sh:description "Defines the campaign's targeting configuration." ;
    sh:node chatgptads:TargetingBodyShape ;
    sh:class chatgptads:TargetingBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/landingPageConfiguration> ;
    sh:name "landing page configuration" ;
    sh:description "Defines the campaign's landing page configuration." ;
    sh:node chatgptads:LandingPageConfigurationBodyShape ;
    sh:class chatgptads:LandingPageConfigurationBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignItemBody/servingIssues> ;
    sh:name "serving issues" ;
    sh:description "Lists issues associated with serving the campaign." ;
    sh:node chatgptads:CampaignServingIssueBodyShape ;
    sh:class chatgptads:CampaignServingIssueBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Targeting Body
chatgptads:TargetingBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:TargetingBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingBody/locations> ;
    sh:name "locations" ;
    sh:description "Defines the geographic locations included in targeting." ;
    sh:node chatgptads:TargetingGeoLocationsBodyShape ;
    sh:class chatgptads:TargetingGeoLocationsBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingBody/excludedLocations> ;
    sh:name "excluded locations" ;
    sh:description "Defines the geographic locations excluded from targeting." ;
    sh:node chatgptads:TargetingGeoLocationsBodyShape ;
    sh:class chatgptads:TargetingGeoLocationsBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingBody/customAudiences> ;
    sh:name "custom audiences" ;
    sh:description "Defines the custom audiences included in targeting." ;
    sh:node chatgptads:TargetingCustomAudiencesBodyShape ;
    sh:class chatgptads:TargetingCustomAudiencesBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingBody/excludedCustomAudiences> ;
    sh:name "excluded custom audiences" ;
    sh:description "Defines the custom audiences excluded from targeting." ;
    sh:node chatgptads:TargetingCustomAudiencesBodyShape ;
    sh:class chatgptads:TargetingCustomAudiencesBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingBody/platforms> ;
    sh:name "platforms" ;
    sh:description "Defines the platforms included in targeting." ;
    sh:node chatgptads:TargetingPlatformsBodyShape ;
    sh:class chatgptads:TargetingPlatformsBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Targeting Geo Locations Body
chatgptads:TargetingGeoLocationsBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:TargetingGeoLocationsBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationsBody/countries> ;
    sh:name "countries" ;
    sh:description "Lists the countries included in the geographic targeting configuration." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationsBody/include> ;
    sh:name "include" ;
    sh:description "Lists the geographic locations included in the targeting configuration." ;
    sh:node chatgptads:TargetingGeoLocationBodyShape ;
    sh:class chatgptads:TargetingGeoLocationBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Targeting Geo Location Body
chatgptads:TargetingGeoLocationBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:TargetingGeoLocationBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationBody/id> ;
    sh:name "id" ;
    sh:description "Identifies a geographic location used in targeting." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of a geographic location used in targeting." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationBody/type> ;
    sh:name "type" ;
    sh:description "Specifies the type of a geographic location used in targeting." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationBody/countryCode> ;
    sh:name "country code" ;
    sh:description "Identifies the country associated with a geographic location." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationBody/regionCode> ;
    sh:name "region code" ;
    sh:description "Identifies the region associated with a geographic location." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Targeting Custom Audiences Body
chatgptads:TargetingCustomAudiencesBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:TargetingCustomAudiencesBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingCustomAudiencesBody/ids> ;
    sh:name "ids" ;
    sh:description "Lists the custom audience identifiers included in targeting." ;
    sh:datatype xsd:string ;
  ] .

# Shape for Targeting Platforms Body
chatgptads:TargetingPlatformsBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:TargetingPlatformsBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingPlatformsBody/included> ;
    sh:name "included" ;
    sh:description "Lists the platforms included in the targeting configuration." ;
    sh:datatype xsd:string ;
    sh:in ( "ios_app" "android_app" "web" ) ;
  ] .

# Shape for Campaign Serving Issue Body
chatgptads:CampaignServingIssueBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CampaignServingIssueBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignServingIssueBody/code> ;
    sh:name "code" ;
    sh:description "Identifies the campaign serving issue." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "ad_account_suspended" "ad_account_brand_review_missing_favicon" "ad_account_brand_review_escalated_review" "ad_account_brand_review_rejected" "ad_account_brand_review_in_progress" "ad_account_payment_method_missing_or_unauthorized" "ad_account_threshold_payment_failed" "ad_account_persona_verification_not_approved" "ad_account_persona_verification_step_up_required" "campaign_not_active" "campaign_not_started" "campaign_ended" "campaign_has_no_ad_groups" "campaign_has_no_serving_ready_ad_groups" "ad_group_not_active" "ad_group_has_no_ads" "campaign_budget_exhausted" "ad_account_budget_exhausted" "review_not_approved" "landing_page_crawl_issue" "ad_in_review" "partial_serving_review_not_approved" "partial_serving_landing_page_crawl_issue" "partial_serving_ad_in_review" ) ;
  ] .

# Shape for Campaigns Resource
chatgptads:CampaignsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:CampaignsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the resource object represented by the response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the campaigns returned in the response." ;
    sh:node chatgptads:CampaignItemBodyShape ;
    sh:class chatgptads:CampaignItemBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first campaign in the response." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last campaign in the response." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CampaignsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more campaigns are available." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Client Data Source Item Resource
chatgptads:ClientDataSourceItemResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ClientDataSourceItemResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ClientDataSourceItemResource/id> ;
    sh:name "id" ;
    sh:description "Identifies the client data source." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ClientDataSourceItemResource/name> ;
    sh:name "name" ;
    sh:description "Identifies the client data source by name." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ClientDataSourceItemResource/clientType> ;
    sh:name "client type" ;
    sh:description "Indicates the client data source type." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ClientDataSourceItemResource/pixelId> ;
    sh:name "pixel id" ;
    sh:description "Identifies the pixel associated with the client data source." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Conversion Api Key Resource
chatgptads:ConversionApiKeyResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ConversionApiKeyResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionApiKeyResource/name> ;
    sh:name "name" ;
    sh:description "Identifies the conversion API key by name." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionApiKeyResource/apiKey> ;
    sh:name "api key" ;
    sh:description "Provides the conversion API key." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Conversion Event Body
chatgptads:ConversionEventBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ConversionEventBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventBody/dataSourceId> ;
    sh:name "data source id" ;
    sh:description "Identifies the data source for the conversion event." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventBody/eventType> ;
    sh:name "event type" ;
    sh:description "Indicates the conversion event type." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventBody/customEventName> ;
    sh:name "custom event name" ;
    sh:description "Provides the custom name of the conversion event." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventBody/actionSource> ;
    sh:name "action source" ;
    sh:description "Indicates the source of the action associated with the conversion event." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventBody/eventTimestampMs> ;
    sh:name "event timestamp ms" ;
    sh:description "Advertiser event time as Unix epoch milliseconds." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventBody/receivedAtMs> ;
    sh:name "received at ms" ;
    sh:description "Wadi receive time as Unix epoch milliseconds." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventBody/apiChannel> ;
    sh:name "api channel" ;
    sh:description "Indicates the API channel for the conversion event." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventBody/eventDataJson> ;
    sh:name "event data json" ;
    sh:description "Provides the conversion event data in JSON form." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Conversion Event Setting Campaign Body
chatgptads:ConversionEventSettingCampaignBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ConversionEventSettingCampaignBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingCampaignBody/id> ;
    sh:name "id" ;
    sh:description "Identifies the campaign associated with the conversion event setting." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingCampaignBody/name> ;
    sh:name "name" ;
    sh:description "Identifies the associated campaign by name." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Conversion Event Setting Item Resource
chatgptads:ConversionEventSettingItemResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ConversionEventSettingItemResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/id> ;
    sh:name "id" ;
    sh:description "Identifies the conversion event setting." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/name> ;
    sh:name "name" ;
    sh:description "Identifies the conversion event setting by name." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/eventType> ;
    sh:name "event type" ;
    sh:description "Indicates the event type configured for the conversion event setting." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/customEventName> ;
    sh:name "custom event name" ;
    sh:description "Provides the custom event name configured for the conversion event setting." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/attributionWindowDays> ;
    sh:name "attribution window days" ;
    sh:description "Specifies the attribution window in days for the conversion event setting." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/adAccountId> ;
    sh:name "ad account id" ;
    sh:description "Identifies the ad account associated with the conversion event setting." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/sourceIds> ;
    sh:name "source ids" ;
    sh:description "Lists the identifiers of sources associated with the conversion event setting." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/sources> ;
    sh:name "sources" ;
    sh:description "Lists the sources associated with the conversion event setting." ;
    sh:node chatgptads:ConversionEventSettingSourceBodyShape ;
    sh:class chatgptads:ConversionEventSettingSourceBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/campaigns> ;
    sh:name "campaigns" ;
    sh:description "Lists the campaigns associated with the conversion event setting." ;
    sh:node chatgptads:ConversionEventSettingCampaignBodyShape ;
    sh:class chatgptads:ConversionEventSettingCampaignBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/archived> ;
    sh:name "archived" ;
    sh:description "Indicates whether the conversion event setting is archived." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingItemResource/version> ;
    sh:name "version" ;
    sh:description "Identifies the version of the conversion event setting." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Conversion Event Setting Source Body
chatgptads:ConversionEventSettingSourceBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ConversionEventSettingSourceBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingSourceBody/id> ;
    sh:name "id" ;
    sh:description "Identifies the conversion event setting source." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventSettingSourceBody/name> ;
    sh:name "name" ;
    sh:description "Identifies the conversion event setting source by name." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Conversion Events Resource
chatgptads:ConversionEventsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ConversionEventsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the resource object represented by the response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionEventsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the conversion events returned in the response." ;
    sh:node chatgptads:ConversionEventBodyShape ;
    sh:class chatgptads:ConversionEventBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Conversion Summary Row Body
chatgptads:ConversionSummaryRowBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ConversionSummaryRowBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionSummaryRowBody/entityId> ;
    sh:name "entity id" ;
    sh:description "Identifies the entity represented by the conversion summary row." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionSummaryRowBody/date> ;
    sh:name "date" ;
    sh:description "Specifies the date represented by the conversion summary row." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionSummaryRowBody/device> ;
    sh:name "device" ;
    sh:description "Identifies the device represented by the conversion summary row." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionSummaryRowBody/country> ;
    sh:name "country" ;
    sh:description "Identifies the country represented by the conversion summary row." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionSummaryRowBody/conversions> ;
    sh:name "conversions" ;
    sh:description "Reports the conversions represented by the summary row." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionSummaryRowBody/clickThroughConversions> ;
    sh:name "click through conversions" ;
    sh:description "Reports the click-through conversions represented by the summary row." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionSummaryRowBody/viewThroughConversions> ;
    sh:name "view through conversions" ;
    sh:description "Reports the view-through conversions represented by the summary row." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Conversion Summary Rows Resource
chatgptads:ConversionSummaryRowsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ConversionSummaryRowsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionSummaryRowsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the resource object represented by the response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionSummaryRowsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the conversion summary rows returned in the response." ;
    sh:node chatgptads:ConversionSummaryRowBodyShape ;
    sh:class chatgptads:ConversionSummaryRowBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ConversionSummaryRowsResource/count> ;
    sh:name "count" ;
    sh:description "Reports the number of conversion summary rows." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Create Ad Account Creation Session Body
chatgptads:CreateAdAccountCreationSessionBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateAdAccountCreationSessionBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdAccountCreationSessionBody/returnUri> ;
    sh:name "return uri" ;
    sh:description "Specifies the URI to return to for the ad account creation session." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 2048 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdAccountCreationSessionBody/state> ;
    sh:name "state" ;
    sh:description "Provides the state associated with the ad account creation session." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 512 ;
  ] .

# Shape for Create Ad Account Spend Limit Window Body
chatgptads:CreateAdAccountSpendLimitWindowBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateAdAccountSpendLimitWindowBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdAccountSpendLimitWindowBody/startDate> ;
    sh:name "start date" ;
    sh:description "Specifies the start date of the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 10 ;
    sh:maxLength 10 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdAccountSpendLimitWindowBody/endDate> ;
    sh:name "end date" ;
    sh:description "Specifies the end date of the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 10 ;
    sh:maxLength 10 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdAccountSpendLimitWindowBody/amountMicros> ;
    sh:name "amount micros" ;
    sh:description "Represents the amount for an ad account spend limit window in micros." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minInclusive "0"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdAccountSpendLimitWindowBody/name> ;
    sh:name "name" ;
    sh:description "Provides a name for the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdAccountSpendLimitWindowBody/ioId> ;
    sh:name "io id" ;
    sh:description "Identifies the IO associated with the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:maxLength 256 ;
  ] .

# Shape for Create Ad Body
chatgptads:CreateAdBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateAdBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdBody/adGroupId> ;
    sh:name "ad group id" ;
    sh:description "Identifies the ad group for the ad." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdBody/name> ;
    sh:name "name" ;
    sh:description "Identifies the ad by name." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 1000 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdBody/creative> ;
    sh:name "creative" ;
    sh:description "Defines the creative for the ad." ;
    sh:node chatgptads:CreateAdCreativeParamsShape ;
    sh:class chatgptads:CreateAdCreativeParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdBody/status> ;
    sh:name "status" ;
    sh:description "Specifies the ad's active or paused status." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "active" "paused" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdBody/landingPageConfiguration> ;
    sh:name "landing page configuration" ;
    sh:description "Specifies the landing page configuration for the ad." ;
    sh:node chatgptads:LandingPageConfigurationParamsShape ;
    sh:class chatgptads:LandingPageConfigurationParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Create Ad Creative Params
chatgptads:CreateAdCreativeParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateAdCreativeParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdCreativeParams/type> ;
    sh:name "type" ;
    sh:description "Specifies the type of ad creative." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "chat_card" "product_ad_template" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdCreativeParams/title> ;
    sh:name "title" ;
    sh:description "Provides the title of the ad creative." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 50 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdCreativeParams/body> ;
    sh:name "body" ;
    sh:description "Provides the body text of the ad creative." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:maxLength 100 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdCreativeParams/price> ;
    sh:name "price" ;
    sh:description "Provides the price associated with the ad creative." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:maxLength 100 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdCreativeParams/targetUrl> ;
    sh:name "target url" ;
    sh:description "Specifies the URL targeted by the ad creative." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:maxLength 2048 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdCreativeParams/fileId> ;
    sh:name "file id" ;
    sh:description "Identifies the file associated with the ad creative." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdCreativeParams/imageCrop> ;
    sh:name "image crop" ;
    sh:description "Optional normalized square crop for chat_card creatives. Requires file_id and is not supported for product_ad_template creatives." ;
    sh:node chatgptads:AdImageCropParamsShape ;
    sh:class chatgptads:AdImageCropParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Landing Page Configuration Params
chatgptads:LandingPageConfigurationParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:LandingPageConfigurationParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LandingPageConfigurationParams/queryStringTemplate> ;
    sh:name "query string template" ;
    sh:description "Specifies the query-string template for the landing page configuration." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Create Ad Group Body
chatgptads:CreateAdGroupBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateAdGroupBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdGroupBody/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Identifies the campaign containing the ad group." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdGroupBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the ad group." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 1000 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdGroupBody/description> ;
    sh:name "description" ;
    sh:description "Provides a description of the ad group." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdGroupBody/contextHints> ;
    sh:name "context hints" ;
    sh:description "Provides context hints for the ad group." ;
    sh:datatype xsd:string ;
    sh:maxCount 2000 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdGroupBody/status> ;
    sh:name "status" ;
    sh:description "Specifies whether the ad group is active or paused." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "active" "paused" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdGroupBody/biddingConfig> ;
    sh:name "bidding config" ;
    sh:description "Specifies the bidding configuration for the ad group." ;
    sh:node chatgptads:BiddingConfigParamsShape ;
    sh:class chatgptads:BiddingConfigParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdGroupBody/productSet> ;
    sh:name "product set" ;
    sh:description "Specifies the product set associated with the ad group." ;
    sh:node chatgptads:ProductSetParamsShape ;
    sh:class chatgptads:ProductSetParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateAdGroupBody/landingPageConfiguration> ;
    sh:name "landing page configuration" ;
    sh:description "Specifies the landing page configuration for the ad group." ;
    sh:node chatgptads:LandingPageConfigurationParamsShape ;
    sh:class chatgptads:LandingPageConfigurationParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Set Params
chatgptads:ProductSetParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductSetParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductSetParams/productFeedId> ;
    sh:name "product feed id" ;
    sh:description "Identifies the product feed used by the product set parameters." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductSetParams/filters> ;
    sh:name "filters" ;
    sh:description "Defines the filters for the product set parameters." ;
    sh:node chatgptads:ProductSetFilterParamsShape ;
    sh:class chatgptads:ProductSetFilterParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Product Set Filter Params
chatgptads:ProductSetFilterParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductSetFilterParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductSetFilterParams/field> ;
    sh:name "field" ;
    sh:description "Identifies the product field to which the filter parameter applies." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductSetFilterParams/operator> ;
    sh:name "operator" ;
    sh:description "Specifies how the filter parameter is applied to the selected product field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "in" "not_in" "gt" "gte" "lt" "lte" "contains" "not_contains" "starts_with" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductSetFilterParams/values> ;
    sh:name "values" ;
    sh:description "Provides the values used by the product set filter parameter." ;
    sh:datatype xsd:string ;
  ] .

# Shape for Create Api Key Body
chatgptads:CreateApiKeyBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateApiKeyBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateApiKeyBody/keyName> ;
    sh:name "key name" ;
    sh:description "Provides a name for the API key." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] .

# Shape for Create Api Key Resource
chatgptads:CreateApiKeyResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateApiKeyResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateApiKeyResource/apiOrganizationId> ;
    sh:name "api organization id" ;
    sh:description "Identifies the API organization associated with the API key resource." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateApiKeyResource/serviceAccountId> ;
    sh:name "service account id" ;
    sh:description "Identifies the service account associated with the API key resource." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateApiKeyResource/apiKey> ;
    sh:name "api key" ;
    sh:description "Provides the API key." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Create Business Agent Body
chatgptads:CreateBusinessAgentBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateBusinessAgentBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateBusinessAgentBody/description> ;
    sh:name "description" ;
    sh:description "Provides a description of the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 300 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateBusinessAgentBody/privacyPolicyUrl> ;
    sh:name "privacy policy url" ;
    sh:description "Specifies the URL of the business agent's privacy policy." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 2048 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateBusinessAgentBody/instructions> ;
    sh:name "instructions" ;
    sh:description "Provides instructions for the business agent." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 4000 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateBusinessAgentBody/conversationStarters> ;
    sh:name "conversation starters" ;
    sh:description "Provides suggested conversation starters for the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 12 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateBusinessAgentBody/productFeedIds> ;
    sh:name "product feed ids" ;
    sh:description "Identifies the product feeds associated with the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 50 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateBusinessAgentBody/connectorIds> ;
    sh:name "connector ids" ;
    sh:description "Identifies the connectors associated with the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 50 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateBusinessAgentBody/tools> ;
    sh:name "tools" ;
    sh:description "Specifies the tools associated with the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 50 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateBusinessAgentBody/leadForm> ;
    sh:name "lead form" ;
    sh:description "Specifies the lead form selection for the business agent." ;
    sh:node chatgptads:BusinessAgentLeadFormSelectionBodyParamShape ;
    sh:class chatgptads:BusinessAgentLeadFormSelectionBodyParam ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateBusinessAgentBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the business agent." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 50 ;
  ] .

# Shape for Create Campaign Body
chatgptads:CreateCampaignBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateCampaignBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the campaign." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 1000 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/description> ;
    sh:name "description" ;
    sh:description "Provides a description of the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/startTime> ;
    sh:name "start time" ;
    sh:description "Specifies when the campaign starts." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "946684800"^^xsd:long ;
    sh:maxInclusive "4102444800"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/endTime> ;
    sh:name "end time" ;
    sh:description "Specifies when the campaign ends." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "946684800"^^xsd:long ;
    sh:maxInclusive "4102444800"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/status> ;
    sh:name "status" ;
    sh:description "Specifies whether the campaign is active or paused." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "active" "paused" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/budget> ;
    sh:name "budget" ;
    sh:description "Specifies the budget for the campaign." ;
    sh:node chatgptads:BudgetParamsShape ;
    sh:class chatgptads:BudgetParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/biddingType> ;
    sh:name "bidding type" ;
    sh:description "Specifies the bidding type for the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "impressions" "clicks" "conversions" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/objective> ;
    sh:name "objective" ;
    sh:description "Specifies the objective of the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "reach" "clicks" "conversions" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/billingEventType> ;
    sh:name "billing event type" ;
    sh:description "Specifies the billing event type for the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "impression" "click" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/mode> ;
    sh:name "mode" ;
    sh:description "Specifies the mode of the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "product_feed" "business_agent" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/productFeedId> ;
    sh:name "product feed id" ;
    sh:description "Identifies the product feed associated with the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/businessAgentId> ;
    sh:name "business agent id" ;
    sh:description "Identifies the business agent associated with the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/targeting> ;
    sh:name "targeting" ;
    sh:description "Specifies the targeting configuration for the campaign." ;
    sh:node chatgptads:TargetingParamsShape ;
    sh:class chatgptads:TargetingParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/landingPageConfiguration> ;
    sh:name "landing page configuration" ;
    sh:description "Specifies the landing page configuration for the campaign." ;
    sh:node chatgptads:LandingPageConfigurationParamsShape ;
    sh:class chatgptads:LandingPageConfigurationParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCampaignBody/conversionEventSettingIds> ;
    sh:name "conversion event setting ids" ;
    sh:description "Identifies the conversion event settings associated with the campaign." ;
    sh:datatype xsd:string ;
  ] .

# Shape for Targeting Params
chatgptads:TargetingParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:TargetingParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingParams/locations> ;
    sh:name "locations" ;
    sh:description "Defines the geographic locations supplied for targeting." ;
    sh:node chatgptads:TargetingGeoLocationsParamsShape ;
    sh:class chatgptads:TargetingGeoLocationsParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingParams/excludedLocations> ;
    sh:name "excluded locations" ;
    sh:description "Defines the geographic locations supplied for exclusion from targeting." ;
    sh:node chatgptads:TargetingGeoLocationsParamsShape ;
    sh:class chatgptads:TargetingGeoLocationsParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingParams/customAudiences> ;
    sh:name "custom audiences" ;
    sh:description "Defines the custom audiences supplied for targeting." ;
    sh:node chatgptads:TargetingCustomAudiencesParamsShape ;
    sh:class chatgptads:TargetingCustomAudiencesParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingParams/excludedCustomAudiences> ;
    sh:name "excluded custom audiences" ;
    sh:description "Defines the custom audiences supplied for exclusion from targeting." ;
    sh:node chatgptads:TargetingCustomAudiencesParamsShape ;
    sh:class chatgptads:TargetingCustomAudiencesParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingParams/platforms> ;
    sh:name "platforms" ;
    sh:description "Defines the platforms supplied for targeting." ;
    sh:node chatgptads:TargetingPlatformsParamsShape ;
    sh:class chatgptads:TargetingPlatformsParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Targeting Geo Locations Params
chatgptads:TargetingGeoLocationsParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:TargetingGeoLocationsParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationsParams/countries> ;
    sh:name "countries" ;
    sh:description "Lists the countries supplied as geographic targeting parameters." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationsParams/include> ;
    sh:name "include" ;
    sh:description "Lists the geographic locations supplied as targeting parameters." ;
    sh:node chatgptads:TargetingGeoLocationParamsShape ;
    sh:class chatgptads:TargetingGeoLocationParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 2500 ;
  ] .

# Shape for Targeting Geo Location Params
chatgptads:TargetingGeoLocationParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:TargetingGeoLocationParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationParams/id> ;
    sh:name "id" ;
    sh:description "Identifies a geographic location supplied as a targeting parameter." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationParams/name> ;
    sh:name "name" ;
    sh:description "Provides the name of a geographic location supplied as a targeting parameter." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationParams/type> ;
    sh:name "type" ;
    sh:description "Specifies the type of a geographic location supplied as a targeting parameter." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationParams/countryCode> ;
    sh:name "country code" ;
    sh:description "Identifies the country associated with a geographic targeting parameter." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingGeoLocationParams/regionCode> ;
    sh:name "region code" ;
    sh:description "Identifies the region associated with a geographic targeting parameter." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Targeting Custom Audiences Params
chatgptads:TargetingCustomAudiencesParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:TargetingCustomAudiencesParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingCustomAudiencesParams/ids> ;
    sh:name "ids" ;
    sh:description "Lists the custom audience identifiers supplied as targeting parameters." ;
    sh:datatype xsd:string ;
  ] .

# Shape for Targeting Platforms Params
chatgptads:TargetingPlatformsParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:TargetingPlatformsParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TargetingPlatformsParams/included> ;
    sh:name "included" ;
    sh:description "Lists the platforms supplied for inclusion in targeting." ;
    sh:datatype xsd:string ;
    sh:in ( "ios_app" "android_app" "web" ) ;
  ] .

# Shape for Create Conversion Api Key Body
chatgptads:CreateConversionApiKeyBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateConversionApiKeyBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateConversionApiKeyBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the conversion API key." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 1000 ;
    sh:pattern "^.*\\S.*$" ;
  ] .

# Shape for Create Conversion Event Setting Body
chatgptads:CreateConversionEventSettingBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateConversionEventSettingBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateConversionEventSettingBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the conversion event setting." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateConversionEventSettingBody/eventType> ;
    sh:name "event type" ;
    sh:description "Specifies the type of conversion event." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateConversionEventSettingBody/customEventName> ;
    sh:name "custom event name" ;
    sh:description "Provides the name of the custom conversion event." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateConversionEventSettingBody/attributionWindowDays> ;
    sh:name "attribution window days" ;
    sh:description "Specifies the attribution window for the conversion event setting in days." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateConversionEventSettingBody/sourceIds> ;
    sh:name "source ids" ;
    sh:description "Identifies the conversion sources associated with the event setting." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
  ] .

# Shape for Create Conversion Source Body
chatgptads:CreateConversionSourceBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateConversionSourceBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateConversionSourceBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the conversion source." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 1000 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateConversionSourceBody/clientType> ;
    sh:name "client type" ;
    sh:description "Specifies the client type of the conversion source." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:hasValue "web" ;
  ] .

# Shape for Create Custom Audience Body
chatgptads:CreateCustomAudienceBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateCustomAudienceBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCustomAudienceBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the custom audience." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 1000 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCustomAudienceBody/description> ;
    sh:name "description" ;
    sh:description "Provides a description of the custom audience." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCustomAudienceBody/fileId> ;
    sh:name "file id" ;
    sh:description "Uploaded file ID. Omit all file fields to create an empty audience when small audiences are enabled for the account." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCustomAudienceBody/identifierType> ;
    sh:name "identifier type" ;
    sh:description "Specifies the identifier type used by the custom audience." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "email" "phone" "email_sha256" "phone_number_sha256" "gaid" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCustomAudienceBody/identifierResolution> ;
    sh:name "identifier resolution" ;
    sh:description "Specifies the identifier resolution used by the custom audience." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "auto" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCustomAudienceBody/filename> ;
    sh:name "filename" ;
    sh:description "Provides the name of the file associated with the custom audience." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 255 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCustomAudienceBody/mimetype> ;
    sh:name "mimetype" ;
    sh:description "Specifies the media type of the file associated with the custom audience." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 255 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateCustomAudienceBody/fileSize> ;
    sh:name "file size" ;
    sh:description "Specifies the size of the file associated with the custom audience." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "1"^^xsd:long ;
    sh:maxInclusive "500000000"^^xsd:long ;
  ] .

# Shape for Created Lead Sync Subscription Resource
chatgptads:CreatedLeadSyncSubscriptionResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreatedLeadSyncSubscriptionResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatedLeadSyncSubscriptionResource/subscriptionId> ;
    sh:name "subscription id" ;
    sh:description "Identifies the created lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatedLeadSyncSubscriptionResource/object> ;
    sh:name "object" ;
    sh:description "Specifies the object designation of the created lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatedLeadSyncSubscriptionResource/status> ;
    sh:name "status" ;
    sh:description "Specifies the status of the created lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatedLeadSyncSubscriptionResource/signingSecret> ;
    sh:name "signing secret" ;
    sh:description "Provides the signing secret for the created lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Create Lead Form Body
chatgptads:CreateLeadFormBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateLeadFormBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadFormBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the lead form." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadFormBody/privacyPolicyUrl> ;
    sh:name "privacy policy url" ;
    sh:description "Specifies the URL of the lead form's privacy policy." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadFormBody/fields> ;
    sh:name "fields" ;
    sh:description "Specifies the fields included in the lead form." ;
    sh:node chatgptads:CreateLeadFormFieldBodyParamShape ;
    sh:class chatgptads:CreateLeadFormFieldBodyParam ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 3 ;
    sh:maxCount 5 ;
  ] .

# Shape for Create Lead Form Field Body Param
chatgptads:CreateLeadFormFieldBodyParamShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateLeadFormFieldBodyParam ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadFormFieldBodyParam/fieldId> ;
    sh:name "field id" ;
    sh:description "Identifies the lead form field." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 128 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadFormFieldBodyParam/fieldType> ;
    sh:name "field type" ;
    sh:description "Specifies the type of the lead form field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "text" "choice" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadFormFieldBodyParam/label> ;
    sh:name "label" ;
    sh:description "Provides the label displayed for the lead form field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadFormFieldBodyParam/required> ;
    sh:name "required" ;
    sh:description "Specifies whether the lead form field is required." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadFormFieldBodyParam/options> ;
    sh:name "options" ;
    sh:description "Specifies the options available for the lead form field." ;
    sh:node chatgptads:CreateLeadFormOptionBodyParamShape ;
    sh:class chatgptads:CreateLeadFormOptionBodyParam ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 100 ;
  ] .

# Shape for Create Lead Form Option Body Param
chatgptads:CreateLeadFormOptionBodyParamShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateLeadFormOptionBodyParam ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadFormOptionBodyParam/id> ;
    sh:name "id" ;
    sh:description "Identifies the lead form option." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 128 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadFormOptionBodyParam/label> ;
    sh:name "label" ;
    sh:description "Provides the label for the lead form option." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] .

# Shape for Create Lead Sync Subscription Body
chatgptads:CreateLeadSyncSubscriptionBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateLeadSyncSubscriptionBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadSyncSubscriptionBody/adAccountId> ;
    sh:name "ad account id" ;
    sh:description "Identifies the ad account for the lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadSyncSubscriptionBody/destinationUrl> ;
    sh:name "destination url" ;
    sh:description "Specifies the destination URL for the lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 2048 ;
    sh:pattern "^https://" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateLeadSyncSubscriptionBody/signingSecret> ;
    sh:name "signing secret" ;
    sh:description "Provides the signing secret for the lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 50 ;
    sh:maxLength 50 ;
    sh:pattern "^whsec_[A-Za-z0-9+/]{42}[AEIMQUYcgkosw048]=$" ;
  ] .

# Shape for Create Partner Data Upload Body
chatgptads:CreatePartnerDataUploadBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreatePartnerDataUploadBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadBody/dataType> ;
    sh:name "data type" ;
    sh:description "Specifies the type of partner data being uploaded." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:hasValue "identity_graph" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadBody/snapshotDate> ;
    sh:name "snapshot date" ;
    sh:description "Specifies the date of the partner data snapshot." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 10 ;
    sh:maxLength 10 ;
    sh:pattern "^\\d{4}-\\d{2}-\\d{2}$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadBody/fileName> ;
    sh:name "file name" ;
    sh:description "Provides the name of the partner data file." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 200 ;
    sh:pattern "^[A-Za-z0-9][A-Za-z0-9._-]*\\.parquet$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadBody/fileSizeBytes> ;
    sh:name "file size bytes" ;
    sh:description "Specifies the size of the partner data file in bytes." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minInclusive "1"^^xsd:long ;
    sh:maxInclusive "107374182400"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadBody/sha256> ;
    sh:name "sha256" ;
    sh:description "Provides the SHA-256 value for the partner data file." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:pattern "^[0-9a-f]{64}$" ;
  ] .

# Shape for Create Partner Data Upload Resource
chatgptads:CreatePartnerDataUploadResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreatePartnerDataUploadResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/uploadId> ;
    sh:name "upload id" ;
    sh:description "Identifies the partner data upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/dataType> ;
    sh:name "data type" ;
    sh:description "Specifies the type of partner data being uploaded." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/snapshotDate> ;
    sh:name "snapshot date" ;
    sh:description "Specifies the date of the partner data snapshot." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/fileName> ;
    sh:name "file name" ;
    sh:description "Provides the name of the partner data file." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/fileSizeBytes> ;
    sh:name "file size bytes" ;
    sh:description "Specifies the size of the partner data file in bytes." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/sha256> ;
    sh:name "sha256" ;
    sh:description "Provides the SHA-256 value for the partner data file." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/status> ;
    sh:name "status" ;
    sh:description "Specifies the status of the partner data upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/createdAt> ;
    sh:name "created at" ;
    sh:description "Specifies when the partner data upload was created." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/completedAt> ;
    sh:name "completed at" ;
    sh:description "Specifies when the partner data upload was completed." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/uploadUrl> ;
    sh:name "upload url" ;
    sh:description "Specifies the URL used for the partner data upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/uploadUrlExpiresAt> ;
    sh:name "upload url expires at" ;
    sh:description "Specifies when the partner data upload URL expires." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/uploadMethod> ;
    sh:name "upload method" ;
    sh:description "Specifies the method used for the partner data upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders> ;
    sh:name "upload headers" ;
    sh:description "Provides the headers used for the partner data upload." ;
    sh:node <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Create Product Feed Body
chatgptads:CreateProductFeedBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateProductFeedBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateProductFeedBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the product feed." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:maxLength 255 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateProductFeedBody/countries> ;
    sh:name "countries" ;
    sh:description "Specifies the countries associated with the product feed." ;
    sh:datatype xsd:string ;
  ] .

# Shape for Create Test Lead Submission Body
chatgptads:CreateTestLeadSubmissionBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CreateTestLeadSubmissionBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreateTestLeadSubmissionBody/expectedPublishedRevisionId> ;
    sh:name "expected published revision id" ;
    sh:description "Identifies the published revision expected for the test lead submission." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] .

# Shape for Custom Audience Inline Identifier Params
chatgptads:CustomAudienceInlineIdentifierParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:CustomAudienceInlineIdentifierParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceInlineIdentifierParams/identifierType> ;
    sh:name "identifier type" ;
    sh:description "Identifies the type of identifier supplied for the custom audience." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "email" "phone" "email_sha256" "phone_number_sha256" "gaid" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceInlineIdentifierParams/identifier> ;
    sh:name "identifier" ;
    sh:description "Provides the identifier used for the custom audience." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] .

# Shape for Custom Audience Item Body
chatgptads:CustomAudienceItemBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CustomAudienceItemBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/id> ;
    sh:name "id" ;
    sh:description "Identifies the custom audience." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/createdAt> ;
    sh:name "created at" ;
    sh:description "Records when the custom audience was created." ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Records when the custom audience was last updated." ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the custom audience." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/description> ;
    sh:name "description" ;
    sh:description "Provides a description of the custom audience." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/status> ;
    sh:name "status" ;
    sh:description "Reports the current status of the custom audience." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/hashSpecVersion> ;
    sh:name "hash spec version" ;
    sh:description "Identifies the hash specification version associated with the custom audience." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/uploadedIdentifierCountRange> ;
    sh:name "uploaded identifier count range" ;
    sh:description "Reports the range containing the number of identifiers uploaded to the custom audience." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/matchedIdentifierCountRange> ;
    sh:name "matched identifier count range" ;
    sh:description "Reports the range containing the number of uploaded identifiers that matched." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/matchedUserCountRange> ;
    sh:name "matched user count range" ;
    sh:description "Reports the range containing the number of matched users." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/invalidIdentifierCountRange> ;
    sh:name "invalid identifier count range" ;
    sh:description "Reports the range containing the number of invalid identifiers." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceItemBody/membershipRevision> ;
    sh:name "membership revision" ;
    sh:description "Identifies the revision of the custom audience membership." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Custom Audience Membership Mutation Body
chatgptads:CustomAudienceMembershipMutationBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CustomAudienceMembershipMutationBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceMembershipMutationBody/fileId> ;
    sh:name "file id" ;
    sh:description "Identifies the file associated with the membership mutation." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceMembershipMutationBody/identifiers> ;
    sh:name "identifiers" ;
    sh:description "Provides the identifiers included in the membership mutation." ;
    sh:node chatgptads:CustomAudienceInlineIdentifierParamsShape ;
    sh:class chatgptads:CustomAudienceInlineIdentifierParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceMembershipMutationBody/identifierType> ;
    sh:name "identifier type" ;
    sh:description "Identifies the type of identifiers used in the membership mutation." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "email" "phone" "email_sha256" "phone_number_sha256" "gaid" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceMembershipMutationBody/identifierResolution> ;
    sh:name "identifier resolution" ;
    sh:description "Specifies how identifiers in the membership mutation are resolved." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "auto" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceMembershipMutationBody/expectedRevision> ;
    sh:name "expected revision" ;
    sh:description "Specifies the membership revision expected for the mutation." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "0"^^xsd:long ;
  ] .

# Shape for Custom Audience Membership Operation Body
chatgptads:CustomAudienceMembershipOperationBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:CustomAudienceMembershipOperationBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceMembershipOperationBody/operationId> ;
    sh:name "operation id" ;
    sh:description "Identifies the custom audience membership operation." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceMembershipOperationBody/customAudienceId> ;
    sh:name "custom audience id" ;
    sh:description "Identifies the custom audience targeted by the membership operation." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceMembershipOperationBody/operation> ;
    sh:name "operation" ;
    sh:description "Reports the operation performed on custom audience membership." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudienceMembershipOperationBody/status> ;
    sh:name "status" ;
    sh:description "Reports the status of the custom audience membership operation." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Custom Audiences Resource
chatgptads:CustomAudiencesResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:CustomAudiencesResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudiencesResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the kind of resource returned for the custom audiences response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudiencesResource/data> ;
    sh:name "data" ;
    sh:description "Contains the custom audiences returned in the response." ;
    sh:node chatgptads:CustomAudienceItemBodyShape ;
    sh:class chatgptads:CustomAudienceItemBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudiencesResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first custom audience in the returned results." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudiencesResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last custom audience in the returned results." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudiencesResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more custom audiences are available beyond the returned results." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CustomAudiencesResource/policyRevision> ;
    sh:name "policy revision" ;
    sh:description "Identifies the policy revision associated with the custom audiences response." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Delete Ad Account Spend Limit Window Resource
chatgptads:DeleteAdAccountSpendLimitWindowResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:DeleteAdAccountSpendLimitWindowResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.DeleteAdAccountSpendLimitWindowResource/windowId> ;
    sh:name "window id" ;
    sh:description "Identifies the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.DeleteAdAccountSpendLimitWindowResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the kind of resource returned for the deleted spend limit window." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.DeleteAdAccountSpendLimitWindowResource/deleted> ;
    sh:name "deleted" ;
    sh:description "Indicates whether the spend limit window was deleted." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Deleted Lead Sync Subscription Resource
chatgptads:DeletedLeadSyncSubscriptionResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:DeletedLeadSyncSubscriptionResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.DeletedLeadSyncSubscriptionResource/subscriptionId> ;
    sh:name "subscription id" ;
    sh:description "Identifies the deleted lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.DeletedLeadSyncSubscriptionResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the kind of resource returned for the deleted lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.DeletedLeadSyncSubscriptionResource/status> ;
    sh:name "status" ;
    sh:description "Reports the status of the deleted lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.DeletedLeadSyncSubscriptionResource/deleted> ;
    sh:name "deleted" ;
    sh:description "Indicates whether the lead synchronization subscription was deleted." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Geo Lookup Entry
chatgptads:GeoLookupEntryShape a sh:NodeShape ;
  sh:targetClass chatgptads:GeoLookupEntry ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupEntry/id> ;
    sh:name "id" ;
    sh:description "Identifies the geographic lookup entry." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupEntry/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the geographic lookup entry." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupEntry/canonicalName> ;
    sh:name "canonical name" ;
    sh:description "Provides the canonical name of the geographic lookup entry." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupEntry/regionCode> ;
    sh:name "region code" ;
    sh:description "Provides the region code for the geographic lookup entry." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupEntry/type> ;
    sh:name "type" ;
    sh:description "Identifies the type of geographic lookup entry." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupEntry/countryCode> ;
    sh:name "country code" ;
    sh:description "Provides the country code for the geographic lookup entry." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupEntry/parentId> ;
    sh:name "parent id" ;
    sh:description "Identifies the parent geographic entry." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupEntry/parentCountry> ;
    sh:name "parent country" ;
    sh:description "Provides the country of the parent geographic entry." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Geo Lookup Search Resource
chatgptads:GeoLookupSearchResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:GeoLookupSearchResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupSearchResource/query> ;
    sh:name "query" ;
    sh:description "Provides the query used for the geographic lookup search." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupSearchResource/count> ;
    sh:name "count" ;
    sh:description "Reports the number of geographic lookup results." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.GeoLookupSearchResource/results> ;
    sh:name "results" ;
    sh:description "Contains the geographic entries matching the lookup search." ;
    sh:node chatgptads:GeoLookupEntryShape ;
    sh:class chatgptads:GeoLookupEntry ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Insight Item Body
chatgptads:InsightItemBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:InsightItemBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/id> ;
    sh:name "id" ;
    sh:description "Identifies the insight item." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/startTime> ;
    sh:name "start time" ;
    sh:description "Marks the start of the insight item's reporting period." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/endTime> ;
    sh:name "end time" ;
    sh:description "Marks the end of the insight item's reporting period." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/readableTime> ;
    sh:name "readable time" ;
    sh:description "Provides a readable representation of the insight item's time period." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/timezone> ;
    sh:name "timezone" ;
    sh:description "Identifies the timezone associated with the insight item's time period." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/impressions> ;
    sh:name "impressions" ;
    sh:description "Counts occurrences of the ad being shown." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/clicks> ;
    sh:name "clicks" ;
    sh:description "Counts occurrences of a click." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/spend> ;
    sh:name "spend" ;
    sh:description "Represents spend for the insight item, with no scale specified." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/attributedSalesAmount> ;
    sh:name "attributed sales amount" ;
    sh:description "Deprecated. Total value of attributed `order_created` and `subscription_created` events, normalized to the ad account currency. Negative event values are treated as zero. Returns 0 when there are no attributed events and null when at least one attributed event does not have a value that can be normalized to the ad account currency. Rounded to two decimal places. Use `order_created_attributed_sales` instead. Scheduled for removal on August 17, 2026." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/attributedSalesCount> ;
    sh:name "attributed sales count" ;
    sh:description "Deprecated. Number of attributed `order_created` and `subscription_created` events, including events without a reportable value. This field has no replacement. Scheduled for removal on August 17, 2026." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/attributedSalesCurrency> ;
    sh:name "attributed sales currency" ;
    sh:description "Deprecated. ISO 4217 currency code for `attributed_sales_amount`. This is the ad account currency and is returned even when `attributed_sales_amount` is null. Use `order_created_attributed_sales_currency` instead. Scheduled for removal on August 17, 2026." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/roas> ;
    sh:name "roas" ;
    sh:description "Deprecated. Return on ad spend from attributed `order_created` and `subscription_created` events, calculated using the unrounded attributed sales value divided by spend for the same insight row. Rounded to at most four decimal places. Returns null when attributed sales are unavailable or spend is not greater than zero. Use `order_created_roas` instead. Scheduled for removal on August 17, 2026." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/orderCreatedAttributedSales> ;
    sh:name "order created attributed sales" ;
    sh:description "Total value of attributed `order_created` events, normalized to the ad account currency. Negative event values are treated as zero. Returns 0 when there are no attributed orders and null when at least one attributed order does not have a value that can be normalized to the ad account currency. Rounded to two decimal places." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/orderCreatedAttributedSalesCurrency> ;
    sh:name "order created attributed sales currency" ;
    sh:description "ISO 4217 currency code for `order_created_attributed_sales`. This is the ad account currency and is returned even when `order_created_attributed_sales` is null." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/orderCreatedRoas> ;
    sh:name "order created roas" ;
    sh:description "Return on ad spend from attributed `order_created` events, calculated using the unrounded order-created attributed sales value divided by spend for the same insight row. Rounded to at most four decimal places. Returns null when attributed sales are unavailable or spend is not greater than zero." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/cpa> ;
    sh:name "cpa" ;
    sh:description "Represents the insight item's cost per acquisition, with no scale specified." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/postClickCvr> ;
    sh:name "post click cvr" ;
    sh:description "Reports the post-click conversion rate, with its numerical encoding not specified." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/ctr> ;
    sh:name "ctr" ;
    sh:description "Reports the click-through rate, with its numerical encoding not specified." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/cpc> ;
    sh:name "cpc" ;
    sh:description "Represents the insight item's cost per click, with no scale specified." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/cpm> ;
    sh:name "cpm" ;
    sh:description "Represents the insight item's cost per thousand impressions, with no scale specified." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountImpressions> ;
    sh:name "ad account impressions" ;
    sh:description "Reports impressions attributed to the ad account." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountClicks> ;
    sh:name "ad account clicks" ;
    sh:description "Reports clicks attributed to the ad account." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountSpend> ;
    sh:name "ad account spend" ;
    sh:description "Reports spend attributed to the ad account." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountCtr> ;
    sh:name "ad account ctr" ;
    sh:description "Reports the ad account click-through rate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountCpc> ;
    sh:name "ad account cpc" ;
    sh:description "Reports the ad account cost per click." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountCpm> ;
    sh:name "ad account cpm" ;
    sh:description "Reports the ad account cost per thousand impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignImpressions> ;
    sh:name "campaign impressions" ;
    sh:description "Reports impressions attributed to the campaign." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignClicks> ;
    sh:name "campaign clicks" ;
    sh:description "Reports clicks attributed to the campaign." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignSpend> ;
    sh:name "campaign spend" ;
    sh:description "Reports spend attributed to the campaign." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignCtr> ;
    sh:name "campaign ctr" ;
    sh:description "Reports the campaign click-through rate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignCpc> ;
    sh:name "campaign cpc" ;
    sh:description "Reports the campaign cost per click." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignCpm> ;
    sh:name "campaign cpm" ;
    sh:description "Reports the campaign cost per thousand impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adGroupImpressions> ;
    sh:name "ad group impressions" ;
    sh:description "Reports impressions attributed to the ad group." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adGroupClicks> ;
    sh:name "ad group clicks" ;
    sh:description "Reports clicks attributed to the ad group." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adGroupSpend> ;
    sh:name "ad group spend" ;
    sh:description "Reports spend attributed to the ad group." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adGroupCtr> ;
    sh:name "ad group ctr" ;
    sh:description "Reports the ad group click-through rate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adGroupCpc> ;
    sh:name "ad group cpc" ;
    sh:description "Reports the ad group cost per click." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adGroupCpm> ;
    sh:name "ad group cpm" ;
    sh:description "Reports the ad group cost per thousand impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adImpressions> ;
    sh:name "ad impressions" ;
    sh:description "Reports impressions attributed to the ad." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adClicks> ;
    sh:name "ad clicks" ;
    sh:description "Reports clicks attributed to the ad." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adSpend> ;
    sh:name "ad spend" ;
    sh:description "Reports spend attributed to the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adCtr> ;
    sh:name "ad ctr" ;
    sh:description "Reports the ad click-through rate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adCpc> ;
    sh:name "ad cpc" ;
    sh:description "Reports the ad cost per click." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adCpm> ;
    sh:name "ad cpm" ;
    sh:description "Reports the ad cost per thousand impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productImpressions> ;
    sh:name "product impressions" ;
    sh:description "Reports impressions attributed to the product." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productClicks> ;
    sh:name "product clicks" ;
    sh:description "Reports clicks attributed to the product." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/carouselProductCardImpressions> ;
    sh:name "carousel product card impressions" ;
    sh:description "Number of carousel product-card impression actions observed for this product. This is not a billable ad impression. Returned only when explicitly requested and available for the requested range." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/carouselProductCardClicks> ;
    sh:name "carousel product card clicks" ;
    sh:description "Number of carousel product-card click actions observed for this product. This is distinct from the ad click metric. Returned only when explicitly requested and available for the requested range." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productSpend> ;
    sh:name "product spend" ;
    sh:description "Reports spend attributed to the product." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productCtr> ;
    sh:name "product ctr" ;
    sh:description "Reports the product click-through rate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productCpc> ;
    sh:name "product cpc" ;
    sh:description "Reports the product cost per click." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productCpm> ;
    sh:name "product cpm" ;
    sh:description "Reports the product cost per thousand impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/countryImpressions> ;
    sh:name "country impressions" ;
    sh:description "Reports impressions attributed to the country." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/countryClicks> ;
    sh:name "country clicks" ;
    sh:description "Reports clicks attributed to the country." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/countrySpend> ;
    sh:name "country spend" ;
    sh:description "Reports spend attributed to the country." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/countryCtr> ;
    sh:name "country ctr" ;
    sh:description "Reports the country click-through rate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/countryCpc> ;
    sh:name "country cpc" ;
    sh:description "Reports the country cost per click." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/countryCpm> ;
    sh:name "country cpm" ;
    sh:description "Reports the country cost per thousand impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/deviceImpressions> ;
    sh:name "device impressions" ;
    sh:description "Represents the number of impressions attributed to the device." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/deviceClicks> ;
    sh:name "device clicks" ;
    sh:description "Represents the number of clicks attributed to the device." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/deviceSpend> ;
    sh:name "device spend" ;
    sh:description "Represents the spend attributed to the device." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/deviceCtr> ;
    sh:name "device ctr" ;
    sh:description "Represents the click-through rate attributed to the device." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/deviceCpc> ;
    sh:name "device cpc" ;
    sh:description "Represents the cost per click attributed to the device." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/deviceCpm> ;
    sh:name "device cpm" ;
    sh:description "Represents the cost per thousand impressions attributed to the device." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/platformImpressions> ;
    sh:name "platform impressions" ;
    sh:description "Represents the number of impressions attributed to the platform." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/platformClicks> ;
    sh:name "platform clicks" ;
    sh:description "Represents the number of clicks attributed to the platform." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/platformSpend> ;
    sh:name "platform spend" ;
    sh:description "Represents the spend attributed to the platform." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/platformCtr> ;
    sh:name "platform ctr" ;
    sh:description "Represents the click-through rate attributed to the platform." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/platformCpc> ;
    sh:name "platform cpc" ;
    sh:description "Represents the cost per click attributed to the platform." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/platformCpm> ;
    sh:name "platform cpm" ;
    sh:description "Represents the cost per thousand impressions attributed to the platform." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/conversions> ;
    sh:name "conversions" ;
    sh:description "Represents the number of conversions." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/dataStatus> ;
    sh:name "data status" ;
    sh:description "Represents the status of the insight data." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountId> ;
    sh:name "ad account id" ;
    sh:description "Identifies the ad account associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountName> ;
    sh:name "ad account name" ;
    sh:description "Represents the name of the ad account associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountUrl> ;
    sh:name "ad account url" ;
    sh:description "Represents the URL of the ad account associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountBudgetLifetime> ;
    sh:name "ad account budget lifetime" ;
    sh:description "Represents the lifetime budget of the associated ad account." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adAccountBudgetDaily> ;
    sh:name "ad account budget daily" ;
    sh:description "Represents the daily budget of the associated ad account." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Identifies the campaign associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adGroupId> ;
    sh:name "ad group id" ;
    sh:description "Identifies the ad group associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adId> ;
    sh:name "ad id" ;
    sh:description "Identifies the ad associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Represents the name of the associated campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignDescription> ;
    sh:name "campaign description" ;
    sh:description "Represents the description of the associated campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignStatus> ;
    sh:name "campaign status" ;
    sh:description "Represents the status of the associated campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignStartTime> ;
    sh:name "campaign start time" ;
    sh:description "Represents the start time of the associated campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignEndTime> ;
    sh:name "campaign end time" ;
    sh:description "Represents the end time of the associated campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignBudgetLifetime> ;
    sh:name "campaign budget lifetime" ;
    sh:description "Represents the lifetime budget of the associated campaign." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/campaignBudgetDaily> ;
    sh:name "campaign budget daily" ;
    sh:description "Represents the daily budget of the associated campaign." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adGroupName> ;
    sh:name "ad group name" ;
    sh:description "Represents the name of the associated ad group." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adGroupDescription> ;
    sh:name "ad group description" ;
    sh:description "Represents the description of the associated ad group." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adGroupStatus> ;
    sh:name "ad group status" ;
    sh:description "Represents the status of the associated ad group." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adTitle> ;
    sh:name "ad title" ;
    sh:description "Represents the title of the associated ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adName> ;
    sh:name "ad name" ;
    sh:description "Represents the name of the associated ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adCopy> ;
    sh:name "ad copy" ;
    sh:description "Represents the copy of the associated ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adLink> ;
    sh:name "ad link" ;
    sh:description "Represents the link of the associated ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adStatus> ;
    sh:name "ad status" ;
    sh:description "Represents the status of the associated ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/adReviewStatus> ;
    sh:name "ad review status" ;
    sh:description "Represents the review status of the associated ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productFeedId> ;
    sh:name "product feed id" ;
    sh:description "Identifies the product feed associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/itemId> ;
    sh:name "item id" ;
    sh:description "Identifies the product item associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productTitle> ;
    sh:name "product title" ;
    sh:description "Represents the title of the associated product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productDescription> ;
    sh:name "product description" ;
    sh:description "Represents the description of the associated product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productBody> ;
    sh:name "product body" ;
    sh:description "Represents the body content of the associated product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productTargetUrl> ;
    sh:name "product target url" ;
    sh:description "Represents the target URL of the associated product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productImageUrl> ;
    sh:name "product image url" ;
    sh:description "Represents the image URL of the associated product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productBrand> ;
    sh:name "product brand" ;
    sh:description "Represents the brand of the associated product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productSellerName> ;
    sh:name "product seller name" ;
    sh:description "Represents the seller name of the associated product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productPrice> ;
    sh:name "product price" ;
    sh:description "Represents the price of the associated product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/productAvailability> ;
    sh:name "product availability" ;
    sh:description "Represents the availability of the associated product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/deviceType> ;
    sh:name "device type" ;
    sh:description "Represents the device type associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/countryName> ;
    sh:name "country name" ;
    sh:description "Represents the country associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightItemBody/platform> ;
    sh:name "platform" ;
    sh:description "Represents the platform associated with the insight item." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Insights Resource
chatgptads:InsightsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:InsightsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightsResource/object> ;
    sh:name "object" ;
    sh:description "Represents the object designation for the insights resource." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the insight items returned in the resource." ;
    sh:node chatgptads:InsightItemBodyShape ;
    sh:class chatgptads:InsightItemBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightsResource/count> ;
    sh:name "count" ;
    sh:description "Represents the number of insight items in the resource." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first insight item in the resource." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last insight item in the resource." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.InsightsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more insight items are available." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Lead Form List Item Body
chatgptads:LeadFormListItemBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:LeadFormListItemBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/id> ;
    sh:name "id" ;
    sh:description "Identifies the lead form." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/name> ;
    sh:name "name" ;
    sh:description "Represents the name of the lead form." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/status> ;
    sh:name "status" ;
    sh:description "Represents the status of the lead form." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/privacyPolicyUrl> ;
    sh:name "privacy policy url" ;
    sh:description "Represents the URL of the lead form's privacy policy." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/fields> ;
    sh:name "fields" ;
    sh:description "Contains the public fields defined for the lead form." ;
    sh:node chatgptads:PublicLeadFormFieldBodyShape ;
    sh:class chatgptads:PublicLeadFormFieldBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/draftRevisionId> ;
    sh:name "draft revision id" ;
    sh:description "Identifies the draft revision of the lead form." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/publishedRevisionId> ;
    sh:name "published revision id" ;
    sh:description "Identifies the published revision of the lead form." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/hasUnpublishedChanges> ;
    sh:name "has unpublished changes" ;
    sh:description "Indicates whether the lead form has unpublished changes." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/createdAt> ;
    sh:name "created at" ;
    sh:description "Represents when the lead form was created." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Represents when the lead form was last updated." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/publishedAt> ;
    sh:name "published at" ;
    sh:description "Represents when the lead form was published." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadFormListItemBody/archivedAt> ;
    sh:name "archived at" ;
    sh:description "Represents when the lead form was archived." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Public Lead Form Field Body
chatgptads:PublicLeadFormFieldBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:PublicLeadFormFieldBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PublicLeadFormFieldBody/fieldId> ;
    sh:name "field id" ;
    sh:description "Identifies the lead form field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PublicLeadFormFieldBody/fieldType> ;
    sh:name "field type" ;
    sh:description "Specifies the type of lead form field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PublicLeadFormFieldBody/label> ;
    sh:name "label" ;
    sh:description "Provides the label displayed for the lead form field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PublicLeadFormFieldBody/required> ;
    sh:name "required" ;
    sh:description "Indicates whether the lead form field is required." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PublicLeadFormFieldBody/options> ;
    sh:name "options" ;
    sh:description "Provides the options available for the lead form field." ;
    sh:node chatgptads:PublicLeadFormOptionBodyShape ;
    sh:class chatgptads:PublicLeadFormOptionBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Public Lead Form Option Body
chatgptads:PublicLeadFormOptionBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:PublicLeadFormOptionBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PublicLeadFormOptionBody/id> ;
    sh:name "id" ;
    sh:description "Identifies a lead form option." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PublicLeadFormOptionBody/label> ;
    sh:name "label" ;
    sh:description "Provides the label displayed for a lead form option." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Lead Sync Subscription List Item Body
chatgptads:LeadSyncSubscriptionListItemBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:LeadSyncSubscriptionListItemBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionListItemBody/subscriptionId> ;
    sh:name "subscription id" ;
    sh:description "Identifies the lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionListItemBody/object> ;
    sh:name "object" ;
    sh:description "Represents the object designation for the lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionListItemBody/status> ;
    sh:name "status" ;
    sh:description "Represents the status of the lead synchronization subscription." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Lead Sync Subscription Resource
chatgptads:LeadSyncSubscriptionResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:LeadSyncSubscriptionResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionResource/subscriptionId> ;
    sh:name "subscription id" ;
    sh:description "Identifies the lead synchronization subscription in the resource." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionResource/object> ;
    sh:name "object" ;
    sh:description "Represents the object designation for the lead synchronization subscription resource." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionResource/status> ;
    sh:name "status" ;
    sh:description "Represents the status of the lead synchronization subscription resource." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Lead Sync Subscriptions Resource
chatgptads:LeadSyncSubscriptionsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:LeadSyncSubscriptionsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionsResource/object> ;
    sh:name "object" ;
    sh:description "Represents the object designation for the lead synchronization subscriptions resource." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the lead synchronization subscriptions returned in the resource." ;
    sh:node chatgptads:LeadSyncSubscriptionListItemBodyShape ;
    sh:class chatgptads:LeadSyncSubscriptionListItemBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first lead synchronization subscription in the resource." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last lead synchronization subscription in the resource." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncSubscriptionsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more lead synchronization subscriptions are available." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Lead Sync Webhook Data
chatgptads:LeadSyncWebhookDataShape a sh:NodeShape ;
  sh:targetClass chatgptads:LeadSyncWebhookData ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookData/leadId> ;
    sh:name "lead id" ;
    sh:description "Identifies the lead associated with the webhook data." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:maxLength 256 ;
    sh:pattern "^leadformresp_[^~]+$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookData/submittedAt> ;
    sh:name "submitted at" ;
    sh:description "Represents when the lead data was submitted." ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookData/formId> ;
    sh:name "form id" ;
    sh:description "Identifies the form associated with the lead data." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:maxLength 256 ;
    sh:pattern "^leadform_[^~]+$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookData/formRevisionId> ;
    sh:name "form revision id" ;
    sh:description "Identifies the form revision associated with the lead data." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:maxLength 256 ;
    sh:pattern "^leadformrev_[^~]+$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookData/responses> ;
    sh:name "responses" ;
    sh:description "Represents a list of responses in the lead-sync webhook data." ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:or (
      [ sh:node chatgptads:LeadSyncWebhookScalarResponseShape ; sh:class chatgptads:LeadSyncWebhookScalarResponse ]
      [ sh:node chatgptads:LeadSyncWebhookMultipleChoiceResponseShape ; sh:class chatgptads:LeadSyncWebhookMultipleChoiceResponse ]
    ) ;
    sh:minCount 1 ;
    sh:maxCount 5 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookData/adId> ;
    sh:name "ad id" ;
    sh:description "Identifies the ad associated with the lead data." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookData/adGroupId> ;
    sh:name "ad group id" ;
    sh:description "Identifies the ad group associated with the lead data." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookData/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Identifies the campaign associated with the lead data." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookData/adAccountId> ;
    sh:name "ad account id" ;
    sh:description "Identifies the ad account associated with the lead data." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] .

# Shape for Lead Sync Webhook Scalar Response
chatgptads:LeadSyncWebhookScalarResponseShape a sh:NodeShape ;
  sh:targetClass chatgptads:LeadSyncWebhookScalarResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookScalarResponse/fieldId> ;
    sh:name "field id" ;
    sh:description "Identifies the lead field associated with the scalar response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 128 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookScalarResponse/fieldType> ;
    sh:name "field type" ;
    sh:description "Identifies whether the scalar response represents a name, email, phone, or free-form field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "name" "email" "phone" "free_form" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookScalarResponse/label> ;
    sh:name "label" ;
    sh:description "Provides the label associated with the scalar field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookScalarResponse/value> ;
    sh:name "value" ;
    sh:description "Provides the submitted value for the scalar field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 4096 ;
  ] .

# Shape for Lead Sync Webhook Multiple Choice Response
chatgptads:LeadSyncWebhookMultipleChoiceResponseShape a sh:NodeShape ;
  sh:targetClass chatgptads:LeadSyncWebhookMultipleChoiceResponse ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookMultipleChoiceResponse/fieldId> ;
    sh:name "field id" ;
    sh:description "Identifies the form field associated with the multiple-choice response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 128 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookMultipleChoiceResponse/fieldType> ;
    sh:name "field type" ;
    sh:description "Identifies this lead response as a multiple-choice field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:hasValue "multiple_choice" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookMultipleChoiceResponse/label> ;
    sh:name "label" ;
    sh:description "Provides the label associated with the multiple-choice field." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookMultipleChoiceResponse/option> ;
    sh:name "option" ;
    sh:description "Provides the selected option for the multiple-choice field." ;
    sh:node chatgptads:LeadSyncWebhookOptionShape ;
    sh:class chatgptads:LeadSyncWebhookOption ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Lead Sync Webhook Option
chatgptads:LeadSyncWebhookOptionShape a sh:NodeShape ;
  sh:targetClass chatgptads:LeadSyncWebhookOption ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookOption/id> ;
    sh:name "id" ;
    sh:description "Identifies the lead response option." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 128 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookOption/label> ;
    sh:name "label" ;
    sh:description "Provides the label for the lead response option." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] .

# Shape for Lead Sync Webhook Event
chatgptads:LeadSyncWebhookEventShape a sh:NodeShape ;
  sh:targetClass chatgptads:LeadSyncWebhookEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookEvent/id> ;
    sh:name "id" ;
    sh:description "Identifies the webhook event." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookEvent/object> ;
    sh:name "object" ;
    sh:description "Represents the webhook event object, which is event." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:hasValue "event" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Represents when the webhook event was created." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minInclusive "0"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookEvent/subscriptionId> ;
    sh:name "subscription id" ;
    sh:description "Identifies the subscription associated with the webhook event." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:maxLength 256 ;
    sh:pattern "^leadsync_[^~]+_g[1-9][0-9]*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookEvent/type> ;
    sh:name "type" ;
    sh:description "Represents the webhook event type, which is lead_form.response.created." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:hasValue "lead_form.response.created" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookEvent/synthetic> ;
    sh:name "synthetic" ;
    sh:description "Indicates whether the lead-sync webhook event is synthetic." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
    sh:in ( true ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.LeadSyncWebhookEvent/data> ;
    sh:name "data" ;
    sh:description "Contains the lead synchronization data associated with the webhook event." ;
    sh:node chatgptads:LeadSyncWebhookDataShape ;
    sh:class chatgptads:LeadSyncWebhookData ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for List Business Agents Resource
chatgptads:ListBusinessAgentsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ListBusinessAgentsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListBusinessAgentsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the kind of resource returned for the business-agent list." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListBusinessAgentsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the business agents in the list." ;
    sh:node chatgptads:BusinessAgentListItemBodyShape ;
    sh:class chatgptads:BusinessAgentListItemBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for List Business Agent Tools Resource
chatgptads:ListBusinessAgentToolsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ListBusinessAgentToolsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListBusinessAgentToolsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the kind of resource returned for the business-agent-tool list." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListBusinessAgentToolsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the catalog tools in the list." ;
    sh:node chatgptads:BusinessAgentCatalogToolBodyShape ;
    sh:class chatgptads:BusinessAgentCatalogToolBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for List Client Data Source Items Resource
chatgptads:ListClientDataSourceItemsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ListClientDataSourceItemsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListClientDataSourceItemsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the kind of resource returned for the client data-source-item list." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListClientDataSourceItemsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the client data-source items in the list." ;
    sh:node chatgptads:ClientDataSourceItemResourceShape ;
    sh:class chatgptads:ClientDataSourceItemResource ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListClientDataSourceItemsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first client data-source item in the list." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListClientDataSourceItemsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last client data-source item in the list." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListClientDataSourceItemsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more client data-source items are available." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for List Conversion Event Settings Resource
chatgptads:ListConversionEventSettingsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ListConversionEventSettingsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListConversionEventSettingsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the kind of resource returned for the conversion-event-settings list." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListConversionEventSettingsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the conversion event settings in the list." ;
    sh:node chatgptads:ConversionEventSettingItemResourceShape ;
    sh:class chatgptads:ConversionEventSettingItemResource ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListConversionEventSettingsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first conversion event setting in the list." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListConversionEventSettingsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last conversion event setting in the list." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListConversionEventSettingsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more conversion event settings are available." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for List Lead Forms Resource
chatgptads:ListLeadFormsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ListLeadFormsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListLeadFormsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the kind of resource returned for the lead-form list." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListLeadFormsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the lead forms in the list." ;
    sh:node chatgptads:LeadFormListItemBodyShape ;
    sh:class chatgptads:LeadFormListItemBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for List Product Feed Body
chatgptads:ListProductFeedBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ListProductFeedBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the product feed." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedBody/feedId> ;
    sh:name "feed id" ;
    sh:description "Identifies the product feed." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedBody/countries> ;
    sh:name "countries" ;
    sh:description "Lists the countries associated with the product feed." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedBody/currencies> ;
    sh:name "currencies" ;
    sh:description "Lists the currencies associated with the product feed." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedBody/createdAt> ;
    sh:name "created at" ;
    sh:description "Records when the product feed was created." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedBody/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Records when the product feed was last updated." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedBody/productCount> ;
    sh:name "product count" ;
    sh:description "Reports the number of products in the product feed." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedBody/campaignCount> ;
    sh:name "campaign count" ;
    sh:description "Reports the number of campaigns associated with the product feed." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedBody/hostedUrlConfigured> ;
    sh:name "hosted url configured" ;
    sh:description "Indicates whether a hosted URL is configured for the product feed." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedBody/sftpConfigured> ;
    sh:name "sftp configured" ;
    sh:description "Indicates whether SFTP is configured for the product feed." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] .

# Shape for List Product Feeds Resource
chatgptads:ListProductFeedsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ListProductFeedsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the kind of resource returned for the product-feed list." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the product feeds in the list." ;
    sh:node chatgptads:ListProductFeedBodyShape ;
    sh:class chatgptads:ListProductFeedBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first product feed in the list." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last product feed in the list." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more product feeds are available." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for List Product Feed Uploads Resource
chatgptads:ListProductFeedUploadsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ListProductFeedUploadsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedUploadsResource/uploads> ;
    sh:name "uploads" ;
    sh:description "Contains product feed uploads." ;
    sh:node chatgptads:ProductFeedUploadBodyShape ;
    sh:class chatgptads:ProductFeedUploadBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedUploadsResource/latestUploads> ;
    sh:name "latest uploads" ;
    sh:description "Contains the latest product feed uploads." ;
    sh:node chatgptads:ProductFeedUploadBodyShape ;
    sh:class chatgptads:ProductFeedUploadBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedUploadsResource/truncated> ;
    sh:name "truncated" ;
    sh:description "Indicates whether the product feed upload results are truncated." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedUploadsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first product feed upload in the results." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedUploadsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last product feed upload in the results." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ListProductFeedUploadsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more product feed uploads are available." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Feed Upload Body
chatgptads:ProductFeedUploadBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedUploadBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadBody/feedId> ;
    sh:name "feed id" ;
    sh:description "Identifies the product feed associated with the upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadBody/uploadId> ;
    sh:name "upload id" ;
    sh:description "Identifies the product feed upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadBody/status> ;
    sh:name "status" ;
    sh:description "Reports the status of the product feed upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "scanning" "received" "processing" "completed" "completed_with_errors" "skipped" "failed" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadBody/uploadedAt> ;
    sh:name "uploaded at" ;
    sh:description "Records when the product feed upload occurred." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadBody/completedAt> ;
    sh:name "completed at" ;
    sh:description "Records when processing of the product feed upload completed." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadBody/rowsAccepted> ;
    sh:name "rows accepted" ;
    sh:description "Reports the number of upload rows accepted." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadBody/rowsRejected> ;
    sh:name "rows rejected" ;
    sh:description "Reports the number of upload rows rejected." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadBody/rowsAdsEligible> ;
    sh:name "rows ads eligible" ;
    sh:description "Accepted ads-eligible product count; null when not reported." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadBody/diagnostics> ;
    sh:name "diagnostics" ;
    sh:description "Provides diagnostics associated with the product feed upload." ;
    sh:node chatgptads:ProductFeedUploadDiagnosticBodyShape ;
    sh:class chatgptads:ProductFeedUploadDiagnosticBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Product Feed Upload Diagnostic Body
chatgptads:ProductFeedUploadDiagnosticBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedUploadDiagnosticBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadDiagnosticBody/code> ;
    sh:name "code" ;
    sh:description "Identifies the diagnostic code for an upload issue or condition." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "missing_required_column" "invalid_value" "unsupported_file_type" "invalid_sftp_directory_layout" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadDiagnosticBody/severity> ;
    sh:name "severity" ;
    sh:description "Indicates the severity of an upload diagnostic." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "warning" "error" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadDiagnosticBody/field> ;
    sh:name "field" ;
    sh:description "Identifies the field associated with an upload diagnostic." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedUploadDiagnosticBody/rowsAffected> ;
    sh:name "rows affected" ;
    sh:description "Reports the number of rows affected by an upload diagnostic." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Merge Custom Audiences Body
chatgptads:MergeCustomAudiencesBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:MergeCustomAudiencesBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.MergeCustomAudiencesBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name for the merged custom audience." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 1000 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.MergeCustomAudiencesBody/customAudienceIds> ;
    sh:name "custom audience ids" ;
    sh:description "Lists the custom audiences to merge." ;
    sh:datatype xsd:string ;
    sh:maxCount 64 ;
  ] .

# Shape for Partner Data Upload Resource
chatgptads:PartnerDataUploadResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:PartnerDataUploadResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PartnerDataUploadResource/uploadId> ;
    sh:name "upload id" ;
    sh:description "Identifies the partner data upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PartnerDataUploadResource/dataType> ;
    sh:name "data type" ;
    sh:description "Identifies the type of data in the partner data upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PartnerDataUploadResource/snapshotDate> ;
    sh:name "snapshot date" ;
    sh:description "Records the snapshot date associated with the partner data upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PartnerDataUploadResource/fileName> ;
    sh:name "file name" ;
    sh:description "Provides the name of the uploaded file." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PartnerDataUploadResource/fileSizeBytes> ;
    sh:name "file size bytes" ;
    sh:description "Reports the size of the uploaded file in bytes." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PartnerDataUploadResource/sha256> ;
    sh:name "sha256" ;
    sh:description "Provides the SHA-256 value for the uploaded file." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PartnerDataUploadResource/status> ;
    sh:name "status" ;
    sh:description "Reports the status of the partner data upload." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PartnerDataUploadResource/createdAt> ;
    sh:name "created at" ;
    sh:description "Records when the partner data upload was created." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PartnerDataUploadResource/completedAt> ;
    sh:name "completed at" ;
    sh:description "Records when the partner data upload was completed." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Patch Product Feed Products Body
chatgptads:PatchProductFeedProductsBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:PatchProductFeedProductsBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PatchProductFeedProductsBody/products> ;
    sh:name "products" ;
    sh:description "Contains the product changes submitted for the product feed." ;
    sh:node chatgptads:ProductFeedDeltaProductBodyParamShape ;
    sh:class chatgptads:ProductFeedDeltaProductBodyParam ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
  ] .

# Shape for Product Feed Delta Product Body Param
chatgptads:ProductFeedDeltaProductBodyParamShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedDeltaProductBodyParam ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaProductBodyParam/id> ;
    sh:name "id" ;
    sh:description "Identifies the product being changed." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaProductBodyParam/variants> ;
    sh:name "variants" ;
    sh:description "Contains the variants included in the product change." ;
    sh:node chatgptads:ProductFeedDeltaVariantBodyParamShape ;
    sh:class chatgptads:ProductFeedDeltaVariantBodyParam ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
  ] .

# Shape for Product Feed Delta Variant Body Param
chatgptads:ProductFeedDeltaVariantBodyParamShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedDeltaVariantBodyParam ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaVariantBodyParam/id> ;
    sh:name "id" ;
    sh:description "Identifies the variant being changed." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaVariantBodyParam/title> ;
    sh:name "title" ;
    sh:description "Provides the title of the variant being changed." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaVariantBodyParam/price> ;
    sh:name "price" ;
    sh:description "Provides the price details for the variant being changed." ;
    sh:node chatgptads:ProductFeedDeltaPriceBodyParamShape ;
    sh:class chatgptads:ProductFeedDeltaPriceBodyParam ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaVariantBodyParam/availability> ;
    sh:name "availability" ;
    sh:description "Provides the availability details for the variant being changed." ;
    sh:node chatgptads:ProductFeedDeltaAvailabilityBodyParamShape ;
    sh:class chatgptads:ProductFeedDeltaAvailabilityBodyParam ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Feed Delta Price Body Param
chatgptads:ProductFeedDeltaPriceBodyParamShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedDeltaPriceBodyParam ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaPriceBodyParam/amount> ;
    sh:name "amount" ;
    sh:description "Provides the price amount for the product or variant." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minInclusive "0"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaPriceBodyParam/currency> ;
    sh:name "currency" ;
    sh:description "Identifies the currency for the product or variant price." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 3 ;
  ] .

# Shape for Product Feed Delta Availability Body Param
chatgptads:ProductFeedDeltaAvailabilityBodyParamShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedDeltaAvailabilityBodyParam ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaAvailabilityBodyParam/available> ;
    sh:name "available" ;
    sh:description "Indicates whether the product or variant is available." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaAvailabilityBodyParam/status> ;
    sh:name "status" ;
    sh:description "Provides the availability status of the product or variant." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Post Conversion Insights Body
chatgptads:PostConversionInsightsBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:PostConversionInsightsBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PostConversionInsightsBody/aggregationLevel> ;
    sh:name "aggregation level" ;
    sh:description "Specifies the level at which conversion insights are aggregated." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PostConversionInsightsBody/timeGranularity> ;
    sh:name "time granularity" ;
    sh:description "Specifies the time granularity for conversion insights." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "none" "daily" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PostConversionInsightsBody/breakdown> ;
    sh:name "breakdown" ;
    sh:description "Specifies the breakdown used for conversion insights." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "device" "country" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PostConversionInsightsBody/timeRanges> ;
    sh:name "time ranges" ;
    sh:description "Lists the time ranges for which conversion insights are requested." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PostConversionInsightsBody/entityIds> ;
    sh:name "entity ids" ;
    sh:description "Lists the entities included in the conversion insights request." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PostConversionInsightsBody/groupByEntity> ;
    sh:name "group by entity" ;
    sh:description "Indicates whether conversion insights are grouped by entity." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PostConversionInsightsBody/includeZeroRows> ;
    sh:name "include zero rows" ;
    sh:description "Indicates whether conversion-insight rows with zero values are included." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] .

# Shape for Post Product Feed Sftp Access Body
chatgptads:PostProductFeedSftpAccessBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:PostProductFeedSftpAccessBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PostProductFeedSftpAccessBody/authenticationMethod> ;
    sh:name "authentication method" ;
    sh:description "Specifies the authentication method for product-feed SFTP access." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "password" "ssh_key" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PostProductFeedSftpAccessBody/sshPublicKey> ;
    sh:name "ssh public key" ;
    sh:description "Provides the SSH public key for product-feed SFTP access." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Preview Business Agent Body
chatgptads:PreviewBusinessAgentBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:PreviewBusinessAgentBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PreviewBusinessAgentBody/messages> ;
    sh:name "messages" ;
    sh:description "Contains the messages submitted for the business-agent preview." ;
    sh:node chatgptads:PublicBusinessAgentPreviewMessageBodyParamShape ;
    sh:class chatgptads:PublicBusinessAgentPreviewMessageBodyParam ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 10 ;
  ] .

# Shape for Public Business Agent Preview Message Body Param
chatgptads:PublicBusinessAgentPreviewMessageBodyParamShape a sh:NodeShape ;
  sh:targetClass chatgptads:PublicBusinessAgentPreviewMessageBodyParam ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PublicBusinessAgentPreviewMessageBodyParam/role> ;
    sh:name "role" ;
    sh:description "Specifies the role of a message in a business agent preview." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "user" "assistant" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PublicBusinessAgentPreviewMessageBodyParam/content> ;
    sh:name "content" ;
    sh:description "Contains the content of a message in a business agent preview." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 4000 ;
  ] .

# Shape for Product Feed Delta Resource
chatgptads:ProductFeedDeltaResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedDeltaResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaResource/id> ;
    sh:name "id" ;
    sh:description "Identifies the product-feed delta." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedDeltaResource/accepted> ;
    sh:name "accepted" ;
    sh:description "Indicates whether the product-feed delta was accepted." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Feed Product Body
chatgptads:ProductFeedProductBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedProductBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedProductBody/productId> ;
    sh:name "product id" ;
    sh:description "Identifies the product in the product feed." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedProductBody/itemId> ;
    sh:name "item id" ;
    sh:description "Identifies the item in the product feed." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedProductBody/offerId> ;
    sh:name "offer id" ;
    sh:description "Identifies the offer associated with the product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedProductBody/brand> ;
    sh:name "brand" ;
    sh:description "Provides the product brand." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedProductBody/title> ;
    sh:name "title" ;
    sh:description "Provides the product title." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedProductBody/body> ;
    sh:name "body" ;
    sh:description "Provides the product description or body content." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedProductBody/targetUrl> ;
    sh:name "target url" ;
    sh:description "Provides the URL associated with the product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedProductBody/imageUrl> ;
    sh:name "image url" ;
    sh:description "Provides the URL of the product image." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedProductBody/price> ;
    sh:name "price" ;
    sh:description "Provides the product price." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedProductBody/filterValues> ;
    sh:name "filter values" ;
    sh:description "Provides filter values associated with the product." ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Feed Resource
chatgptads:ProductFeedResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedResource/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the product feed." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedResource/feedId> ;
    sh:name "feed id" ;
    sh:description "Identifies the product feed." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedResource/countries> ;
    sh:name "countries" ;
    sh:description "Lists the countries associated with the product feed." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedResource/currencies> ;
    sh:name "currencies" ;
    sh:description "Lists the currencies associated with the product feed." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedResource/createdAt> ;
    sh:name "created at" ;
    sh:description "Records when the product feed was created." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedResource/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Records when the product feed was last updated." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Feed Sftp Access Credentials Resource
chatgptads:ProductFeedSftpAccessCredentialsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedSftpAccessCredentialsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedSftpAccessCredentialsResource/enabled> ;
    sh:name "enabled" ;
    sh:description "Indicates whether the product-feed SFTP access credentials are enabled." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedSftpAccessCredentialsResource/connectionUri> ;
    sh:name "connection uri" ;
    sh:description "Provides the connection URI for product-feed SFTP access." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedSftpAccessCredentialsResource/authenticationMethod> ;
    sh:name "authentication method" ;
    sh:description "Identifies the authentication method for product-feed SFTP access." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "password" "ssh_key" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedSftpAccessCredentialsResource/password> ;
    sh:name "password" ;
    sh:description "Provides the password for product-feed SFTP access." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Feed Sftp Access Resource
chatgptads:ProductFeedSftpAccessResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:ProductFeedSftpAccessResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedSftpAccessResource/enabled> ;
    sh:name "enabled" ;
    sh:description "Indicates whether the product feed’s SFTP access is enabled." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedSftpAccessResource/connectionUri> ;
    sh:name "connection uri" ;
    sh:description "Identifies the URI used to connect to the product feed’s SFTP access." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ProductFeedSftpAccessResource/authenticationMethod> ;
    sh:name "authentication method" ;
    sh:description "Specifies the authentication method for the product feed’s SFTP access." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "password" "ssh_key" ) ;
  ] .

# Shape for Publish Lead Form Body
chatgptads:PublishLeadFormBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:PublishLeadFormBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.PublishLeadFormBody/expectedDraftRevisionId> ;
    sh:name "expected draft revision id" ;
    sh:description "Identifies the draft revision expected when publishing the lead form." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] .

# Shape for Query Product Feed Products Body
chatgptads:QueryProductFeedProductsBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:QueryProductFeedProductsBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.QueryProductFeedProductsBody/filters> ;
    sh:name "filters" ;
    sh:description "Defines the filters for the product feed product query." ;
    sh:node chatgptads:ProductSetFilterParamsShape ;
    sh:class chatgptads:ProductSetFilterParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.QueryProductFeedProductsBody/limit> ;
    sh:name "limit" ;
    sh:description "Specifies the maximum number of products requested by the query." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "1"^^xsd:long ;
    sh:maxInclusive "500"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.QueryProductFeedProductsBody/after> ;
    sh:name "after" ;
    sh:description "Identifies the position after which the product query should continue." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Query Product Feed Products Resource
chatgptads:QueryProductFeedProductsResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:QueryProductFeedProductsResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.QueryProductFeedProductsResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the object represented by the product query response." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.QueryProductFeedProductsResource/data> ;
    sh:name "data" ;
    sh:description "Contains the products returned by the query." ;
    sh:node chatgptads:ProductFeedProductBodyShape ;
    sh:class chatgptads:ProductFeedProductBody ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.QueryProductFeedProductsResource/totalCount> ;
    sh:name "total count" ;
    sh:description "Reports the total number of products." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.QueryProductFeedProductsResource/matchedCount> ;
    sh:name "matched count" ;
    sh:description "Reports the number of products matching the query." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.QueryProductFeedProductsResource/firstId> ;
    sh:name "first id" ;
    sh:description "Identifies the first product in the returned results." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.QueryProductFeedProductsResource/lastId> ;
    sh:name "last id" ;
    sh:description "Identifies the last product in the returned results." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.QueryProductFeedProductsResource/hasMore> ;
    sh:name "has more" ;
    sh:description "Indicates whether more products are available beyond the returned results." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Replace Custom Audience Members Body
chatgptads:ReplaceCustomAudienceMembersBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:ReplaceCustomAudienceMembersBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ReplaceCustomAudienceMembersBody/fileId> ;
    sh:name "file id" ;
    sh:description "Identifies the file containing the custom audience members." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ReplaceCustomAudienceMembersBody/expectedRevision> ;
    sh:name "expected revision" ;
    sh:description "Specifies the custom audience revision expected for the replacement." ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minInclusive "0"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ReplaceCustomAudienceMembersBody/filename> ;
    sh:name "filename" ;
    sh:description "Provides the name of the custom audience member file." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 255 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ReplaceCustomAudienceMembersBody/mimetype> ;
    sh:name "mimetype" ;
    sh:description "Specifies the media type of the custom audience member file." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 255 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ReplaceCustomAudienceMembersBody/fileSize> ;
    sh:name "file size" ;
    sh:description "Reports the size of the custom audience member file." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "1"^^xsd:long ;
    sh:maxInclusive "500000000"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ReplaceCustomAudienceMembersBody/identifierType> ;
    sh:name "identifier type" ;
    sh:description "Specifies the type of identifiers in the custom audience member file." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "email" "phone" "email_sha256" "phone_number_sha256" "gaid" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.ReplaceCustomAudienceMembersBody/identifierResolution> ;
    sh:name "identifier resolution" ;
    sh:description "Specifies how identifiers in the custom audience member file are resolved." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "auto" ) ;
  ] .

# Shape for Test Lead Submission Resource
chatgptads:TestLeadSubmissionResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:TestLeadSubmissionResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TestLeadSubmissionResource/object> ;
    sh:name "object" ;
    sh:description "Identifies the object represented by the test lead submission." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TestLeadSubmissionResource/synthetic> ;
    sh:name "synthetic" ;
    sh:description "Indicates whether the lead submission is synthetic." ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TestLeadSubmissionResource/deliveryStatus> ;
    sh:name "delivery status" ;
    sh:description "Reports the delivery status of the test lead submission." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TestLeadSubmissionResource/webhookDeliveryId> ;
    sh:name "webhook delivery id" ;
    sh:description "Identifies the webhook delivery associated with the test lead submission." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TestLeadSubmissionResource/subscriptionId> ;
    sh:name "subscription id" ;
    sh:description "Identifies the subscription associated with the test lead submission." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TestLeadSubmissionResource/formId> ;
    sh:name "form id" ;
    sh:description "Identifies the lead form associated with the test submission." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TestLeadSubmissionResource/formRevisionId> ;
    sh:name "form revision id" ;
    sh:description "Identifies the form revision associated with the test submission." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.TestLeadSubmissionResource/event> ;
    sh:name "event" ;
    sh:description "Contains the event data for the test lead submission." ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Update Ad Account Body
chatgptads:UpdateAdAccountBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:UpdateAdAccountBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdAccountBody/name> ;
    sh:name "name" ;
    sh:description "Provides the updated name of the ad account." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdAccountBody/url> ;
    sh:name "url" ;
    sh:description "Provides the updated URL of the ad account." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 2048 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdAccountBody/faviconFileId> ;
    sh:name "favicon file id" ;
    sh:description "Identifies the file used for the ad account favicon." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Update Ad Account Negative Keywords Body
chatgptads:UpdateAdAccountNegativeKeywordsBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:UpdateAdAccountNegativeKeywordsBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdAccountNegativeKeywordsBody/negativeKeywords> ;
    sh:name "negative keywords" ;
    sh:description "Lists the negative keywords for the ad account." ;
    sh:datatype xsd:string ;
    sh:maxCount 100 ;
  ] .

# Shape for Update Ad Account Spend Limit Window Body
chatgptads:UpdateAdAccountSpendLimitWindowBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:UpdateAdAccountSpendLimitWindowBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdAccountSpendLimitWindowBody/startDate> ;
    sh:name "start date" ;
    sh:description "Specifies the start date of the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 10 ;
    sh:maxLength 10 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdAccountSpendLimitWindowBody/endDate> ;
    sh:name "end date" ;
    sh:description "Specifies the end date of the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 10 ;
    sh:maxLength 10 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdAccountSpendLimitWindowBody/amountMicros> ;
    sh:name "amount micros" ;
    sh:description "Represents the updated amount for an ad account spend limit window in micros." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "0"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdAccountSpendLimitWindowBody/name> ;
    sh:name "name" ;
    sh:description "Provides the name of the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdAccountSpendLimitWindowBody/ioId> ;
    sh:name "io id" ;
    sh:description "Identifies the insertion order associated with the ad account spend limit window." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:maxLength 256 ;
  ] .

# Shape for Update Ad Body
chatgptads:UpdateAdBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:UpdateAdBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdBody/name> ;
    sh:name "name" ;
    sh:description "Specifies the ad's name." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 1000 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdBody/creative> ;
    sh:name "creative" ;
    sh:description "Contains the creative details for the ad." ;
    sh:node chatgptads:UpdateAdCreativeParamsShape ;
    sh:class chatgptads:UpdateAdCreativeParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdBody/status> ;
    sh:name "status" ;
    sh:description "Specifies the ad's active, paused, or archived status." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "active" "paused" "archived" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdBody/landingPageConfiguration> ;
    sh:name "landing page configuration" ;
    sh:description "Contains the ad's landing page configuration." ;
    sh:node chatgptads:LandingPageConfigurationParamsShape ;
    sh:class chatgptads:LandingPageConfigurationParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Update Ad Creative Params
chatgptads:UpdateAdCreativeParamsShape a sh:NodeShape ;
  sh:targetClass chatgptads:UpdateAdCreativeParams ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdCreativeParams/type> ;
    sh:name "type" ;
    sh:description "Specifies the type of ad creative." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "chat_card" "product_ad_template" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdCreativeParams/title> ;
    sh:name "title" ;
    sh:description "Contains the title of the ad creative." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 50 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdCreativeParams/body> ;
    sh:name "body" ;
    sh:description "Contains the body text of the ad creative." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:maxLength 100 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdCreativeParams/price> ;
    sh:name "price" ;
    sh:description "Specifies the price associated with the ad creative." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:maxLength 100 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdCreativeParams/targetUrl> ;
    sh:name "target url" ;
    sh:description "Specifies the URL targeted by the ad creative." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:maxLength 2048 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdCreativeParams/fileId> ;
    sh:name "file id" ;
    sh:description "Identifies the file associated with the ad creative." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdCreativeParams/imageCrop> ;
    sh:name "image crop" ;
    sh:description "Optional normalized square crop for chat_card creatives. Requires file_id and is not supported for product_ad_template creatives." ;
    sh:node chatgptads:AdImageCropParamsShape ;
    sh:class chatgptads:AdImageCropParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Update Ad Group Body
chatgptads:UpdateAdGroupBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:UpdateAdGroupBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdGroupBody/name> ;
    sh:name "name" ;
    sh:description "Specifies the ad group's name." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 1000 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdGroupBody/description> ;
    sh:name "description" ;
    sh:description "Provides a description of the ad group." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdGroupBody/contextHints> ;
    sh:name "context hints" ;
    sh:description "Contains contextual hints for the ad group." ;
    sh:datatype xsd:string ;
    sh:maxCount 2000 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdGroupBody/status> ;
    sh:name "status" ;
    sh:description "Specifies the ad group's active, paused, or archived status." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "active" "paused" "archived" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdGroupBody/biddingConfig> ;
    sh:name "bidding config" ;
    sh:description "Contains the ad group's bidding configuration." ;
    sh:node chatgptads:BiddingConfigParamsShape ;
    sh:class chatgptads:BiddingConfigParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdGroupBody/productSet> ;
    sh:name "product set" ;
    sh:description "Specifies the product set associated with the ad group." ;
    sh:node chatgptads:ProductSetParamsShape ;
    sh:class chatgptads:ProductSetParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateAdGroupBody/landingPageConfiguration> ;
    sh:name "landing page configuration" ;
    sh:description "Contains the ad group's landing page configuration." ;
    sh:node chatgptads:LandingPageConfigurationParamsShape ;
    sh:class chatgptads:LandingPageConfigurationParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Update Business Agent Body
chatgptads:UpdateBusinessAgentBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:UpdateBusinessAgentBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateBusinessAgentBody/description> ;
    sh:name "description" ;
    sh:description "Provides a description of the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 300 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateBusinessAgentBody/privacyPolicyUrl> ;
    sh:name "privacy policy url" ;
    sh:description "Specifies the URL of the business agent's privacy policy." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 2048 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateBusinessAgentBody/instructions> ;
    sh:name "instructions" ;
    sh:description "Provides instructions for the business agent." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 4000 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateBusinessAgentBody/conversationStarters> ;
    sh:name "conversation starters" ;
    sh:description "Contains conversation starters for the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 12 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateBusinessAgentBody/productFeedIds> ;
    sh:name "product feed ids" ;
    sh:description "Identifies the product feeds associated with the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 50 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateBusinessAgentBody/connectorIds> ;
    sh:name "connector ids" ;
    sh:description "Identifies the connectors associated with the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 50 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateBusinessAgentBody/tools> ;
    sh:name "tools" ;
    sh:description "Specifies the tools associated with the business agent." ;
    sh:datatype xsd:string ;
    sh:maxCount 50 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateBusinessAgentBody/leadForm> ;
    sh:name "lead form" ;
    sh:description "Specifies the lead form selection for the business agent." ;
    sh:node chatgptads:BusinessAgentLeadFormSelectionBodyParamShape ;
    sh:class chatgptads:BusinessAgentLeadFormSelectionBodyParam ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateBusinessAgentBody/name> ;
    sh:name "name" ;
    sh:description "Specifies the business agent's name." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 50 ;
  ] .

# Shape for Update Campaign Body
chatgptads:UpdateCampaignBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:UpdateCampaignBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateCampaignBody/name> ;
    sh:name "name" ;
    sh:description "Specifies the campaign's name." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minLength 3 ;
    sh:maxLength 1000 ;
    sh:pattern "^.*\\S.*$" ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateCampaignBody/description> ;
    sh:name "description" ;
    sh:description "Provides a description of the campaign." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateCampaignBody/startTime> ;
    sh:name "start time" ;
    sh:description "Specifies when the campaign starts." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "946684800"^^xsd:long ;
    sh:maxInclusive "4102444800"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateCampaignBody/endTime> ;
    sh:name "end time" ;
    sh:description "Specifies when the campaign ends." ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
    sh:minInclusive "946684800"^^xsd:long ;
    sh:maxInclusive "4102444800"^^xsd:long ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateCampaignBody/status> ;
    sh:name "status" ;
    sh:description "Specifies the campaign's active, paused, or archived status." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "active" "paused" "archived" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateCampaignBody/budget> ;
    sh:name "budget" ;
    sh:description "Contains the campaign's budget configuration." ;
    sh:node chatgptads:BudgetParamsShape ;
    sh:class chatgptads:BudgetParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateCampaignBody/targeting> ;
    sh:name "targeting" ;
    sh:description "Contains the campaign's targeting configuration." ;
    sh:node chatgptads:TargetingParamsShape ;
    sh:class chatgptads:TargetingParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateCampaignBody/landingPageConfiguration> ;
    sh:name "landing page configuration" ;
    sh:description "Contains the campaign's landing page configuration." ;
    sh:node chatgptads:LandingPageConfigurationParamsShape ;
    sh:class chatgptads:LandingPageConfigurationParams ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateCampaignBody/conversionEventSettingIds> ;
    sh:name "conversion event setting ids" ;
    sh:description "Identifies the conversion event settings associated with the campaign." ;
    sh:datatype xsd:string ;
  ] .

# Shape for Update Lead Form Body
chatgptads:UpdateLeadFormBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:UpdateLeadFormBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateLeadFormBody/name> ;
    sh:name "name" ;
    sh:description "Specifies the lead form's name." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
    sh:maxLength 256 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateLeadFormBody/privacyPolicyUrl> ;
    sh:name "privacy policy url" ;
    sh:description "Specifies the URL of the lead form's privacy policy." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateLeadFormBody/fields> ;
    sh:name "fields" ;
    sh:description "Contains the fields included in the lead form." ;
    sh:node chatgptads:CreateLeadFormFieldBodyParamShape ;
    sh:class chatgptads:CreateLeadFormFieldBodyParam ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 3 ;
    sh:maxCount 5 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UpdateLeadFormBody/expectedDraftRevisionId> ;
    sh:name "expected draft revision id" ;
    sh:description "Identifies the draft revision expected for the lead form update." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:minLength 1 ;
  ] .

# Shape for Upload Blob Body
chatgptads:UploadBlobBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:UploadBlobBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UploadBlobBody/file> ;
    sh:name "file" ;
    sh:description "Contains the blob file to upload." ;
    sh:datatype xsd:base64Binary ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UploadBlobBody/purpose> ;
    sh:name "purpose" ;
    sh:description "The upload's intended use. This field is required unless the authenticated ad account is enrolled in the custom-audience compatibility rollout. For enrolled accounts, an omitted value defaults to `custom_audience`." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "custom_audience" ) ;
  ] .

# Shape for Upload Blob Resource
chatgptads:UploadBlobResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:UploadBlobResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UploadBlobResource/fileId> ;
    sh:name "file id" ;
    sh:description "Identifies the uploaded blob file." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Upload Image Body
chatgptads:UploadImageBodyShape a sh:NodeShape ;
  sh:targetClass chatgptads:UploadImageBody ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UploadImageBody/imageUrl> ;
    sh:name "image url" ;
    sh:description "Specifies the URL of the image to upload." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UploadImageBody/file> ;
    sh:name "file" ;
    sh:description "Contains the image file to upload." ;
    sh:datatype xsd:base64Binary ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UploadImageBody/purpose> ;
    sh:name "purpose" ;
    sh:description "Specifies the purpose of the image upload." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "account_favicon" ) ;
  ] .

# Shape for Upload Image Resource
chatgptads:UploadImageResourceShape a sh:NodeShape ;
  sh:targetClass chatgptads:UploadImageResource ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.UploadImageResource/fileId> ;
    sh:name "file id" ;
    sh:description "Identifies the uploaded image file." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Generated Record container shape for Chatgptads.CreatePartnerDataUploadResource.uploadHeaders
<https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/chatgptads/property/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders> ] ;
    sh:class chatgptads:CreatePartnerDataUploadResource ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/entry> ;
    sh:node <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/key> ?key . ?right <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/key> ?key . }"""
  ] .

# Generated Record entry shape for Chatgptads.CreatePartnerDataUploadResource.uploadHeaders
<https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/chatgptads/record/Chatgptads.CreatePartnerDataUploadResource/uploadHeaders/value> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .
