# 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 linkedin: <https://relay.inferal.com/ontology/linkedin/> .
@prefix schema: <https://schema.org/> .

# Class hierarchy
linkedin:AdAccount rdfs:subClassOf aent:AdAccount .
linkedin:Campaign rdfs:subClassOf aent:TargetingGroup .
linkedin:CampaignGroup rdfs:subClassOf aent:Campaign .
linkedin:Creative rdfs:subClassOf aent:Ad .

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

# Shape for ABTesting
linkedin:ABTestingShape a sh:NodeShape ;
  sh:targetClass linkedin:ABTesting ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/accountCriteria> ;
    sh:name "account criteria" ;
    sh:node linkedin:AdAccountShape ;
    sh:class linkedin:AdAccount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/associatedEntity> ;
    sh:name "associated entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/autoStop> ;
    sh:name "auto stop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "AUTO_STOP_AT_END_DATE" "AUTO_STOP_AT_WINNER" "AUTO_STOP_DISABLED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/campaignCriteria> ;
    sh:name "campaign criteria" ;
    sh:node linkedin:CampaignShape ;
    sh:class linkedin:Campaign ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/campaignGroupCriteria> ;
    sh:name "campaign group criteria" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/cell> ;
    sh:name "cell" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/cellResults> ;
    sh:name "cell results" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/cells> ;
    sh:name "cells" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/code> ;
    sh:name "code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/confidence> ;
    sh:name "confidence" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/confidenceInterval> ;
    sh:name "confidence interval" ;
    sh:node linkedin:ConfidenceIntervalShape ;
    sh:class linkedin:ConfidenceInterval ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/confidenceIntervalLowerBound> ;
    sh:name "confidence interval lower bound" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/confidenceIntervalUpperBound> ;
    sh:name "confidence interval upper bound" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/detail> ;
    sh:name "detail" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/details> ;
    sh:name "details" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/endedAt> ;
    sh:name "ended at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/executionState> ;
    sh:name "execution state" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ENDED" "ON_HOLD" "PENDING" "RUNNING" "STOPPED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/executionStateCriteria> ;
    sh:name "execution state criteria" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ENDED" "ON_HOLD" "PENDING" "RUNNING" "STOPPED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/experimentId> ;
    sh:name "experiment id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/experimentIds> ;
    sh:name "experiment ids" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/generatedOn> ;
    sh:name "generated on" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/id> ;
    sh:name "id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/idCriteria> ;
    sh:name "id criteria" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/items> ;
    sh:name "items" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/keyMetric> ;
    sh:name "key metric" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CPC" "CPM" "CPMS" "CPV" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/keyMetricCriteria> ;
    sh:name "key metric criteria" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CPC" "CPM" "CPMS" "CPV" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/level> ;
    sh:name "level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ERROR" "WARNING" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/message> ;
    sh:name "message" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/minimumDetectableEffect> ;
    sh:name "minimum detectable effect" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/pValue> ;
    sh:name "p value" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/pathErrors> ;
    sh:name "path errors" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/referenceCampaign> ;
    sh:name "reference campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/scheduledEndAt> ;
    sh:name "scheduled end at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/scheduledStartAt> ;
    sh:name "scheduled start at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/terminationReason> ;
    sh:name "termination reason" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/trafficWeight> ;
    sh:name "traffic weight" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/userIntendedState> ;
    sh:name "user intended state" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACTIVE" "CANCELED" "DRAFT" "PAUSED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/userIntendedStateCriteria> ;
    sh:name "user intended state criteria" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACTIVE" "CANCELED" "DRAFT" "PAUSED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/validatedAt> ;
    sh:name "validated at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ABTesting/winner> ;
    sh:name "winner" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Confidence Interval
linkedin:ConfidenceIntervalShape a sh:NodeShape ;
  sh:targetClass linkedin:ConfidenceInterval ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConfidenceInterval/lowerBound> ;
    sh:name "lower bound" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConfidenceInterval/upperBound> ;
    sh:name "upper bound" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Account
