openapi: 3.0.0
servers:
  - url: /
  - url: http://adobe.local
info:
  contact:
    email: opensource@shinesolutions.com
    name: Shine Solutions
    url: http://shinesolutions.com
    x-twitter: Adobe
  description: Swagger AEM is an OpenAPI specification for Adobe Experience Manager (AEM) API
  title: Adobe Experience Manager (AEM) API
  version: 3.7.1-pre.0
  x-apisguru-categories:
    - marketing
  x-logo:
    url: https://twitter.com/Adobe/profile_image?size=original
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/shinesolutions/swagger-aem/master/conf/api.yml
      version: "3.0"
  x-providerName: adobe.com
  x-serviceName: aem
  x-unofficialSpec: true
security:
  - aemAuth: []
paths:
  /.cqactions.html:
    post:
      operationId: postCqActions
      parameters:
        - in: query
          name: authorizableId
          required: true
          schema:
            type: string
        - in: query
          name: changelog
          required: true
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - cq
  /apps/system/config/com.adobe.granite.auth.saml.SamlAuthenticationHandler.config:
    post:
      operationId: postConfigAdobeGraniteSamlAuthenticationHandler
      parameters:
        - in: query
          name: keyStorePassword
          required: false
          schema:
            type: string
        - in: query
          name: keyStorePassword@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: service.ranking
          required: false
          schema:
            type: integer
        - in: query
          name: service.ranking@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: idpHttpRedirect
          required: false
          schema:
            type: boolean
        - in: query
          name: idpHttpRedirect@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: createUser
          required: false
          schema:
            type: boolean
        - in: query
          name: createUser@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: defaultRedirectUrl
          required: false
          schema:
            type: string
        - in: query
          name: defaultRedirectUrl@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: userIDAttribute
          required: false
          schema:
            type: string
        - in: query
          name: userIDAttribute@TypeHint
          required: false
          schema:
            type: string
        - explode: true
          in: query
          name: defaultGroups
          required: false
          schema:
            items:
              type: string
            type: array
        - in: query
          name: defaultGroups@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: idpCertAlias
          required: false
          schema:
            type: string
        - in: query
          name: idpCertAlias@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: addGroupMemberships
          required: false
          schema:
            type: boolean
        - in: query
          name: addGroupMemberships@TypeHint
          required: false
          schema:
            type: string
        - explode: true
          in: query
          name: path
          required: false
          schema:
            items:
              type: string
            type: array
        - in: query
          name: path@TypeHint
          required: false
          schema:
            type: string
        - explode: true
          in: query
          name: synchronizeAttributes
          required: false
          schema:
            items:
              type: string
            type: array
        - in: query
          name: synchronizeAttributes@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: clockTolerance
          required: false
          schema:
            type: integer
        - in: query
          name: clockTolerance@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: groupMembershipAttribute
          required: false
          schema:
            type: string
        - in: query
          name: groupMembershipAttribute@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: idpUrl
          required: false
          schema:
            type: string
        - in: query
          name: idpUrl@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: logoutUrl
          required: false
          schema:
            type: string
        - in: query
          name: logoutUrl@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: serviceProviderEntityId
          required: false
          schema:
            type: string
        - in: query
          name: serviceProviderEntityId@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: assertionConsumerServiceURL
          required: false
          schema:
            type: string
        - in: query
          name: assertionConsumerServiceURL@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: handleLogout
          required: false
          schema:
            type: boolean
        - in: query
          name: handleLogout@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: spPrivateKeyAlias
          required: false
          schema:
            type: string
        - in: query
          name: spPrivateKeyAlias@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: useEncryption
          required: false
          schema:
            type: boolean
        - in: query
          name: useEncryption@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: nameIdFormat
          required: false
          schema:
            type: string
        - in: query
          name: nameIdFormat@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: digestMethod
          required: false
          schema:
            type: string
        - in: query
          name: digestMethod@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: signatureMethod
          required: false
          schema:
            type: string
        - in: query
          name: signatureMethod@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: userIntermediatePath
          required: false
          schema:
            type: string
        - in: query
          name: userIntermediatePath@TypeHint
          required: false
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
  /apps/system/config/com.shinesolutions.aem.passwordreset.Activator:
    post:
      operationId: postConfigAemPasswordReset
      parameters:
        - explode: true
          in: query
          name: pwdreset.authorizables
          required: false
          schema:
            items:
              type: string
            type: array
        - in: query
          name: pwdreset.authorizables@TypeHint
          required: false
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - custom
  /apps/system/config/com.shinesolutions.healthcheck.hc.impl.ActiveBundleHealthCheck:
    post:
      operationId: postConfigAemHealthCheckServlet
      parameters:
        - explode: true
          in: query
          name: bundles.ignored
          required: false
          schema:
            items:
              type: string
            type: array
        - in: query
          name: bundles.ignored@TypeHint
          required: false
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - custom
  /apps/system/config/org.apache.felix.http:
    post:
      operationId: postConfigApacheFelixJettyBasedHttpService
      parameters:
        - in: query
          name: org.apache.felix.https.nio
          required: false
          schema:
            type: boolean
        - in: query
          name: org.apache.felix.https.nio@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.keystore
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.keystore@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.keystore.password
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.keystore.password@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.keystore.key
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.keystore.key@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.keystore.key.password
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.keystore.key.password@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.truststore
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.truststore@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.truststore.password
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.truststore.password@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.clientcertificate
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.clientcertificate@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: org.apache.felix.https.enable
          required: false
          schema:
            type: boolean
        - in: query
          name: org.apache.felix.https.enable@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: org.osgi.service.http.port.secure
          required: false
          schema:
            type: string
        - in: query
          name: org.osgi.service.http.port.secure@TypeHint
          required: false
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
  /apps/system/config/org.apache.http.proxyconfigurator.config:
    post:
      operationId: postConfigApacheHttpComponentsProxyConfiguration
      parameters:
        - in: query
          name: proxy.host
          required: false
          schema:
            type: string
        - in: query
          name: proxy.host@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: proxy.port
          required: false
          schema:
            type: integer
        - in: query
          name: proxy.port@TypeHint
          required: false
          schema:
            type: string
        - explode: true
          in: query
          name: proxy.exceptions
          required: false
          schema:
            items:
              type: string
            type: array
        - in: query
          name: proxy.exceptions@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: proxy.enabled
          required: false
          schema:
            type: boolean
        - in: query
          name: proxy.enabled@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: proxy.user
          required: false
          schema:
            type: string
        - in: query
          name: proxy.user@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: proxy.password
          required: false
          schema:
            type: string
        - in: query
          name: proxy.password@TypeHint
          required: false
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
  /apps/system/config/org.apache.sling.jcr.davex.impl.servlets.SlingDavExServlet:
    post:
      operationId: postConfigApacheSlingDavExServlet
      parameters:
        - in: query
          name: alias
          required: false
          schema:
            type: string
        - in: query
          name: alias@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: dav.create-absolute-uri
          required: false
          schema:
            type: boolean
        - in: query
          name: dav.create-absolute-uri@TypeHint
          required: false
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
  /apps/system/config/org.apache.sling.security.impl.ReferrerFilter:
    post:
      operationId: postConfigApacheSlingReferrerFilter
      parameters:
        - in: query
          name: allow.empty
          required: false
          schema:
            type: boolean
        - in: query
          name: allow.empty@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: allow.hosts
          required: false
          schema:
            type: string
        - in: query
          name: allow.hosts@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: allow.hosts.regexp
          required: false
          schema:
            type: string
        - in: query
          name: allow.hosts.regexp@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: filter.methods
          required: false
          schema:
            type: string
        - in: query
          name: filter.methods@TypeHint
          required: false
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
  /apps/system/config/org.apache.sling.servlets.get.DefaultGetServlet:
    post:
      operationId: postConfigApacheSlingGetServlet
      parameters:
        - in: query
          name: json.maximumresults
          required: false
          schema:
            type: string
        - in: query
          name: json.maximumresults@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: enable.html
          required: false
          schema:
            type: boolean
        - in: query
          name: enable.html@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: enable.txt
          required: false
          schema:
            type: boolean
        - in: query
          name: enable.txt@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: enable.xml
          required: false
          schema:
            type: boolean
        - in: query
          name: enable.xml@TypeHint
          required: false
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
  "/apps/system/config/{configNodeName}":
    post:
      operationId: postConfigProperty
      parameters:
        - in: path
          name: configNodeName
          required: true
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
  /bin/querybuilder.json:
    get:
      operationId: getQuery
      parameters:
        - in: query
          name: path
          required: true
          schema:
            type: string
        - in: query
          name: p.limit
          required: true
          schema:
            type: number
        - in: query
          name: 1_property
          required: true
          schema:
            type: string
        - in: query
          name: 1_property.value
          required: true
          schema:
            type: string
      responses:
        default:
          content:
            application/json:
              schema:
                type: string
          description: Default response
      tags:
        - sling
    post:
      operationId: postQuery
      parameters:
        - in: query
          name: path
          required: true
          schema:
            type: string
        - in: query
          name: p.limit
          required: true
          schema:
            type: number
        - in: query
          name: 1_property
          required: true
          schema:
            type: string
        - in: query
          name: 1_property.value
          required: true
          schema:
            type: string
      responses:
        default:
          content:
            application/json:
              schema:
                type: string
          description: Default response
      tags:
        - sling
  /crx/explorer/ui/setpassword.jsp:
    post:
      operationId: postSetPassword
      parameters:
        - in: query
          name: old
          required: true
          schema:
            type: string
        - in: query
          name: plain
          required: true
          schema:
            type: string
        - in: query
          name: verify
          required: true
          schema:
            type: string
      responses:
        default:
          content:
            text/plain:
              schema:
                type: string
          description: Default response
      tags:
        - crx
  /crx/packmgr/installstatus.jsp:
    get:
      operationId: getInstallStatus
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InstallStatus"
          description: Retrieved CRX package manager install status
        default:
          content:
            application/json:
              schema:
                type: string
          description: Default response
      tags:
        - crx
  /crx/packmgr/service.jsp:
    post:
      operationId: postPackageService
      parameters:
        - in: query
          name: cmd
          required: true
          schema:
            type: string
      responses:
        default:
          content:
            text/xml:
              schema:
                type: string
          description: Default response
      tags:
        - crx
  "/crx/packmgr/service/.json/{path}":
    post:
      operationId: postPackageServiceJson
      parameters:
        - in: path
          name: path
          required: true
          schema:
            type: string
        - in: query
          name: cmd
          required: true
          schema:
            type: string
        - in: query
          name: groupName
          required: false
          schema:
            type: string
        - in: query
          name: packageName
          required: false
          schema:
            type: string
        - in: query
          name: packageVersion
          required: false
          schema:
            type: string
        - in: query
          name: _charset_
          required: false
          schema:
            type: string
        - in: query
          name: force
          required: false
          schema:
            type: boolean
        - in: query
          name: recursive
          required: false
          schema:
            type: boolean
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                package:
                  format: binary
                  type: string
              type: object
      responses:
        default:
          content:
            application/json:
              schema:
                type: string
          description: Default response
      tags:
        - crx
  /crx/packmgr/service/script.html:
    get:
      operationId: getPackageManagerServlet
      responses:
        "404":
          content:
            text/html:
              schema:
                type: string
          description: Package Manager Servlet is disabled
        "405":
          content:
            text/html:
              schema:
                type: string
          description: Package Manager Servlet is active
      tags:
        - crx
  /crx/packmgr/update.jsp:
    post:
      operationId: postPackageUpdate
      parameters:
        - in: query
          name: groupName
          required: true
          schema:
            type: string
        - in: query
          name: packageName
          required: true
          schema:
            type: string
        - in: query
          name: version
          required: true
          schema:
            type: string
        - in: query
          name: path
          required: true
          schema:
            type: string
        - in: query
          name: filter
          required: false
          schema:
            type: string
        - in: query
          name: _charset_
          required: false
          schema:
            type: string
      responses:
        default:
          content:
            application/json:
              schema:
                type: string
          description: Default response
      tags:
        - crx
  /crx/server/crx.default/jcr:root/.1.json:
    get:
      operationId: getCrxdeStatus
      responses:
        "200":
          content:
            plain/text:
              schema:
                type: string
          description: CRXDE is enabled
        "404":
          content:
            plain/text:
              schema:
                type: string
          description: CRXDE is disabled
      tags:
        - crx
  "/etc/packages/{group}/{name}-{version}.zip":
    get:
      operationId: getPackage
      parameters:
        - in: path
          name: group
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
        - in: path
          name: version
          required: true
          schema:
            type: string
      responses:
        default:
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: Default response
      tags:
        - sling
  "/etc/packages/{group}/{name}-{version}.zip/jcr:content/vlt:definition/filter.tidy.2.json":
    get:
      operationId: getPackageFilter
      parameters:
        - in: path
          name: group
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
        - in: path
          name: version
          required: true
          schema:
            type: string
      responses:
        default:
          content:
            application/json:
              schema:
                type: string
          description: Default response
      tags:
        - sling
  "/etc/replication/agents.{runmode}.-1.json":
    get:
      operationId: getAgents
      parameters:
        - in: path
          name: runmode
          required: true
          schema:
            type: string
      responses:
        default:
          content:
            application/json:
              schema:
                type: string
          description: Default response
      tags:
        - sling
  "/etc/replication/agents.{runmode}/{name}":
    delete:
      operationId: deleteAgent
      parameters:
        - in: path
          name: runmode
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
    get:
      operationId: getAgent
      parameters:
        - in: path
          name: runmode
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
    post:
      operationId: postAgent
      parameters:
        - in: path
          name: runmode
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
        - in: query
          name: jcr:content/cq:distribute
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/cq:distribute@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/cq:name
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/cq:template
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/enabled
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/jcr:description
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/jcr:lastModified
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/jcr:lastModifiedBy
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/jcr:mixinTypes
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/jcr:title
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/logLevel
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/noStatusUpdate
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/noVersioning
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/protocolConnectTimeout
          required: false
          schema:
            type: number
        - in: query
          name: jcr:content/protocolHTTPConnectionClosed
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/protocolHTTPExpired
          required: false
          schema:
            type: string
        - explode: true
          in: query
          name: jcr:content/protocolHTTPHeaders
          required: false
          schema:
            items:
              type: string
            type: array
        - in: query
          name: jcr:content/protocolHTTPHeaders@TypeHint
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/protocolHTTPMethod
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/protocolHTTPSRelaxed
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/protocolInterface
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/protocolSocketTimeout
          required: false
          schema:
            type: number
        - in: query
          name: jcr:content/protocolVersion
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/proxyNTLMDomain
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/proxyNTLMHost
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/proxyHost
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/proxyPassword
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/proxyPort
          required: false
          schema:
            type: number
        - in: query
          name: jcr:content/proxyUser
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/queueBatchMaxSize
          required: false
          schema:
            type: number
        - in: query
          name: jcr:content/queueBatchMode
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/queueBatchWaitTime
          required: false
          schema:
            type: number
        - in: query
          name: jcr:content/retryDelay
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/reverseReplication
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/serializationType
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/sling:resourceType
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/ssl
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/transportNTLMDomain
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/transportNTLMHost
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/transportPassword
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/transportUri
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/transportUser
          required: false
          schema:
            type: string
        - in: query
          name: jcr:content/triggerDistribute
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/triggerModified
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/triggerOnOffTime
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/triggerReceive
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/triggerSpecific
          required: false
          schema:
            type: boolean
        - in: query
          name: jcr:content/userId
          required: false
          schema:
            type: string
        - in: query
          name: jcr:primaryType
          required: false
          schema:
            type: string
        - in: query
          name: :operation
          required: false
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
  /etc/truststore:
    post:
      operationId: postTruststorePKCS12
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                truststore.p12:
                  format: binary
                  type: string
              type: object
      responses:
        default:
          content:
            text/plain:
              schema:
                type: string
          description: Default response
      tags:
        - sling
  /etc/truststore/truststore.p12:
    get:
      operationId: getTruststore
      responses:
        default:
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: Default response
      tags:
        - sling
  /libs/granite/core/content/login.html:
    get:
      operationId: getLoginPage
      responses:
        default:
          content:
            text/html:
              schema:
                type: string
          description: Default response
      security: []
      tags:
        - cq
  /libs/granite/security/post/authorizables:
    post:
      operationId: postAuthorizables
      parameters:
        - in: query
          name: authorizableId
          required: true
          schema:
            type: string
        - in: query
          name: intermediatePath
          required: true
          schema:
            type: string
        - in: query
          name: createUser
          required: false
          schema:
            type: string
        - in: query
          name: createGroup
          required: false
          schema:
            type: string
        - in: query
          name: rep:password
          required: false
          schema:
            type: string
        - in: query
          name: profile/givenName
          required: false
          schema:
            type: string
      responses:
        default:
          content:
            text/html:
              schema:
                type: string
          description: Default response
      tags:
        - sling
  /libs/granite/security/post/sslSetup.html:
    post:
      operationId: sslSetup
      parameters:
        - in: query
          name: keystorePassword
          required: true
          schema:
            type: string
        - in: query
          name: keystorePasswordConfirm
          required: true
          schema:
            type: string
        - in: query
          name: truststorePassword
          required: true
          schema:
            type: string
        - in: query
          name: truststorePasswordConfirm
          required: true
          schema:
            type: string
        - in: query
          name: httpsHostname
          required: true
          schema:
            type: string
        - in: query
          name: httpsPort
          required: true
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                certificateFile:
                  format: binary
                  type: string
                privatekeyFile:
                  format: binary
                  type: string
              type: object
      responses:
        default:
          content:
            text/plain:
              schema:
                type: string
          description: Default response
      tags:
        - granite
  /libs/granite/security/post/truststore:
    post:
      operationId: postTruststore
      parameters:
        - in: query
          name: :operation
          required: false
          schema:
            type: string
        - in: query
          name: newPassword
          required: false
          schema:
            type: string
        - in: query
          name: rePassword
          required: false
          schema:
            type: string
        - in: query
          name: keyStoreType
          required: false
          schema:
            type: string
        - in: query
          name: removeAlias
          required: false
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                certificate:
                  format: binary
                  type: string
              type: object
      responses:
        default:
          content:
            text/plain:
              schema:
                type: string
          description: Default response
      tags:
        - sling
  /libs/granite/security/truststore.json:
    get:
      operationId: getTruststoreInfo
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TruststoreInfo"
          description: Retrieved AEM Truststore info
        default:
          content:
            application/json:
              schema:
                type: string
          description: Default response
      tags:
        - sling
  /libs/replication/treeactivation.html:
    post:
      operationId: postTreeActivation
      parameters:
        - in: query
          name: ignoredeactivated
          required: true
          schema:
            type: boolean
        - in: query
          name: onlymodified
          required: true
          schema:
            type: boolean
        - in: query
          name: path
          required: true
          schema:
            type: string
        - in: query
          name: cmd
          required: true
          schema:
            default: activate
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
  "/system/console/bundles/{name}":
    post:
      operationId: postBundle
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
        - in: query
          name: action
          required: true
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - console
  "/system/console/bundles/{name}.json":
    get:
      operationId: getBundleInfo
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BundleInfo"
          description: Retrieved bundle info
        default:
          content:
            application/json:
              schema:
                type: string
          description: Default response
      tags:
        - console
  /system/console/configMgr:
    get:
      operationId: getConfigMgr
      responses:
        "200":
          content:
            text/xml:
              schema:
                type: string
          description: OK
        5XX:
          description: Unexpected error.
      tags:
        - console
  /system/console/configMgr/com.adobe.granite.auth.saml.SamlAuthenticationHandler:
    post:
      operationId: postSamlConfiguration
      parameters:
        - in: query
          name: post
          required: false
          schema:
            type: boolean
        - in: query
          name: apply
          required: false
          schema:
            type: boolean
        - in: query
          name: delete
          required: false
          schema:
            type: boolean
        - in: query
          name: action
          required: false
          schema:
            type: string
        - in: query
          name: $location
          required: false
          schema:
            type: string
        - explode: true
          in: query
          name: path
          required: false
          schema:
            items:
              type: string
            type: array
        - in: query
          name: service.ranking
          required: false
          schema:
            type: integer
        - in: query
          name: idpUrl
          required: false
          schema:
            type: string
        - in: query
          name: idpCertAlias
          required: false
          schema:
            type: string
        - in: query
          name: idpHttpRedirect
          required: false
          schema:
            type: boolean
        - in: query
          name: serviceProviderEntityId
          required: false
          schema:
            type: string
        - in: query
          name: assertionConsumerServiceURL
          required: false
          schema:
            type: string
        - in: query
          name: spPrivateKeyAlias
          required: false
          schema:
            type: string
        - in: query
          name: keyStorePassword
          required: false
          schema:
            type: string
        - in: query
          name: defaultRedirectUrl
          required: false
          schema:
            type: string
        - in: query
          name: userIDAttribute
          required: false
          schema:
            type: string
        - in: query
          name: useEncryption
          required: false
          schema:
            type: boolean
        - in: query
          name: createUser
          required: false
          schema:
            type: boolean
        - in: query
          name: addGroupMemberships
          required: false
          schema:
            type: boolean
        - in: query
          name: groupMembershipAttribute
          required: false
          schema:
            type: string
        - explode: true
          in: query
          name: defaultGroups
          required: false
          schema:
            items:
              type: string
            type: array
        - in: query
          name: nameIdFormat
          required: false
          schema:
            type: string
        - explode: true
          in: query
          name: synchronizeAttributes
          required: false
          schema:
            items:
              type: string
            type: array
        - in: query
          name: handleLogout
          required: false
          schema:
            type: boolean
        - in: query
          name: logoutUrl
          required: false
          schema:
            type: string
        - in: query
          name: clockTolerance
          required: false
          schema:
            type: integer
        - in: query
          name: digestMethod
          required: false
          schema:
            type: string
        - in: query
          name: signatureMethod
          required: false
          schema:
            type: string
        - in: query
          name: userIntermediatePath
          required: false
          schema:
            type: string
        - explode: false
          in: query
          name: propertylist
          required: false
          schema:
            items:
              type: string
            type: array
          style: form
      responses:
        "200":
          content:
            text/plain:
              schema:
                $ref: "#/components/schemas/SamlConfigurationInfo"
          description: Retrieved AEM SAML Configuration
        "302":
          content:
            text/plain:
              schema:
                type: string
          description: Default response
        default:
          content:
            text/plain:
              schema:
                type: string
          description: Default response
      tags:
        - console
  "/system/console/jmx/com.adobe.granite:type=Repository/op/{action}":
    post:
      operationId: postJmxRepository
      parameters:
        - in: path
          name: action
          required: true
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - console
  /system/console/status-productinfo.json:
    get:
      operationId: getAemProductInfo
      responses:
        default:
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: Default response
      tags:
        - console
  /system/health:
    get:
      operationId: getAemHealthCheck
      parameters:
        - in: query
          name: tags
          required: false
          schema:
            type: string
        - in: query
          name: combineTagsOr
          required: false
          schema:
            type: boolean
      responses:
        default:
          content:
            application/json:
              schema:
                type: string
          description: Default response
      tags:
        - custom
  "/{intermediatePath}/{authorizableId}.ks.html":
    post:
      operationId: postAuthorizableKeystore
      parameters:
        - in: path
          name: intermediatePath
          required: true
          schema:
            type: string
        - in: path
          name: authorizableId
          required: true
          schema:
            type: string
        - in: query
          name: :operation
          required: false
          schema:
            type: string
        - in: query
          name: currentPassword
          required: false
          schema:
            type: string
        - in: query
          name: newPassword
          required: false
          schema:
            type: string
        - in: query
          name: rePassword
          required: false
          schema:
            type: string
        - in: query
          name: keyPassword
          required: false
          schema:
            type: string
        - in: query
          name: keyStorePass
          required: false
          schema:
            type: string
        - in: query
          name: alias
          required: false
          schema:
            type: string
        - in: query
          name: newAlias
          required: false
          schema:
            type: string
        - in: query
          name: removeAlias
          required: false
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                cert-chain:
                  format: binary
                  type: string
                keyStore:
                  format: binary
                  type: string
                pk:
                  format: binary
                  type: string
              type: object
      responses:
        "200":
          content:
            text/plain:
              schema:
                $ref: "#/components/schemas/KeystoreInfo"
          description: Retrieved Authorizable Keystore info
        default:
          content:
            text/plain:
              schema:
                type: string
          description: Default response
      tags:
        - sling
  "/{intermediatePath}/{authorizableId}.ks.json":
    get:
      operationId: getAuthorizableKeystore
      parameters:
        - in: path
          name: intermediatePath
          required: true
          schema:
            type: string
        - in: path
          name: authorizableId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            text/plain:
              schema:
                $ref: "#/components/schemas/KeystoreInfo"
          description: Retrieved Authorizable Keystore info
        default:
          content:
            text/plain:
              schema:
                type: string
          description: Default response
      tags:
        - sling
  "/{intermediatePath}/{authorizableId}/keystore/store.p12":
    get:
      operationId: getKeystore
      parameters:
        - in: path
          name: intermediatePath
          required: true
          schema:
            type: string
        - in: path
          name: authorizableId
          required: true
          schema:
            type: string
      responses:
        default:
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: Default response
      tags:
        - sling
  "/{path}/":
    post:
      operationId: postPath
      parameters:
        - in: path
          name: path
          required: true
          schema:
            type: string
        - in: query
          name: jcr:primaryType
          required: true
          schema:
            type: string
        - in: query
          name: :name
          required: true
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
  "/{path}/{name}":
    delete:
      operationId: deleteNode
      parameters:
        - in: path
          name: path
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
    get:
      operationId: getNode
      parameters:
        - in: path
          name: path
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
    post:
      operationId: postNode
      parameters:
        - in: path
          name: path
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
        - in: query
          name: :operation
          required: false
          schema:
            type: string
        - in: query
          name: deleteAuthorizable
          required: false
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  format: binary
                  type: string
              type: object
      responses:
        default:
          description: Default response
      tags:
        - sling
  "/{path}/{name}.rw.html":
    post:
      operationId: postNodeRw
      parameters:
        - in: path
          name: path
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
        - in: query
          name: addMembers
          required: false
          schema:
            type: string
      responses:
        default:
          description: Default response
      tags:
        - sling