linkedin:AdAccountShape a sh:NodeShape ;
  sh:targetClass linkedin:AdAccount ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/currency> ;
    sh:name "currency" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/id> ;
    sh:name "id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/localizedName> ;
    sh:name "localized name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/logo> ;
    sh:name "logo" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/notifiedOnCampaignOptimization> ;
    sh:name "notified on campaign optimization" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/notifiedOnCreativeApproval> ;
    sh:name "notified on creative approval" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/notifiedOnCreativeRejection> ;
    sh:name "notified on creative rejection" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/notifiedOnEndOfCampaign> ;
    sh:name "notified on end of campaign" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/notifiedOnNewFeaturesEnabled> ;
    sh:name "notified on new features enabled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/reference> ;
    sh:name "reference" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/referenceInfo> ;
    sh:name "reference info" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/servingStatuses> ;
    sh:name "serving statuses" ;
    sh:datatype xsd:string ;
    sh:in ( "ACCOUNT_END_DATE_HOLD" "ACCOUNT_TOTAL_BUDGET_HOLD" "BILLING_HOLD" "INTERNAL_HOLD" "RESTRICTED_HOLD" "RUNNABLE" "STOPPED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/status> ;
    sh:name "status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACTIVE" "CANCELED" "DRAFT" "PENDING_DELETION" "REMOVED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/test> ;
    sh:name "test" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "BUSINESS" "ENTERPRISE" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAccount/vanityName> ;
    sh:name "vanity name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Campaign
linkedin:CampaignShape a sh:NodeShape ;
  sh:targetClass linkedin:Campaign ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/accountInfo> ;
    sh:name "account info" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/associatedEntity> ;
    sh:name "associated entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/associatedEntityInfo> ;
    sh:name "associated entity info" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/audienceExpansionEnabled> ;
    sh:name "audience expansion enabled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/campaignGroup> ;
    sh:name "campaign group" ;
    sh:node linkedin:CampaignGroupShape ;
    sh:class linkedin:CampaignGroup ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/campaignGroupInfo> ;
    sh:name "campaign group info" ;
    sh:node linkedin:CampaignGroupShape ;
    sh:class linkedin:CampaignGroup ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/connectedTelevisionOnly> ;
    sh:name "connected television only" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/costType> ;
    sh:name "cost type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "CPC" "CPM" "CPV" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/creativeSelection> ;
    sh:name "creative selection" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "OPTIMIZED" "ROUND_ROBIN" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/dailyBudgetAmount> ;
    sh:name "daily budget amount" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/dailyBudgetCurrencyCode> ;
    sh:name "daily budget currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/duration> ;
    sh:name "duration" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/exclude> ;
    sh:name "exclude" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/format> ;
    sh:name "format" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/frequency> ;
    sh:name "frequency" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/iabCategories> ;
    sh:name "iab categories" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/id> ;
    sh:name "id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/include> ;
    sh:name "include" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/localeCountry> ;
    sh:name "locale country" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/localeLanguage> ;
    sh:name "locale language" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/localizedName> ;
    sh:name "localized name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/logo> ;
    sh:name "logo" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/objectiveType> ;
    sh:name "objective type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "BRAND_AWARENESS" "ENGAGEMENT" "JOB_APPLICANTS" "LEAD_GENERATION" "VIDEO_VIEWS" "WEBSITE_CONVERSIONS" "WEBSITE_VISITS" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/offsiteDeliveryEnabled> ;
    sh:name "offsite delivery enabled" ;
    sh:datatype xsd:boolean ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/offsitePreferences> ;
    sh:name "offsite preferences" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/optimizationPreference> ;
    sh:name "optimization preference" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/optimizationTargetType> ;
    sh:name "optimization target type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CAP_COST_AND_MAXIMIZE_CLICKS" "CAP_COST_AND_MAXIMIZE_IMPRESSIONS" "CAP_COST_AND_MAXIMIZE_LEADS" "CAP_COST_AND_MAXIMIZE_VIDEO_VIEWS" "ENHANCED_CONVERSION" "MAX_CLICK" "MAX_CONVERSION" "MAX_IMPRESSION" "MAX_LEAD" "MAX_QUALIFIED_LEAD" "MAX_REACH" "MAX_VIDEO_VIEW" "NONE" "TARGET_COST_PER_CLICK" "TARGET_COST_PER_IMPRESSION" "TARGET_COST_PER_VIDEO_VIEW" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/optimizationType> ;
    sh:name "optimization type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/pacingStrategy> ;
    sh:name "pacing strategy" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACCELERATED" "LIFETIME" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/pageSize> ;
    sh:name "page size" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/pageToken> ;
    sh:name "page token" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/politicalIntent> ;
    sh:name "political intent" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "NOT_DECLARED" "NOT_POLITICAL" "POLITICAL" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/publisherRestrictionFiles> ;
    sh:name "publisher restriction files" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/runScheduleEnd> ;
    sh:name "run schedule end" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/runScheduleStart> ;
    sh:name "run schedule start" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/searchAssociatedEntityValues> ;
    sh:name "search associated entity values" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/searchCampaignGroupValues> ;
    sh:name "search campaign group values" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/searchIdValues> ;
    sh:name "search id values" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/searchNameValues> ;
    sh:name "search name values" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/searchStatusValues> ;
    sh:name "search status values" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACTIVE" "ARCHIVED" "CANCELED" "COMPLETED" "DRAFT" "PAUSED" "PENDING_DELETION" "REMOVED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/searchTest> ;
    sh:name "search test" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/searchTypeValues> ;
    sh:name "search type values" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "DYNAMIC" "SPONSORED_INMAILS" "SPONSORED_UPDATES" "TEXT_AD" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/servingStatuses> ;
    sh:name "serving statuses" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACCOUNT_END_DATE_HOLD" "ACCOUNT_SERVING_HOLD" "ACCOUNT_TOTAL_BUDGET_HOLD" "CAMPAIGN_AUDIENCE_COUNT_HOLD" "CAMPAIGN_END_DATE_HOLD" "CAMPAIGN_GROUP_END_DATE_HOLD" "CAMPAIGN_GROUP_START_DATE_HOLD" "CAMPAIGN_GROUP_STATUS_HOLD" "CAMPAIGN_GROUP_TOTAL_BUDGET_HOLD" "CAMPAIGN_START_DATE_HOLD" "CAMPAIGN_TOTAL_BUDGET_HOLD" "RUNNABLE" "STOPPED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/sortOrder> ;
    sh:name "sort order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ASCENDING" "DESCENDING" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/status> ;
    sh:name "status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "ACTIVE" "ARCHIVED" "CANCELED" "COMPLETED" "DRAFT" "PAUSED" "PENDING_DELETION" "REMOVED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/targetingCriteria> ;
    sh:name "targeting criteria" ;
    sh:node linkedin:TargetingCriteriaShape ;
    sh:class linkedin:TargetingCriteria ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/test> ;
    sh:name "test" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/timeSpan> ;
    sh:name "time span" ;
    sh:node linkedin:TimeRangeShape ;
    sh:class linkedin:TimeRange ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/totalBudgetAmount> ;
    sh:name "total budget amount" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/totalBudgetCurrencyCode> ;
    sh:name "total budget currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "DYNAMIC" "SPONSORED_INMAILS" "SPONSORED_UPDATES" "TEXT_AD" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/unit> ;
    sh:name "unit" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/unitCostAmount> ;
    sh:name "unit cost amount" ;
    sh:datatype xsd:decimal ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/unitCostCurrencyCode> ;
    sh:name "unit cost currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/vanityName> ;
    sh:name "vanity name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Campaign/versionTag> ;
    sh:name "version tag" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Campaign Group
linkedin:CampaignGroupShape a sh:NodeShape ;
  sh:targetClass linkedin:CampaignGroup ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/accountInfo> ;
    sh:name "account info" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/allowedCampaignTypes> ;
    sh:name "allowed campaign types" ;
    sh:datatype xsd:string ;
    sh:in ( "DYNAMIC" "SPONSORED_INMAILS" "SPONSORED_UPDATES" "TEXT_AD" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/backfilled> ;
    sh:name "backfilled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/budgetOptimizationBidStrategy> ;
    sh:name "budget optimization bid strategy" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "COST_CAP" "MANUAL" "MAXIMUM_DELIVERY" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/budgetOptimizationBudgetOptimizationStrategy> ;
    sh:name "budget optimization budget optimization strategy" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "DYNAMIC" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/dailyBudget> ;
    sh:name "daily budget" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/id> ;
    sh:name "id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/objectiveType> ;
    sh:name "objective type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "BRAND_AWARENESS" "ENGAGEMENT" "JOB_APPLICANTS" "LEAD_GENERATION" "VIDEO_VIEWS" "WEBSITE_CONVERSIONS" "WEBSITE_VISIT" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/pageSize> ;
    sh:name "page size" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/pageToken> ;
    sh:name "page token" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/runScheduleEnd> ;
    sh:name "run schedule end" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/runScheduleStart> ;
    sh:name "run schedule start" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/searchIdValues> ;
    sh:name "search id values" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/searchNameValues> ;
    sh:name "search name values" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/searchStatusValues> ;
    sh:name "search status values" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACTIVE" "ARCHIVED" "CANCELED" "DRAFT" "PAUSED" "PENDING_DELETION" "REMOVED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/searchTest> ;
    sh:name "search test" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/servingStatuses> ;
    sh:name "serving statuses" ;
    sh:datatype xsd:string ;
    sh:in ( "ACCOUNT_END_DATE_HOLD" "ACCOUNT_TOTAL_BUDGET_HOLD" "BILLING_HOLD" "CAMPAIGN_GROUP_END_DATE_HOLD" "CAMPAIGN_GROUP_START_DATE_HOLD" "CAMPAIGN_GROUP_TOTAL_BUDGET_HOLD" "RUNNABLE" "STOPPED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/sortOrder> ;
    sh:name "sort order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ASCENDING" "DESCENDING" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/status> ;
    sh:name "status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACTIVE" "ARCHIVED" "CANCELLED" "DRAFT" "PAUSED" "PENDING_DELETION" "REMOVED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/test> ;
    sh:name "test" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/totalBudgetAmount> ;
    sh:name "total budget amount" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CampaignGroup/totalBudgetCurrencyCode> ;
    sh:name "total budget currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Targeting Criteria
linkedin:TargetingCriteriaShape a sh:NodeShape ;
  sh:targetClass linkedin:TargetingCriteria ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TargetingCriteria/include> ;
    sh:name "include" ;
    sh:node linkedin:TargetingClauseShape ;
    sh:class linkedin:TargetingClause ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TargetingCriteria/exclude> ;
    sh:name "exclude" ;
    sh:node linkedin:TargetingClauseShape ;
    sh:class linkedin:TargetingClause ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Targeting Clause
linkedin:TargetingClauseShape a sh:NodeShape ;
  sh:targetClass linkedin:TargetingClause ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TargetingClause/and> ;
    sh:name "and" ;
    sh:node linkedin:TargetingFacetGroupShape ;
    sh:class linkedin:TargetingFacetGroup ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TargetingClause/or> ;
    sh:name "or" ;
    sh:node linkedin:TargetingFacetGroupShape ;
    sh:class linkedin:TargetingFacetGroup ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Targeting Facet Group
linkedin:TargetingFacetGroupShape a sh:NodeShape ;
  sh:targetClass linkedin:TargetingFacetGroup ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TargetingFacetGroup/facet> ;
    sh:name "facet" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TargetingFacetGroup/entities> ;
    sh:name "entities" ;
    sh:datatype xsd:string ;
  ] .

# Shape for Time Range
linkedin:TimeRangeShape a sh:NodeShape ;
  sh:targetClass linkedin:TimeRange ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TimeRange/start> ;
    sh:name "start" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TimeRange/end> ;
    sh:name "end" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Account Access Controls
linkedin:AccountAccessControlsShape a sh:NodeShape ;
  sh:targetClass linkedin:AccountAccessControls ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AccountAccessControls/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AccountAccessControls/role> ;
    sh:name "role" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACCOUNT_BILLING_ADMIN" "ACCOUNT_MANAGER" "CAMPAIGN_MANAGER" "CREATIVE_MANAGER" "VIEWER" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AccountAccessControls/user> ;
    sh:name "user" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Account Users
linkedin:AccountUsersShape a sh:NodeShape ;
  sh:targetClass linkedin:AccountUsers ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AccountUsers/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AccountUsers/createdAt> ;
    sh:name "created at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AccountUsers/lastModifiedAt> ;
    sh:name "last modified at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AccountUsers/role> ;
    sh:name "role" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AccountUsers/user> ;
    sh:name "user" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Analytics
linkedin:AdAnalyticsShape a sh:NodeShape ;
  sh:targetClass linkedin:AdAnalytics ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/account> ;
    sh:name "account" ;
    sh:node linkedin:AdAccountShape ;
    sh:class linkedin:AdAccount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/accounts> ;
    sh:name "accounts" ;
    sh:node linkedin:AdAccountShape ;
    sh:class linkedin:AdAccount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/actionClicks> ;
    sh:name "action clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/adUnitClicks> ;
    sh:name "ad unit clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/appointmentsScheduled> ;
    sh:name "appointments scheduled" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/approximateMemberReach> ;
    sh:name "approximate member reach" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/audiencePenetration> ;
    sh:name "audience penetration" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/averageDaysToClose> ;
    sh:name "average days to close" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/averageDealSizeInUsd> ;
    sh:name "average deal size in usd" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/averageDwellTime> ;
    sh:name "average dwell time" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/averageEventWatchTime> ;
    sh:name "average event watch time" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/averageEventWatchTimeOver15Seconds> ;
    sh:name "average event watch time over15seconds" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/averageEventWatchTimeOver2Minutes> ;
    sh:name "average event watch time over2minutes" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/averageEventWatchTimeOver30Seconds> ;
    sh:name "average event watch time over30seconds" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/averageVideoWatchTime> ;
    sh:name "average video watch time" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/campaignGroups> ;
    sh:name "campaign groups" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/campaignTypeValue> ;
    sh:name "campaign type value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "DYNAMIC" "SPONSORED_INMAILS" "SPONSORED_UPDATES" "TEXT_AD" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/campaigns> ;
    sh:name "campaigns" ;
    sh:node linkedin:CampaignShape ;
    sh:class linkedin:Campaign ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/cardClicks> ;
    sh:name "card clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/cardImpressions> ;
    sh:name "card impressions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/clicks> ;
    sh:name "clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/closedWonOpportunities> ;
    sh:name "closed won opportunities" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/commentLikes> ;
    sh:name "comment likes" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/comments> ;
    sh:name "comments" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/companies> ;
    sh:name "companies" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/companyPageClicks> ;
    sh:name "company page clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/conversionValueInLocalCurrency> ;
    sh:name "conversion value in local currency" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/costInLocalCurrency> ;
    sh:name "cost in local currency" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/costInUsd> ;
    sh:name "cost in usd" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/costPerEventView> ;
    sh:name "cost per event view" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/costPerEventViewOver15Seconds> ;
    sh:name "cost per event view over15seconds" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/costPerEventViewOver2Minutes> ;
    sh:name "cost per event view over2minutes" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/costPerEventViewOver30Seconds> ;
    sh:name "cost per event view over30seconds" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/costPerQualifiedLead> ;
    sh:name "cost per qualified lead" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/dateRange> ;
    sh:name "date range" ;
    sh:node linkedin:DateRangeShape ;
    sh:class linkedin:DateRange ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/dateRangeEnd> ;
    sh:name "date range end" ;
    sh:node linkedin:DayDateShape ;
    sh:class linkedin:DayDate ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/dateRangeStart> ;
    sh:name "date range start" ;
    sh:node linkedin:DayDateShape ;
    sh:class linkedin:DayDate ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/documentCompletions> ;
    sh:name "document completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/documentFirstQuartileCompletions> ;
    sh:name "document first quartile completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/documentMidpointCompletions> ;
    sh:name "document midpoint completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/documentThirdQuartileCompletions> ;
    sh:name "document third quartile completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/downloadClicks> ;
    sh:name "download clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/eventViews> ;
    sh:name "event views" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/eventViewsOver15Seconds> ;
    sh:name "event views over15seconds" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/eventViewsOver2Minutes> ;
    sh:name "event views over2minutes" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/eventViewsOver30Seconds> ;
    sh:name "event views over30seconds" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/eventWatchTime> ;
    sh:name "event watch time" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/externalWebsiteConversions> ;
    sh:name "external website conversions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/externalWebsitePostClickConversions> ;
    sh:name "external website post click conversions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/externalWebsitePostViewConversions> ;
    sh:name "external website post view conversions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/follows> ;
    sh:name "follows" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/fullScreenPlays> ;
    sh:name "full screen plays" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/headlineClicks> ;
    sh:name "headline clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/headlineImpressions> ;
    sh:name "headline impressions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/impressions> ;
    sh:name "impressions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/jobApplications> ;
    sh:name "job applications" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/jobApplyClicks> ;
    sh:name "job apply clicks" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/landingPageClicks> ;
    sh:name "landing page clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/leadGenerationMailContactInfoShares> ;
    sh:name "lead generation mail contact info shares" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/leadGenerationMailInterestedClicks> ;
    sh:name "lead generation mail interested clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/likes> ;
    sh:name "likes" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/objectiveTypeValue> ;
    sh:name "objective type value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "BRAND_AWARENESS" "CREATIVE_ENGAGEMENT" "ENGAGEMENT" "JOB_APPLICANT" "LEAD_GENERATION" "VIDEO_VIEW" "WEBSITE_CONVERSION" "WEBSITE_TRAFFIC" "WEBSITE_VISIT" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/oneClickLeadFormOpens> ;
    sh:name "one click lead form opens" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/oneClickLeads> ;
    sh:name "one click leads" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/openOpportunities> ;
    sh:name "open opportunities" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/opens> ;
    sh:name "opens" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/opportunityAmountInUsd> ;
    sh:name "opportunity amount in usd" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/opportunityWinRate> ;
    sh:name "opportunity win rate" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/otherEngagements> ;
    sh:name "other engagements" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/pivotValue> ;
    sh:name "pivot value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACCOUNT" "CAMPAIGN" "CAMPAIGN_GROUP" "CARD_INDEX" "COMPANY" "CONVERSATION_NODE" "CONVERSATION_NODE_OPTION_INDEX" "CONVERSION" "CREATIVE" "EVENT_STAGE" "IMPRESSION_DEVICE_TYPE" "MEMBER_COMPANY" "MEMBER_COMPANY_SIZE" "MEMBER_COUNTRY_V2" "MEMBER_INDUSTRY" "MEMBER_JOB_FUNCTION" "MEMBER_JOB_TITLE" "MEMBER_REGION_V2" "MEMBER_SENIORITY" "PLACEMENT_NAME" "SERVING_LOCATION" "SHARE" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/pivotValues> ;
    sh:name "pivot values" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/pivots> ;
    sh:name "pivots" ;
    sh:datatype xsd:string ;
    sh:in ( "ACCOUNT" "CAMPAIGN" "CAMPAIGN_GROUP" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/pivotsValue> ;
    sh:name "pivots value" ;
    sh:datatype xsd:string ;
    sh:in ( "ACCOUNT" "CAMPAIGN" "CAMPAIGN_GROUP" "CARD_INDEX" "COMPANY" "CONVERSATION_NODE" "CONVERSATION_NODE_OPTION_INDEX" "CONVERSION" "CREATIVE" "EVENT_STAGE" "IMPRESSION_DEVICE_TYPE" "OBJECTIVE_TYPE" "PLACEMENT_NAME" "SERVING_LOCATION" "SHARE" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/postClickJobApplications> ;
    sh:name "post click job applications" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/postClickJobApplyClicks> ;
    sh:name "post click job apply clicks" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/postClickRegistrations> ;
    sh:name "post click registrations" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/postViewJobApplications> ;
    sh:name "post view job applications" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/postViewJobApplyClicks> ;
    sh:name "post view job apply clicks" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/postViewRegistrations> ;
    sh:name "post view registrations" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/qualifiedLeads> ;
    sh:name "qualified leads" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/reactions> ;
    sh:name "reactions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/registrations> ;
    sh:name "registrations" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/returnOnAdSpend> ;
    sh:name "return on ad spend" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/revenueAttributionMetrics> ;
    sh:name "revenue attribution metrics" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/revenueWonInUsd> ;
    sh:name "revenue won in usd" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/sends> ;
    sh:name "sends" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/shares> ;
    sh:name "shares" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/sortByField> ;
    sh:name "sort by field" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CLICKS" "COST_IN_LOCAL_CURRENCY" "EXTERNAL_WEBSITE_CONVERSIONS" "IMPRESSIONS" "ONE_CLICK_LEADS" "OPENS" "SENDS" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/sortByOrder> ;
    sh:name "sort by order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ASCENDING" "DESCENDING" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/subscriptionClicks> ;
    sh:name "subscription clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/talentLeads> ;
    sh:name "talent leads" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/textUrlClicks> ;
    sh:name "text url clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/timeGranularityValue> ;
    sh:name "time granularity value" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "ALL" "DAILY" "MONTHLY" "YEARLY" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/totalEngagements> ;
    sh:name "total engagements" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/validWorkEmailLeads> ;
    sh:name "valid work email leads" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/videoCompletions> ;
    sh:name "video completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/videoFirstQuartileCompletions> ;
    sh:name "video first quartile completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/videoMidpointCompletions> ;
    sh:name "video midpoint completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/videoStarts> ;
    sh:name "video starts" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/videoThirdQuartileCompletions> ;
    sh:name "video third quartile completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/videoViews> ;
    sh:name "video views" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/videoWatchTime> ;
    sh:name "video watch time" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralCardClicks> ;
    sh:name "viral card clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralCardImpressions> ;
    sh:name "viral card impressions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralClicks> ;
    sh:name "viral clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralCommentLikes> ;
    sh:name "viral comment likes" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralComments> ;
    sh:name "viral comments" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralCompanyPageClicks> ;
    sh:name "viral company page clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralDocumentCompletions> ;
    sh:name "viral document completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralDocumentFirstQuartileCompletions> ;
    sh:name "viral document first quartile completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralDocumentMidpointCompletions> ;
    sh:name "viral document midpoint completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralDocumentThirdQuartileCompletions> ;
    sh:name "viral document third quartile completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralDownloadClicks> ;
    sh:name "viral download clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralExternalWebsiteConversions> ;
    sh:name "viral external website conversions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralExternalWebsitePostClickConversions> ;
    sh:name "viral external website post click conversions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralExternalWebsitePostViewConversions> ;
    sh:name "viral external website post view conversions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralFollows> ;
    sh:name "viral follows" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralFullScreenPlays> ;
    sh:name "viral full screen plays" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralImpressions> ;
    sh:name "viral impressions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralJobApplications> ;
    sh:name "viral job applications" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralJobApplyClicks> ;
    sh:name "viral job apply clicks" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralLandingPageClicks> ;
    sh:name "viral landing page clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralLikes> ;
    sh:name "viral likes" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralOneClickLeadFormOpens> ;
    sh:name "viral one click lead form opens" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralOneClickLeads> ;
    sh:name "viral one click leads" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralOtherEngagements> ;
    sh:name "viral other engagements" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralPostClickJobApplications> ;
    sh:name "viral post click job applications" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralPostClickJobApplyClicks> ;
    sh:name "viral post click job apply clicks" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralPostClickRegistrations> ;
    sh:name "viral post click registrations" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralPostViewJobApplications> ;
    sh:name "viral post view job applications" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralPostViewJobApplyClicks> ;
    sh:name "viral post view job apply clicks" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralPostViewRegistrations> ;
    sh:name "viral post view registrations" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralReactions> ;
    sh:name "viral reactions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralRegistrations> ;
    sh:name "viral registrations" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralShares> ;
    sh:name "viral shares" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralSubscriptionClicks> ;
    sh:name "viral subscription clicks" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralTotalEngagements> ;
    sh:name "viral total engagements" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralVideoCompletions> ;
    sh:name "viral video completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralVideoFirstQuartileCompletions> ;
    sh:name "viral video first quartile completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralVideoMidpointCompletions> ;
    sh:name "viral video midpoint completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralVideoStarts> ;
    sh:name "viral video starts" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralVideoThirdQuartileCompletions> ;
    sh:name "viral video third quartile completions" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdAnalytics/viralVideoViews> ;
    sh:name "viral video views" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Date Range
linkedin:DateRangeShape a sh:NodeShape ;
  sh:targetClass linkedin:DateRange ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.DateRange/start> ;
    sh:name "start" ;
    sh:node linkedin:DayDateShape ;
    sh:class linkedin:DayDate ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.DateRange/end> ;
    sh:name "end" ;
    sh:node linkedin:DayDateShape ;
    sh:class linkedin:DayDate ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] .

# Shape for Day Date
linkedin:DayDateShape a sh:NodeShape ;
  sh:targetClass linkedin:DayDate ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.DayDate/year> ;
    sh:name "year" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.DayDate/month> ;
    sh:name "month" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.DayDate/day> ;
    sh:name "day" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Budget Pricing
linkedin:AdBudgetPricingShape a sh:NodeShape ;
  sh:targetClass linkedin:AdBudgetPricing ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/bidLimitsMax> ;
    sh:name "bid limits max" ;
    sh:node linkedin:MoneyShape ;
    sh:class linkedin:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/bidLimitsMin> ;
    sh:name "bid limits min" ;
    sh:node linkedin:MoneyShape ;
    sh:class linkedin:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/bidType> ;
    sh:name "bid type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "CPC" "CPM" "CPV" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/campaignType> ;
    sh:name "campaign type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "SPONSORED_INMAILS" "SPONSORED_UPDATES" "TEXT_AD" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/countryCode> ;
    sh:name "country code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/currency> ;
    sh:name "currency" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/dailyBudget> ;
    sh:name "daily budget" ;
    sh:node linkedin:MoneyShape ;
    sh:class linkedin:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/dailyBudgetLimitsDefault> ;
    sh:name "daily budget limits default" ;
    sh:node linkedin:MoneyShape ;
    sh:class linkedin:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/dailyBudgetLimitsMax> ;
    sh:name "daily budget limits max" ;
    sh:node linkedin:MoneyShape ;
    sh:class linkedin:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/dailyBudgetLimitsMin> ;
    sh:name "daily budget limits min" ;
    sh:node linkedin:MoneyShape ;
    sh:class linkedin:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/matchType> ;
    sh:name "match type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "AUDIENCE_EXPANDED" "EXACT" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/objectiveType> ;
    sh:name "objective type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "BRAND_AWARENESS" "CREATIVE_ENGAGEMENT" "ENGAGEMENT" "JOB_APPLICATION" "LEAD_GENERATION" "TALENT_LEAD" "VIDEO_VIEW" "WEBSITE_CONVERSION" "WEBSITE_TRAFFIC" "WEBSITE_VISIT" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/optimizationTargetType> ;
    sh:name "optimization target type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "AWARENESS" "CAP_COST_AND_MAXIMIZE_CLICKS" "CAP_COST_AND_MAXIMIZE_IMPRESSIONS" "CAP_COST_AND_MAXIMIZE_LEADS" "CAP_COST_AND_MAXIMIZE_VIDEO_VIEWS" "ENHANCED_CONVERSION" "MAX" "MAX_CLICK" "MAX_CONVERSION" "MAX_LEAD" "MAX_VIDEO_VIEW" "NONE" "TARGET_COST_PER_CLICK" "TARGET_COST_PER_IMPRESSION" "TARGET_COST_PER_VIDEO_VIEW" "WEBSITE_VISIT" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/suggestedBidDefault> ;
    sh:name "suggested bid default" ;
    sh:node linkedin:MoneyShape ;
    sh:class linkedin:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/suggestedBidMax> ;
    sh:name "suggested bid max" ;
    sh:node linkedin:MoneyShape ;
    sh:class linkedin:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/suggestedBidMin> ;
    sh:name "suggested bid min" ;
    sh:node linkedin:MoneyShape ;
    sh:class linkedin:Money ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdBudgetPricing/targetingCriteria> ;
    sh:name "targeting criteria" ;
    sh:node linkedin:TargetingCriteriaShape ;
    sh:class linkedin:TargetingCriteria ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Money
linkedin:MoneyShape a sh:NodeShape ;
  sh:targetClass linkedin:Money ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Money/amount> ;
    sh:name "amount" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Money/currencyCode> ;
    sh:name "currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad Preview
linkedin:AdPreviewShape a sh:NodeShape ;
  sh:targetClass linkedin:AdPreview ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdPreview/creative> ;
    sh:name "creative" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdPreview/inlineContent> ;
    sh:name "inline content" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdPreview/placement> ;
    sh:name "placement" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdPreview/preview> ;
    sh:name "preview" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Ads Targeting
linkedin:AdsTargetingShape a sh:NodeShape ;
  sh:targetClass linkedin:AdsTargeting ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdsTargeting/entities> ;
    sh:name "entities" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdsTargeting/entityType> ;
    sh:name "entity type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "AGE" "COMPANY" "COMPANY_SIZE" "DEGREE" "FIELD_OF_STUDY" "FUNCTION" "GENDER" "GROUP" "INDUSTRY" "INTEREST" "LOCALE" "MEMBER_BEHAVIOR" "SCHOOL" "SENIORITY" "SKILL" "TITLE" "YEARS_OF_EXPERIENCE" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdsTargeting/facet> ;
    sh:name "facet" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdsTargeting/fetchType> ;
    sh:name "fetch type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "LAZY" "SINGLE_NODE" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdsTargeting/localeCountry> ;
    sh:name "locale country" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdsTargeting/localeLanguage> ;
    sh:name "locale language" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdsTargeting/queryVersion> ;
    sh:name "query version" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdsTargeting/urns> ;
    sh:name "urns" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdsTargeting/useCase> ;
    sh:name "use case" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CONNECTED_TELEVISION_ONLY_CAMPAIGN" ) ;
  ] .

# Shape for Ad Supply Forecasts
linkedin:AdSupplyForecastsShape a sh:NodeShape ;
  sh:targetClass linkedin:AdSupplyForecasts ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/account> ;
    sh:name "account" ;
    sh:node linkedin:AdAccountShape ;
    sh:class linkedin:AdAccount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/campaign> ;
    sh:name "campaign" ;
    sh:node linkedin:CampaignShape ;
    sh:class linkedin:Campaign ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/campaignType> ;
    sh:name "campaign type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "DYNAMIC" "SPONSORED_INMAILS" "SPONSORED_UPDATES" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/competingBidBidPriceAmount> ;
    sh:name "competing bid bid price amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/competingBidBidPriceCurrencyCode> ;
    sh:name "competing bid bid price currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/competingBidBidType> ;
    sh:name "competing bid bid type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CPC" "CPM" "CPV" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/connectedTelevisionOnly> ;
    sh:name "connected television only" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/costCap> ;
    sh:name "cost cap" ;
    sh:datatype xsd:decimal ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/creativeType> ;
    sh:name "creative type" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/dailyBudget> ;
    sh:name "daily budget" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/enableAudienceExpansion> ;
    sh:name "enable audience expansion" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/enableAudienceNetwork> ;
    sh:name "enable audience network" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/granularity> ;
    sh:name "granularity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CUSTOM" "DAILY" "SEVEN_DAY" "THIRTY_DAY" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/metricType> ;
    sh:name "metric type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CLICK" "CLICK_PER_MILLION_IMPRESSIONS" "CONVERSION" "COST_PER_MILLION_CLICKS" "COST_PER_MILLION_IMPRESSIONS" "COST_PER_MILLION_LEADS" "COST_PER_MILLION_MESSAGE_SENDS" "COST_PER_MILLION_REACHES" "COST_PER_MILLION_VIEWS" "IMPRESSION" "LEAD" "LEAD_PER_MILLION_IMPRESSIONS" "MAX_POTENTIAL_BUDGET" "REACH" "REACH_PER_MILLION_IMPRESSIONS" "SPENDING" "SPONSORED_INMAIL_SEND" "VIDEO_VIEW" "VIDEO_VIEW_PER_MILLION_IMPRESSIONS" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/objectiveType> ;
    sh:name "objective type" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/optimizationTarget> ;
    sh:name "optimization target" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/targetCost> ;
    sh:name "target cost" ;
    sh:datatype xsd:decimal ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/targetingCriteria> ;
    sh:name "targeting criteria" ;
    sh:node linkedin:TargetingCriteriaShape ;
    sh:class linkedin:TargetingCriteria ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/timeRangeEnd> ;
    sh:name "time range end" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/timeRangeStart> ;
    sh:name "time range start" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/timeSeries> ;
    sh:name "time series" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/timeSeriesAdForecastRange> ;
    sh:name "time series ad forecast range" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/timeSeriesTimeStamp> ;
    sh:name "time series time stamp" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/timeSeriesValue> ;
    sh:name "time series value" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AdSupplyForecasts/totalBudget> ;
    sh:name "total budget" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] .

# Shape for Article Ads
linkedin:ArticleAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:ArticleAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ArticleAds/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ArticleAds/source> ;
    sh:name "source" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ArticleAds/thumbnail> ;
    sh:name "thumbnail" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ArticleAds/thumbnailAltText> ;
    sh:name "thumbnail alt text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ArticleAds/title> ;
    sh:name "title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Audience Counts
linkedin:AudienceCountsShape a sh:NodeShape ;
  sh:targetClass linkedin:AudienceCounts ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceCounts/active> ;
    sh:name "active" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceCounts/targetingCriteria> ;
    sh:name "targeting criteria" ;
    sh:node linkedin:TargetingCriteriaShape ;
    sh:class linkedin:TargetingCriteria ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceCounts/total> ;
    sh:name "total" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] .

# Shape for Audience Insights Api
linkedin:AudienceInsightsAPIShape a sh:NodeShape ;
  sh:targetClass linkedin:AudienceInsightsAPI ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/audienceInsight> ;
    sh:name "audience insight" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/entityCount> ;
    sh:name "entity count" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/entityPercentage> ;
    sh:name "entity percentage" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/groupBy> ;
    sh:name "group by" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/groupedBy> ;
    sh:name "grouped by" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/maxReturnCount> ;
    sh:name "max return count" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/request> ;
    sh:name "request" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/requestMetaData> ;
    sh:name "request meta data" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/segmentations> ;
    sh:name "segmentations" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/segmentsOrderedBy> ;
    sh:name "segments ordered by" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "AUDIENCE_PERCENTAGE" "HIERARCHICAL" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/sponsoredAccountUrn> ;
    sh:name "sponsored account urn" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/targetingCriteria> ;
    sh:name "targeting criteria" ;
    sh:node linkedin:TargetingCriteriaShape ;
    sh:class linkedin:TargetingCriteria ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/totalAudienceCount> ;
    sh:name "total audience count" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AudienceInsightsAPI/value> ;
    sh:name "value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Audit Stamp
linkedin:AuditStampShape a sh:NodeShape ;
  sh:targetClass linkedin:AuditStamp ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AuditStamp/actor> ;
    sh:name "actor" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.AuditStamp/time> ;
    sh:name "time" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Carousel Ads