components:
  schemas:
    BundleData:
      properties:
        category:
          description: Bundle category
          type: string
        fragment:
          description: Is bundle a fragment
          type: boolean
        id:
          description: Bundle ID
          type: integer
        name:
          description: Bundle name
          type: string
        props:
          items:
            $ref: "#/components/schemas/BundleDataProp"
          type: array
        state:
          description: Bundle state value
          type: string
        stateRaw:
          description: Numeric raw bundle state value
          type: integer
        symbolicName:
          description: Bundle symbolic name
          type: string
        version:
          description: Bundle version
          type: string
      type: object
    BundleDataProp:
      properties:
        key:
          description: Bundle data key
          type: string
        value:
          description: Bundle data value
          type: string
      type: object
    BundleInfo:
      properties:
        data:
          items:
            $ref: "#/components/schemas/BundleData"
          type: array
        s:
          items:
            type: integer
          type: array
        status:
          description: Status description of all bundles
          type: string
      type: object
    InstallStatus:
      properties:
        status:
          properties:
            finished:
              type: boolean
            itemCount:
              type: integer
          type: object
      type: object
    KeystoreChainItems:
      properties:
        issuer:
          description: e.g. "CN=Admin"
          type: string
        notAfter:
          description: e.g. "Sun Jun 30 23:59:50 AEST 2019"
          type: string
        notBefore:
          description: e.g. "Sun Jul 01 12:00:00 AEST 2018"
          type: string
        serialNumber:
          description: "18165099476682912368"
          type: integer
        subject:
          description: e.g. "CN=localhost"
          type: string
      type: object
    KeystoreInfo:
      properties:
        aliases:
          items:
            $ref: "#/components/schemas/KeystoreItems"
          type: array
        exists:
          description: False if truststore don't exist
          type: boolean
      type: object
    KeystoreItems:
      properties:
        algorithm:
          description: e.g. "RSA"
          type: string
        alias:
          description: Keystore alias name
          type: string
        chain:
          items:
            $ref: "#/components/schemas/KeystoreChainItems"
          type: array
        entryType:
          description: e.g. "privateKey"
          type: string
        format:
          description: e.g. "PKCS#8"
          type: string
      type: object
    SamlConfigurationInfo:
      properties:
        bundle_location:
          description: needed for configuration binding
          type: string
        description:
          description: Title
          type: string
        pid:
          description: Persistent Identity (PID)
          type: string
        properties:
          $ref: "#/components/schemas/SamlConfigurationProperties"
        service_location:
          description: needed for configuraiton binding
          type: string
        title:
          description: Title
          type: string
      type: object
    SamlConfigurationProperties:
      properties:
        addGroupMemberships:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsBoolean"
          description: Whether or not a user should be automatically added to CRX groups after successful authentication.
        assertionConsumerServiceURL:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: The (optional) AssertionConsumerServiceURL attribute of an Authn request specifies the location to which a  message MUST be sent to the requester.
        clockTolerance:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsLong"
          description: Time tolerance in seconds to compensate clock skew between IDP and SP when validating Assertions.
        createUser:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsBoolean"
          description: Whether or not to autocreate nonexisting users in the repository.
        defaultGroups:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsArray"
          description: A list of default CRX groups users are added to after successful authentication.
        defaultRedirectUrl:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: The default location to redirect to after successful authentication.
        digestMethod:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: The digest algorithm to use when signing a SAML message.
        groupMembershipAttribute:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: The name of the attribute containing a list of CRX groups this user should be added to.
        handleLogout:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsBoolean"
          description: Whether or not logout (dropCredentials) requests will be processed by this handler.
        idpCertAlias:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: The alias of the IdP's certificate in the global truststore. If this property is empty the authentication handler is disabled.
        idpHttpRedirect:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsBoolean"
          description: Use an HTTP Redirect to the IDP URL instead of sending an AuthnRequest-message to request credentials. Use this for IDP initiated authentication.
        idpUrl:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: URL of the IDP where the SAML Authentication Request should be sent to. If this property is empty the authentication handler is disabled. (idpUrl)
        keyStorePassword:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: The password of the key-store of the 'authentication-service' system user.
        logoutUrl:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: URL of the IDP where the SAML Logout Request should be sent to. If this property is empty the authentication handler won't handle logouts.
        nameIdFormat:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: The value of the NameIDPolicy format parameter to send in the AuthnRequest message.
        path:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsArray"
          description: Repository path for which this authentication handler should be used by Sling. If this is empty, the authentication handler will be disabled.
        service.ranking:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsLong"
          description: OSGi Framework Service Ranking value to indicate the order in which to call this service. This is an int value where higher values designate higher precedence. Default value is 0.
        serviceProviderEntityId:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: ID which uniquely identifies this service provider with the identity provider. If this property is empty the authentication handler is disabled.
        signatureMethod:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: The signature algorithm to use when signing a SAML message.
        spPrivateKeyAlias:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: The alias of the SP's private key in the key-store of the 'authentication-service' system user. If this property is empty the handler will not be able to sign or decrypt messages.
        synchronizeAttributes:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsArray"
          description: A list of attribute mappings (in the format \attributename=path/relative/to/user/node\) which should be stored in the repository on user-synchronization.
        useEncryption:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsBoolean"
          description: Whether or not this authentication handler expects encrypted SAML assertions. If this is enabled the SP's private key must be provided in the key-store of the 'authentication-service' system user (see SP Private Key Alias above).
        userIDAttribute:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: The name of the attribute containing the user ID used to authenticate and create the user in the CRX repository. Leave empty to use the Subject:NameId.
        userIntermediatePath:
          $ref: "#/components/schemas/SamlConfigurationPropertyItemsString"
          description: User intermediate path to store created users.
      type: object
    SamlConfigurationPropertyItemsArray:
      properties:
        description:
          description: Property description
          type: string
        is_set:
          description: True if property is set
          type: boolean
        name:
          description: property name
          type: string
        optional:
          description: True if optional
          type: boolean
        type:
          description: Property type, 1=String, 3=long, 11=boolean, 12=Password
          type: integer
        values:
          description: Property value
          items:
            type: string
          type: array
      type: object
    SamlConfigurationPropertyItemsBoolean:
      properties:
        description:
          description: Property description
          type: string
        is_set:
          description: True if property is set
          type: boolean
        name:
          description: property name
          type: string
        optional:
          description: True if optional
          type: boolean
        type:
          description: Property type, 1=String, 3=long, 11=boolean, 12=Password
          type: integer
        value:
          description: Property value
          type: boolean
      type: object
    SamlConfigurationPropertyItemsLong:
      properties:
        description:
          description: Property description
          type: string
        is_set:
          description: True if property is set
          type: boolean
        name:
          description: property name
          type: string
        optional:
          description: True if optional
          type: boolean
        type:
          description: Property type, 1=String, 3=long, 11=boolean, 12=Password
          type: integer
        value:
          description: Property value
          type: integer
      type: object
    SamlConfigurationPropertyItemsString:
      properties:
        description:
          description: Property description
          type: string
        is_set:
          description: True if property is set
          type: boolean
        name:
          description: property name
          type: string
        optional:
          description: True if optional
          type: boolean
        type:
          description: Property type, 1=String, 3=long, 11=boolean, 12=Password
          type: integer
        value:
          description: Property value
          type: string
      type: object
    TruststoreInfo:
      properties:
        aliases:
          items:
            $ref: "#/components/schemas/TruststoreItems"
          type: array
        exists:
          description: False if truststore don't exist
          type: boolean
      type: object
    TruststoreItems:
      properties:
        alias:
          description: Truststore alias name
          type: string
        entryType:
          type: string
        issuer:
          description: e.g. "CN=Admin"
          type: string
        notAfter:
          description: e.g. "Sun Jun 30 23:59:50 AEST 2019"
          type: string
        notBefore:
          description: e.g. "Sun Jul 01 12:00:00 AEST 2018"
          type: string
        serialNumber:
          description: "18165099476682912368"
          type: integer
        subject:
          description: e.g. "CN=localhost"
          type: string
      type: object
  securitySchemes:
    aemAuth:
      scheme: basic
      type: http