linkedin:CarouselAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:CarouselAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CarouselAds/altText> ;
    sh:name "alt text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CarouselAds/cards> ;
    sh:name "cards" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CarouselAds/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CarouselAds/landingPage> ;
    sh:name "landing page" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CarouselAds/media> ;
    sh:name "media" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.CarouselAds/title> ;
    sh:name "title" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Conversation Ads
linkedin:ConversationAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:ConversationAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/bodySource> ;
    sh:name "body source" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/firstMessageContent> ;
    sh:name "first message content" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/headlineText> ;
    sh:name "headline text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/landingPage> ;
    sh:name "landing page" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/nextAction> ;
    sh:name "next action" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/nextContent> ;
    sh:name "next content" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/optionText> ;
    sh:name "option text" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/parentAccount> ;
    sh:name "parent account" ;
    sh:node linkedin:AdAccountShape ;
    sh:class linkedin:AdAccount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/replyType> ;
    sh:name "reply type" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "EXTERNAL_WEBSITE" "LEAD_GENERATION" "LEAD_GENERATION_THANK_YOU" "SIMPLE_REPLY" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversationAds/sponsoredConversation> ;
    sh:name "sponsored conversation" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Conversions APISchema
linkedin:ConversionsAPISchemaShape a sh:NodeShape ;
  sh:targetClass linkedin:ConversionsAPISchema ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/attributionType> ;
    sh:name "attribution type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "LAST_TOUCH_BY_CAMPAIGN" "LAST_TOUCH_BY_CONVERSION" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/autoAssociationType> ;
    sh:name "auto association type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ALL_CAMPAIGNS" "OBJECTIVE_BASED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/companyName> ;
    sh:name "company name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/conversion> ;
    sh:name "conversion" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/conversionHappenedAt> ;
    sh:name "conversion happened at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/conversionMethod> ;
    sh:name "conversion method" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CONVERSIONS_API" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/conversionValue> ;
    sh:name "conversion value" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/countryCode> ;
    sh:name "country code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/enabled> ;
    sh:name "enabled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/eventId> ;
    sh:name "event id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/externalIds> ;
    sh:name "external ids" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/firstName> ;
    sh:name "first name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/lastName> ;
    sh:name "last name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/lead> ;
    sh:name "lead" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/ownershipType> ;
    sh:name "ownership type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "OWNED" "SHARED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/postClickAttributionWindowSize> ;
    sh:name "post click attribution window size" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ADD_TO_CART" "LEAD" "PURCHASE" "QUALIFIED_LEAD" "SUBMIT_APPLICATION" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/title> ;
    sh:name "title" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ADD_BILLING_INFO" "ADD_TO_CART" "ADD_TO_LIST" "AD_CLICK" "AD_VIEW" "BOOK_APPOINTMENT" "COMPLETE_SIGNUP" "CONTACT" "DONATE" "DOWNLOAD" "INSTALL" "INVITE" "KEY_PAGE_VIEW" "LEAD" "LOGIN" "OUTBOUND_CLICK" "PHONE_CALL" "PURCHASE" "QUALIFIED_LEAD" "REQUEST_QUOTE" "SAVE" "SCHEDULE" "SEARCH" "SHARE" "SIGN_UP" "START_CHECKOUT" "START_TRIAL" "SUBMIT_APPLICATION" "SUBSCRIBE" "VIEW_CONTENT" "VIEW_VIDEO" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/user> ;
    sh:name "user" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/userIds> ;
    sh:name "user ids" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/userInfo> ;
    sh:name "user info" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/valueType> ;
    sh:name "value type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "DYNAMIC" "FIXED" "NO_VALUE" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ConversionsAPISchema/viewThroughAttributionWindowSize> ;
    sh:name "view through attribution window size" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ADD_TO_CART" "LEAD" "PURCHASE" "QUALIFIED_LEAD" "SUBMIT_APPLICATION" ) ;
  ] .

# Shape for Creative
linkedin:CreativeShape a sh:NodeShape ;
  sh:targetClass linkedin:Creative ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/creatives> ;
    sh:name "creatives" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/account> ;
    sh:name "account" ;
    sh:node linkedin:AdAccountShape ;
    sh:class linkedin:AdAccount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/campaign> ;
    sh:name "campaign" ;
    sh:node linkedin:CampaignShape ;
    sh:class linkedin:Campaign ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/campaigns> ;
    sh:name "campaigns" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/content> ;
    sh:name "content" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/contentAuthor> ;
    sh:name "content author" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/contentReferences> ;
    sh:name "content references" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/createdAt> ;
    sh:name "created at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/createdBy> ;
    sh:name "created by" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/destination> ;
    sh:name "destination" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/directSponsoredContent> ;
    sh:name "direct sponsored content" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/event> ;
    sh:name "event" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/hidePreviewVideo> ;
    sh:name "hide preview video" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/inlineContent> ;
    sh:name "inline content" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/intendedStatus> ;
    sh:name "intended status" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACTIVE" "ARCHIVED" "CANCELED" "DRAFT" "PAUSED" "PENDING_DELETION" "REMOVED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/intendedStatuses> ;
    sh:name "intended statuses" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/isServing> ;
    sh:name "is serving" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/isTestAccount> ;
    sh:name "is test account" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/label> ;
    sh:name "label" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/lastModifiedAt> ;
    sh:name "last modified at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/lastModifiedBy> ;
    sh:name "last modified by" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/leadgenCallToAction> ;
    sh:name "leadgen call to action" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/leadgenCreativeCallToActionDestinations> ;
    sh:name "leadgen creative call to action destinations" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/pageSize> ;
    sh:name "page size" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/pageToken> ;
    sh:name "page token" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/post> ;
    sh:name "post" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/preEventRegistrationImage> ;
    sh:name "pre event registration image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/rejectionReasons> ;
    sh:name "rejection reasons" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/review> ;
    sh:name "review" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/servingHoldReasons> ;
    sh:name "serving hold reasons" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACCOUNT_END_DATE_HOLD" "ACCOUNT_SERVING_HOLD" "ACCOUNT_TOTAL_BUDGET_HOLD" "CAMPAIGN_AUDIENCE_COUNT_HOLD" "CAMPAIGN_END_DATE_HOLD" "CAMPAIGN_GROUP_END_DATE_HOLD" "CAMPAIGN_GROUP_START_DATE_HOLD" "CAMPAIGN_GROUP_STATUS_HOLD" "CAMPAIGN_GROUP_TOTAL_BUDGET_HOLD" "CAMPAIGN_START_DATE_HOLD" "CAMPAIGN_STOPPED" "CAMPAIGN_TOTAL_BUDGET_HOLD" "FORM_HOLD" "JOB_POSTING_INVALID" "JOB_POSTING_ON_HOLD" "PROCESSING" "PROCESSING_FAILED" "REFERRED_CONTENT_QUALITY_HOLD" "REJECTED" "STOPPED" "UNDER_REVIEW" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/sortOrder> ;
    sh:name "sort order" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.Creative/status> ;
    sh:name "status" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "APPROVED" "NEEDS_REVIEW" "PENDING" "REJECTED" ) ;
  ] .

# Shape for Document Ads
linkedin:DocumentAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:DocumentAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.DocumentAds/gatedLeadgenPreviewPageCount> ;
    sh:name "gated leadgen preview page count" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.DocumentAds/reference> ;
    sh:name "reference" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Engagement Retargeting
linkedin:EngagementRetargetingShape a sh:NodeShape ;
  sh:targetClass linkedin:EngagementRetargeting ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/created> ;
    sh:name "created" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/default> ;
    sh:name "default" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/defaultLookBack> ;
    sh:name "default look back" ;
    sh:node linkedin:TimeRangeShape ;
    sh:class linkedin:TimeRange ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/dmpSegmentId> ;
    sh:name "dmp segment id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/duration> ;
    sh:name "duration" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/engagementSource> ;
    sh:name "engagement source" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/engagementSourceType> ;
    sh:name "engagement source type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/engagementSourceTypeDescription> ;
    sh:name "engagement source type description" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/engagementSourceTypeStatus> ;
    sh:name "engagement source type status" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/engagementTrigger> ;
    sh:name "engagement trigger" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/engagementTriggerDescription> ;
    sh:name "engagement trigger description" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/engagementTriggerStatus> ;
    sh:name "engagement trigger status" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/id> ;
    sh:name "id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/lastModified> ;
    sh:name "last modified" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/maxLookBack> ;
    sh:name "max look back" ;
    sh:node linkedin:TimeRangeShape ;
    sh:class linkedin:TimeRange ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/minLookBack> ;
    sh:name "min look back" ;
    sh:node linkedin:TimeRangeShape ;
    sh:class linkedin:TimeRange ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/statusMessage> ;
    sh:name "status message" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/timeFrame> ;
    sh:name "time frame" ;
    sh:node linkedin:TimeRangeShape ;
    sh:class linkedin:TimeRange ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EngagementRetargeting/unit> ;
    sh:name "unit" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] .

# Shape for Event Ads
linkedin:EventAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:EventAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EventAds/contentAuthor> ;
    sh:name "content author" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EventAds/directSponsoredContent> ;
    sh:name "direct sponsored content" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EventAds/event> ;
    sh:name "event" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EventAds/hidePreviewVideo> ;
    sh:name "hide preview video" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EventAds/post> ;
    sh:name "post" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.EventAds/preEventRegistrationImage> ;
    sh:name "pre event registration image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Follower Ads
linkedin:FollowerAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:FollowerAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.FollowerAds/callToAction> ;
    sh:name "call to action" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "VISIT_ORGANIZATION_CAREERS_PAGE" "VISIT_ORGANIZATION_COMPANY_PAGE" "VISIT_ORGANIZATION_JOBS_PAGE" "VISIT_ORGANIZATION_LIFE_PAGE" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.FollowerAds/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.FollowerAds/headline> ;
    sh:name "headline" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.FollowerAds/logo> ;
    sh:name "logo" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.FollowerAds/organizationName> ;
    sh:name "organization name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.FollowerAds/showMemberProfilePhoto> ;
    sh:name "show member profile photo" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] .

# Shape for Insight Tag Conversion Tracking
linkedin:InsightTagConversionTrackingShape a sh:NodeShape ;
  sh:targetClass linkedin:InsightTagConversionTracking ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/associatedCampaigns> ;
    sh:name "associated campaigns" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/attributionType> ;
    sh:name "attribution type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "LAST_TOUCH_BY_CAMPAIGN" "LAST_TOUCH_BY_CONVERSION" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/blocked> ;
    sh:name "blocked" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/conversionId> ;
    sh:name "conversion id" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/created> ;
    sh:name "created" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/domainName> ;
    sh:name "domain name" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/enabled> ;
    sh:name "enabled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/firstPartyTrackingEnabled> ;
    sh:name "first party tracking enabled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/fmt> ;
    sh:name "fmt" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/id> ;
    sh:name "id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/insightTag> ;
    sh:name "insight tag" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/lastCallbackAt> ;
    sh:name "last callback at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/latestFirstPartyCallbackAt> ;
    sh:name "latest first party callback at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/oid> ;
    sh:name "oid" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/pid> ;
    sh:name "pid" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/postClickAttributionWindowSize> ;
    sh:name "post click attribution window size" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/role> ;
    sh:name "role" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "FULL" "USE_ONLY" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/sponsoredAccounts> ;
    sh:name "sponsored accounts" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/tag> ;
    sh:name "tag" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/targetAccount> ;
    sh:name "target account" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ADD_TO_CART" "DOWNLOAD" "INSTALL" "KEY_PAGE_VIEW" "LEAD" "OTHER" "PURCHASE" "SIGN_UP" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/url> ;
    sh:name "url" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/urlMatchRuleExpression> ;
    sh:name "url match rule expression" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/value> ;
    sh:name "value" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/valueType> ;
    sh:name "value type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "DYNAMIC" "FIXED" "NO_VALUE" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.InsightTagConversionTracking/viewThroughAttributionWindowSize> ;
    sh:name "view through attribution window size" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] .

# Shape for Jobs Ads
linkedin:JobsAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:JobsAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.JobsAds/buttonLabel> ;
    sh:name "button label" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.JobsAds/headline> ;
    sh:name "headline" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.JobsAds/logo> ;
    sh:name "logo" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.JobsAds/organizationName> ;
    sh:name "organization name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.JobsAds/showMemberProfilePhoto> ;
    sh:name "show member profile photo" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] .

# Shape for Lift Test Benchmarking Api
linkedin:LiftTestBenchmarkingAPIShape a sh:NodeShape ;
  sh:targetClass linkedin:LiftTestBenchmarkingAPI ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestBenchmarkingAPI/adLiftTest> ;
    sh:name "ad lift test" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestBenchmarkingAPI/benchmarkMetrics> ;
    sh:name "benchmark metrics" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestBenchmarkingAPI/id> ;
    sh:name "id" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestBenchmarkingAPI/peerGroupType> ;
    sh:name "peer group type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "GEO" "INDUSTRY" ) ;
  ] .

# Shape for Lift Test Management Api
linkedin:LiftTestManagementAPIShape a sh:NodeShape ;
  sh:targetClass linkedin:LiftTestManagementAPI ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/adLiftTestEntity> ;
    sh:name "ad lift test entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/adLiftTestId> ;
    sh:name "ad lift test id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/brandName> ;
    sh:name "brand name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/brandNameLocaleCountry> ;
    sh:name "brand name locale country" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/brandNameLocaleLanguage> ;
    sh:name "brand name locale language" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/budgetRequiredForKeyMetrics> ;
    sh:name "budget required for key metrics" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/code> ;
    sh:name "code" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/contentReviewVersion> ;
    sh:name "content review version" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/detailAssociatedEntity> ;
    sh:name "detail associated entity" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/detailPathErrors> ;
    sh:name "detail path errors" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/endReason> ;
    sh:name "end reason" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ACCOUNT_NOT_RECOVERABLE" "CAMPAIGN_GROUP_NOT_RECOVERABLE" "END_DATE_REACHED" "USER_CANCELED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/endedAt> ;
    sh:name "ended at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/executionState> ;
    sh:name "execution state" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CREATED" "ENDED" "ENDED_RESUMABLE" "SCHEDULED" "STARTED" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/id> ;
    sh:name "id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/items> ;
    sh:name "items" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/level> ;
    sh:name "level" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "ERROR" "WARNING" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/liftEntity> ;
    sh:name "lift entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/liftTestBudgetAmount> ;
    sh:name "lift test budget amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/liftTestBudgetCurrencyCode> ;
    sh:name "lift test budget currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/message> ;
    sh:name "message" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/numKeyMetrics> ;
    sh:name "num key metrics" ;
    sh:datatype xsd:int ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/requiredLiftTestBudgetAmount> ;
    sh:name "required lift test budget amount" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/requiredLiftTestBudgetCurrencyCode> ;
    sh:name "required lift test budget currency code" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/reviewInfo> ;
    sh:name "review info" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/scheduleEnd> ;
    sh:name "schedule end" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/scheduleStart> ;
    sh:name "schedule start" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/userState> ;
    sh:name "user state" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "CANCELED" "DRAFT" "READY" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestManagementAPI/validatedAt> ;
    sh:name "validated at" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] .

# Shape for Lift Test Results Api
linkedin:LiftTestResultsAPIShape a sh:NodeShape ;
  sh:targetClass linkedin:LiftTestResultsAPI ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/confidenceInterval> ;
    sh:name "confidence interval" ;
    sh:node linkedin:ConfidenceIntervalShape ;
    sh:class linkedin:ConfidenceInterval ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/absoluteLift> ;
    sh:name "absolute lift" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/absoluteLiftConfidenceInterval> ;
    sh:name "absolute lift confidence interval" ;
    sh:node linkedin:ConfidenceIntervalShape ;
    sh:class linkedin:ConfidenceInterval ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftKeyMetric> ;
    sh:name "ad lift key metric" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftResultMetrics> ;
    sh:name "ad lift result metrics" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftResultStatisticalMetrics> ;
    sh:name "ad lift result statistical metrics" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftSurveyResponseBreakdown> ;
    sh:name "ad lift survey response breakdown" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftSurveyResponseBreakdowns> ;
    sh:name "ad lift survey response breakdowns" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftTestDemographic> ;
    sh:name "ad lift test demographic" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftTestResultKey> ;
    sh:name "ad lift test result key" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftTestResultMetricMemberDemographicBreakdowns> ;
    sh:name "ad lift test result metric member demographic breakdowns" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftTestResultStrength> ;
    sh:name "ad lift test result strength" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftTestSurveyResponseMemberDemographicBreakdowns> ;
    sh:name "ad lift test survey response member demographic breakdowns" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftTestUrn> ;
    sh:name "ad lift test urn" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/adLiftTests> ;
    sh:name "ad lift tests" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/controlResponses> ;
    sh:name "control responses" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/costPerLiftedMember> ;
    sh:name "cost per lifted member" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/demographicCategory> ;
    sh:name "demographic category" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/demographicName> ;
    sh:name "demographic name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/lowerBound> ;
    sh:name "lower bound" ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/pValue> ;
    sh:name "p value" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/power> ;
    sh:name "power" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/relativeLift> ;
    sh:name "relative lift" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/relativeLiftStatisticalStrengthMetrics> ;
    sh:name "relative lift statistical strength metrics" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/surveyAnswer> ;
    sh:name "survey answer" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/totalEstimatedLift> ;
    sh:name "total estimated lift" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/treatmentResponses> ;
    sh:name "treatment responses" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestResultsAPI/upperBound> ;
    sh:name "upper bound" ;
    sh:datatype xsd:double ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Lift Test Survey Management Api
linkedin:LiftTestSurveyManagementAPIShape a sh:NodeShape ;
  sh:targetClass linkedin:LiftTestSurveyManagementAPI ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestSurveyManagementAPI/adLiftSurveyAnswer> ;
    sh:name "ad lift survey answer" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestSurveyManagementAPI/adLiftTest> ;
    sh:name "ad lift test" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestSurveyManagementAPI/answers> ;
    sh:name "answers" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestSurveyManagementAPI/desired> ;
    sh:name "desired" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestSurveyManagementAPI/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:in ( "AWARENESS" "CONSIDERATION" "EMPLOYER_CONSIDERATION" "EMPLOYER_FAMILIARITY" "EMPLOYER_FAVORABILITY" "EMPLOYER_RECOMMENDATION" "FAMILIARITY" "FAVORABILITY" "RECALL" "RECOMMENDATION" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestSurveyManagementAPI/liftTestAccount> ;
    sh:name "lift test account" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestSurveyManagementAPI/localizedAnswerText> ;
    sh:name "localized answer text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.LiftTestSurveyManagementAPI/localizedQuestionText> ;
    sh:name "localized question text" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Manage Audience Restrictions
linkedin:ManageAudienceRestrictionsShape a sh:NodeShape ;
  sh:targetClass linkedin:ManageAudienceRestrictions ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/changeAuditStamps> ;
    sh:name "change audit stamps" ;
    sh:node linkedin:AuditStampShape ;
    sh:class linkedin:AuditStamp ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/changeAuditStampsCreated> ;
    sh:name "change audit stamps created" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/changeAuditStampsLastModified> ;
    sh:name "change audit stamps last modified" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/dataId> ;
    sh:name "data id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/downloadSignedUrl> ;
    sh:name "download signed url" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/entity> ;
    sh:name "entity" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/fileName> ;
    sh:name "file name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/location> ;
    sh:name "location" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/offsiteAccountPreferences> ;
    sh:name "offsite account preferences" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/offsiteAccountPreferencesPublisherRestrictionFiles> ;
    sh:name "offsite account preferences publisher restriction files" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/offsiteAccountPreferencesPublisherRestrictionFilesExclude> ;
    sh:name "offsite account preferences publisher restriction files exclude" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/offsiteAccountPreferencesPublisherRestrictionFilesInclude> ;
    sh:name "offsite account preferences publisher restriction files include" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/offsiteDeliveryEnabled> ;
    sh:name "offsite delivery enabled" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/offsitePreferences> ;
    sh:name "offsite preferences" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/offsitePreferencesIabCategoriesExclude> ;
    sh:name "offsite preferences iab categories exclude" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/offsitePreferencesPublisherRestrictionFilesExclude> ;
    sh:name "offsite preferences publisher restriction files exclude" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/offsitePreferencesPublisherRestrictionFilesInclude> ;
    sh:name "offsite preferences publisher restriction files include" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/publisherListType> ;
    sh:name "publisher list type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/publisherRestrictionId> ;
    sh:name "publisher restriction id" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/type> ;
    sh:name "type" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/uploadSignUrl> ;
    sh:name "upload sign url" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ManageAudienceRestrictions/value> ;
    sh:name "value" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] .

# Shape for Message Ads
linkedin:MessageAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:MessageAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/callToActionLandingPage> ;
    sh:name "call to action landing page" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/callToActionText> ;
    sh:name "call to action text" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/createdAt> ;
    sh:name "created at" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/createdBy> ;
    sh:name "created by" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/customFooter> ;
    sh:name "custom footer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/htmlBody> ;
    sh:name "html body" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/lastModifiedAt> ;
    sh:name "last modified at" ;
    sh:datatype xsd:long ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/lastModifiedBy> ;
    sh:name "last modified by" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/rightRailAdPicture> ;
    sh:name "right rail ad picture" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/sender> ;
    sh:name "sender" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/sponsoredConversation> ;
    sh:name "sponsored conversation" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/subContent> ;
    sh:name "sub content" ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.MessageAds/subject> ;
    sh:name "subject" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Saved Audience Templates
linkedin:SavedAudienceTemplatesShape a sh:NodeShape ;
  sh:targetClass linkedin:SavedAudienceTemplates ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SavedAudienceTemplates/account> ;
    sh:name "account" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SavedAudienceTemplates/approximateMemberCount> ;
    sh:name "approximate member count" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SavedAudienceTemplates/created> ;
    sh:name "created" ;
    sh:node linkedin:AuditStampShape ;
    sh:class linkedin:AuditStamp ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SavedAudienceTemplates/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SavedAudienceTemplates/id> ;
    sh:name "id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SavedAudienceTemplates/lastModified> ;
    sh:name "last modified" ;
    sh:node linkedin:AuditStampShape ;
    sh:class linkedin:AuditStamp ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SavedAudienceTemplates/name> ;
    sh:name "name" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SavedAudienceTemplates/targetingCriteria> ;
    sh:name "targeting criteria" ;
    sh:node linkedin:TargetingCriteriaShape ;
    sh:class linkedin:TargetingCriteria ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Spotlight Ads
linkedin:SpotlightAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:SpotlightAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SpotlightAds/backgroundImage> ;
    sh:name "background image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SpotlightAds/callToAction> ;
    sh:name "call to action" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SpotlightAds/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SpotlightAds/headline> ;
    sh:name "headline" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SpotlightAds/landingPage> ;
    sh:name "landing page" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SpotlightAds/logo> ;
    sh:name "logo" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SpotlightAds/organizationName> ;
    sh:name "organization name" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.SpotlightAds/showMemberProfilePhoto> ;
    sh:name "show member profile photo" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] .

# Shape for Text Ads
linkedin:TextAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:TextAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TextAds/description> ;
    sh:name "description" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TextAds/headline> ;
    sh:name "headline" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TextAds/image> ;
    sh:name "image" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.TextAds/landingPage> ;
    sh:name "landing page" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Third Party Tracking
linkedin:ThirdPartyTrackingShape a sh:NodeShape ;
  sh:targetClass linkedin:ThirdPartyTracking ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ThirdPartyTracking/account> ;
    sh:name "account" ;
    sh:node linkedin:AdAccountShape ;
    sh:class linkedin:AdAccount ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ThirdPartyTracking/entity> ;
    sh:name "entity" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ThirdPartyTracking/event> ;
    sh:name "event" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:in ( "CLICK" "IMPRESSION" ) ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ThirdPartyTracking/id> ;
    sh:name "id" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ThirdPartyTracking/platform> ;
    sh:name "platform" ;
    sh:datatype rdf:JSON ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.ThirdPartyTracking/trackingUrl> ;
    sh:name "tracking url" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for VASTTag Video Ads
linkedin:VASTTagVideoAdsShape a sh:NodeShape ;
  sh:targetClass linkedin:VASTTagVideoAds ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/linkedin/property/Linkedin.VASTTagVideoAds/vastTagUrl> ;
    sh:name "vast tag url" ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .
