{
  "components": {
    "schemas": {
      "APIError": {
        "description": "The error object returned by the API on failure.",
        "properties": {
          "code": {
            "description": "The specific code for the type of error returned. See the [API error codes reference](#api-error-codes) for the full set of values.",
            "type": "integer"
          },
          "error": {
            "description": "A description of the problem that was encountered.",
            "type": "string"
          },
          "payload": {
            "description": "Additional error details, if any. The structure varies by error type.",
            "nullable": true,
            "type": "object"
          }
        },
        "required": [
          "code",
          "error"
        ],
        "type": "object"
      },
      "APIErrorCode": {
        "description": "Application-level error code returned in APIError.code. Values are stable; see the [API error codes reference](#api-error-codes).",
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          46,
          47,
          48,
          49,
          50,
          51,
          52,
          53,
          54,
          55,
          56,
          57,
          58,
          59,
          60,
          61,
          62,
          63,
          64,
          65,
          66,
          67,
          68,
          69,
          70,
          71,
          72,
          73,
          74,
          75,
          76,
          77,
          78,
          79,
          80,
          81,
          82,
          83,
          84,
          85,
          86,
          87,
          88,
          89,
          90,
          91,
          92,
          93,
          94,
          95,
          96,
          97,
          98,
          99,
          100,
          101,
          102,
          103,
          104,
          105,
          106,
          107,
          108,
          109,
          110,
          111,
          112,
          113,
          114,
          115,
          116,
          117,
          118,
          119,
          120,
          121,
          122,
          123,
          124,
          125,
          126,
          127,
          128,
          129,
          130,
          131,
          132,
          133,
          134,
          135,
          136,
          137,
          138,
          139,
          140,
          141,
          142,
          143,
          144,
          145,
          146,
          147,
          148,
          149,
          150,
          151,
          152,
          153,
          154,
          155,
          156,
          157,
          158,
          159,
          160,
          161,
          162,
          163,
          164,
          165,
          166,
          167,
          168,
          169,
          170,
          171,
          172,
          173,
          174,
          175,
          176,
          177,
          178,
          179,
          180,
          181,
          182,
          183,
          184,
          185,
          186,
          187,
          188,
          189,
          190,
          191,
          192,
          193,
          194,
          195,
          196,
          197,
          198,
          199,
          200,
          201,
          202,
          203,
          204,
          205,
          206,
          207,
          208,
          209,
          210,
          211,
          212,
          213,
          214,
          215,
          216,
          217,
          218,
          219,
          220,
          221,
          222,
          223,
          224,
          225,
          226,
          227,
          228,
          229,
          230,
          231,
          232,
          233,
          234,
          235,
          236,
          237,
          238,
          239,
          240,
          241,
          242,
          243,
          244,
          245,
          246,
          247,
          248,
          249,
          250,
          251,
          252,
          253,
          254,
          255,
          256,
          257,
          258,
          259,
          260,
          261,
          262,
          263,
          264,
          265,
          266,
          267,
          268,
          269,
          270
        ],
        "type": "integer",
        "x-enumNames": [
          "InternalFailure",
          "BadRequest",
          "InvalidId",
          "ObjectDoesNotExist",
          "InvalidApplicationName",
          "InadequatePassword",
          "InvalidUserName",
          "DuplicateUserName",
          "InvalidUser",
          "NotObjectOwner",
          "InvalidFilterField",
          "ParameterMissing",
          "InvalidRange",
          "InvalidGroupName",
          "DuplicateGroupName",
          "DuplicateGroupEntry",
          "RemoveNothing",
          "UpdateNothing",
          "NoViewPermission",
          "NoRemovePermission",
          "NoUpdatePermission",
          "PermissionDenied",
          "InvalidRoleAssignment",
          "AuthRequired",
          "InvalidParameter",
          "DuplicateName",
          "RVersionInUse",
          "BundleMissing",
          "TokenExpired",
          "InvalidLogin",
          "NoPasswordChange",
          "InvalidFilter",
          "InvalidCollaborator",
          "InvalidCollaboratorOwner",
          "CannotDelete",
          "NoUsernameChange",
          "InvalidStartTime",
          "InvalidManifest",
          "InvalidApplicationAction",
          "UserNotConfirmed",
          "InitialUserGeneratePassword",
          "UserAlreadyConfirmed",
          "MissingServerSenderEmail",
          "UserMissingEmail",
          "MinProcessesOverLimit",
          "ImmutableUserField",
          "UserMustBeProvisioned",
          "AppModeChanged",
          "NoLockPermission",
          "UserLocked",
          "VanityPathInUse",
          "ProhibitedVanityPath",
          "ImmutableFields",
          "RunAsCurrentProhibited",
          "RunAsNonExecutableProhibited",
          "RunAsUserProhibited",
          "RunAsUserNotFound",
          "RunAsGroupMembership",
          "NoRendering",
          "DisallowedEmail",
          "SoleAdminDemotion",
          "InvalidKeyName",
          "LDAPServerUnavailable",
          "UserLicenseExceeded",
          "APINotLicensed",
          "CrossOwnership",
          "SourceKeyRequired",
          "PromotionWithoutRendering",
          "BundleIdMismatch",
          "SourceRenderingStale",
          "InvalidPromotionSourceType",
          "InvalidAppForVariantSchedule",
          "CannotScheduleAdhocVariant",
          "InvalidVariantName",
          "DeleteActiveBundle",
          "DuplicateUserKey",
          "NoLongTagName",
          "NoEmptyTagName",
          "NoCategoryAppAssignment",
          "IncorrectObjectVersion",
          "NoDuplicateTagNames",
          "BundleIdAppIdMismatch",
          "TooManyResults",
          "TokenClaimed",
          "DupicateToken",
          "MissingTokenAttributes",
          "CannotParseRequestBody",
          "InvalidRelationship",
          "EmailFailure",
          "UserSelfRegistrationDisabled",
          "InvalidExternalAuthUsername",
          "XSRF",
          "VariantsEmailConstriction",
          "PermissionsUpgradeThrottled",
          "ProhibitedAuthType",
          "PasswordChange",
          "RedirectProhibited",
          "InvalidLoginGroup",
          "InRestrictedAccessMode",
          "QueueItemInProgress",
          "InvalidPasswordToken",
          "DuplicateSchedule",
          "MissingServerAddress",
          "ContentChecksum",
          "TensorFlowNotLicensed",
          "EnvironmentVersionMismatch",
          "ProhibitedUsername",
          "ProhibitedEnvironment",
          "ProhibitedAppMode",
          "ContentCategoryChanged",
          "HasParametersChanged",
          "InvalidAuthRole",
          "MaxProcessesOverLimit",
          "MinProcessesOverMaxProcesses",
          "InvalidUserStatus",
          "VariantRenderingMismatch",
          "UnknownAccessType",
          "ProhibitedAccessType",
          "PullOnPushAuth",
          "PushOnPullAuth",
          "InvalidJson",
          "InvalidApplicationTitle",
          "InvalidApplicationDescription",
          "AdminMissingEmail",
          "InvalidContentLength",
          "BytesWrittenMismatch",
          "InvalidTempTicket",
          "UserBlankEmail",
          "UserBlankProviderKey",
          "GroupBlankProviderKey",
          "DuplicateGroupKey",
          "InvalidAuthProvider",
          "SourceVariantInWrongApp",
          "BundleWrite",
          "BundleExtract",
          "InvalidTimeFormat",
          "InvalidTimeIntervalStart",
          "InvalidTimeIntervalEnd",
          "InvalidTimeIntervalLength",
          "InvalidTimeInterval",
          "TaskDoesNotExist",
          "AppIsGitManaged",
          "AppIsNotGitManaged",
          "NoBundleUploadForGitManagedApp",
          "GitIsDisabled",
          "GitUnsupportedParameters",
          "AppModeIsNotExecutable",
          "InvalidAppMode",
          "DuplicateEnvironmentVariable",
          "InvalidLoadFactor",
          "InvalidTimeout",
          "InvalidPrincipalType",
          "InvalidGroup",
          "DuplicateUserPermission",
          "DuplicateGroupPermission",
          "InvalidOwner",
          "InvalidParentTag",
          "InvalidTag",
          "DuplicatePermissionRequest",
          "PermissionRequestInvalidEmail",
          "InvalidInclude",
          "InvalidHost",
          "InactiveJob",
          "GitUnsupportedProtocol",
          "ProhibitedBootstrap",
          "InvalidJWT",
          "ReadingControlsFile",
          "InvalidEnvironmentTitle",
          "InvalidEnvironmentDescription",
          "InvalidEnvironmentClusterName",
          "InvalidEnvironmentName",
          "UnknownEnvironmentMatchingType",
          "InvalidInstallationPath",
          "InvalidInstallationVersion",
          "DuplicateEnvironmentName",
          "InvalidServiceAccountName",
          "InvalidEnvironmentSupervisor",
          "UnrecognizedServiceAccountName",
          "InvalidRuntimeLanguage",
          "InvalidCacheLocation",
          "InvalidMemoryRequest",
          "MemoryRequestOverLimit",
          "InvalidMemoryLimit",
          "MemoryLimitOverLimit",
          "MemoryRequestOverMemoryLimit",
          "InvalidCPURequest",
          "CPURequestOverLimit",
          "InvalidCPULimit",
          "CPULimitOverLimit",
          "CPURequestOverCPULimit",
          "InvalidMinProcesses",
          "InvalidMaxProcesses",
          "InvalidDefaultImageName",
          "CacheManagementIsDisabled",
          "InvalidServiceAccountConfiguration",
          "InvalidAMDGPULimit",
          "AMDGPULimitOverLimit",
          "InvalidNvidiaGPULimit",
          "NvidiaGPULimitOverLimit",
          "EmailNoRecipients",
          "InvalidDefaultOAuthScope",
          "DefaultOAuthScopesOverLimit",
          "InvalidOAuthClientId",
          "InvalidOAuthTenantId",
          "InvalidOAuthClientSecret",
          "InvalidOAuthDescription",
          "InvalidOAuthIntegrationGUID",
          "InvalidOAuthIntegrations",
          "InvalidOAuthAssociationAssignment",
          "FormPostNotFound",
          "FormPostParseFailure",
          "OAuthCredentialNoAssociations",
          "OAuthCredentialGrantType",
          "OAuthCredentialSubjectTokenType",
          "OAuthCredentialSubjectToken",
          "OAuthCredentialIssClaim",
          "OAuthCredentialSubClaim",
          "InvalidOAuthSession",
          "OAuthAccessTokenRefreshFailure",
          "OAuthSessionNotFound",
          "OAuthIntegrationsNotLicensed",
          "LockedContentBundle",
          "LockedContentProcess",
          "InvalidLockedMessage",
          "InvalidOAuthIntegrationName",
          "InvalidOAuthIntegrationDescription",
          "OAuthTemplateNotFound",
          "OAuthTemplateConfig",
          "OAuthTemplateProhibitedChange",
          "InvalidOAuthIntegrationLogin",
          "NoContent",
          "InvalidBundleURL",
          "UnableToGetBundleFromURL",
          "InvalidKeyRole",
          "OAuthInvalidRefreshToken",
          "OAuthInvalidContentSessionToken",
          "OAuthAssociationAuthType",
          "OAuthAuthTypeMismatch",
          "InvalidMaxConnsPerProcess",
          "OAuthServiceAccountTestInvalidAuthType",
          "OAuthUnableToRetrieveToken",
          "OAuthCredentialRequestedTokenType",
          "VisitorApiKeyExchangeScopeUndefined",
          "VisitorApiKeyExchangeInvalidMaxAuthRole",
          "InvalidSchedule",
          "InvalidEnvironmentPermission",
          "DuplicateEnvironmentPermission",
          "AwsCredentialsExchangeFailed",
          "OAuthCredentialsInvalidSubjectRequestedCombination",
          "OAuthCredentialsNoSupportedHandler",
          "OAuthInvalidIdToken",
          "OAuthCredentialInvalidSubjectTokenTypeForAuthType",
          "AppRunAsDisabled",
          "EnvironmentsInvalidVolume",
          "CustomDocumentationLength",
          "OAuthCredentialsInvalidAudience",
          "OAuthCredentialsInvalidAssociationCount",
          "InvalidOAuthIntegrationsDuplicates",
          "NotPublicContent",
          "PublicAccessNotLicensed",
          "InvalidUserGUID",
          "InvalidGroupGUID",
          "DuplicateGroupGid",
          "InvalidEmailFormat",
          "EnvironmentIsConfigManaged",
          "EmptyEnvironmentVariableName",
          "DuplicateBookmark",
          "InvalidFirstName",
          "InvalidLastName",
          "NodeJsNotLicensed"
        ]
      },
      "APIKey": {
        "description": "Object containing API key details.",
        "properties": {
          "id": {
            "description": "The unique identifier for this API key.",
            "example": "2",
            "type": "string"
          },
          "name": {
            "description": "The name for this API key. The name often describes the purpose of\nthe key.",
            "example": "Automation",
            "type": "string"
          },
          "key": {
            "description": "The secret text for this API key. The full key is only revealed when\nthe key is created. Subsequent reads only reveal the last few\ncharacters.",
            "example": "abcdefgabcdefg",
            "type": "string"
          },
          "user_role": {
            "description": "The role of this API key.",
            "enum": [
              "administrator",
              "publisher",
              "viewer"
            ],
            "example": "viewer",
            "type": "string"
          },
          "created_time": {
            "description": "Timestamp (in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)\nformat) indicating when the key was created.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "active_time": {
            "description": "Timestamp (in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)\nformat) indicating approximately when the key was last used.\nHighly active keys only receive periodic updates.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "APIKeyCreateInput": {
        "description": "An object sent to create an API key.",
        "properties": {
          "name": {
            "description": "The name for this API key. Use the name to describe the purpose of\nthe key.",
            "example": "Automation",
            "type": "string"
          },
          "user_role": {
            "description": "The role of this API key. Cannot be greater than the role of the\nuser account. Defaults to the user account role when `null`.",
            "enum": [
              "administrator",
              "publisher",
              "viewer"
            ],
            "example": "viewer",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AccessTestResult": {
        "description": "The results of the public access content verification test.",
        "properties": {
          "guid": {
            "description": "The unique identifier of this content item.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "url": {
            "description": "The URL that was used to test access to this content. Computed from\nthe associated GUID for this content or the optional vanity URL.",
            "example": "https://posit-connect.company.com/content/9d8e7f3e-92e8-4a08-b0ff-196319cc56ae",
            "type": "string"
          },
          "checked_at": {
            "description": "The timestamp (RFC3339) indicating when the access test was performed.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "accessible": {
            "description": "Indicates whether or not the test was able to access the content item\non the public internet.",
            "example": false,
            "type": "boolean"
          },
          "message": {
            "description": "An optional informational message with extra details about the test\nresult. See the\n[Admin Guide](../admin/licensing/index.md#public-access)\nfor additional guidance about specific messages.",
            "example": "content is not publicly accessible",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AuditActionResult": {
        "description": "An audit action available on your Posit Connect server.",
        "properties": {
          "action": {
            "description": "The name of the action.",
            "example": "create_user",
            "type": "string"
          },
          "description": {
            "description": "A human-readable description of the action.",
            "example": "Create a new user.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AuditLog": {
        "description": "An audit log entry.",
        "properties": {
          "id": {
            "description": "The identifier of the audit action.",
            "type": "string"
          },
          "time": {
            "description": "Timestamp in RFC3339 format when the action was taken.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "user_id": {
            "description": "The user identifier of the actor who performed the audit action.",
            "type": "string"
          },
          "user_guid": {
            "description": "The user GUID of the actor who performed the audit action.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "user_description": {
            "description": "A description of the actor.",
            "example": "Full name (username)",
            "type": "string"
          },
          "action": {
            "description": "The audit action taken.",
            "example": "add_user",
            "type": "string"
          },
          "event_description": {
            "description": "A human-readable description of the action.",
            "example": "Added user Full Name (username)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AuditLogEntry": {
        "description": "An audit log entry.",
        "properties": {
          "id": {
            "description": "The unique identifier of the audit log entry.",
            "example": "123",
            "type": "string"
          },
          "time": {
            "description": "The timestamp (RFC3339) of the audit action.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "user_id": {
            "description": "The unique identifier of the user who performed the action.",
            "example": "456",
            "type": "string"
          },
          "user_guid": {
            "description": "The GUID of the user who performed the action.",
            "example": "d4aaf24e-b7d5-404f-843e-a78e4c1eab38",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "user_description": {
            "description": "A description of the user who performed the action.",
            "example": "John Doe",
            "type": "string"
          },
          "action": {
            "description": "The name of the audit action.",
            "example": "create_user",
            "type": "string"
          },
          "event_description": {
            "description": "A human-readable description of the event.",
            "example": "Created a new user account.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AuditLogSearchResults": {
        "description": "Audit log search results with total count.",
        "properties": {
          "total": {
            "description": "The total number of matching audit log entries.",
            "example": 100,
            "type": "integer"
          },
          "results": {
            "description": "The matching audit log entries for this page.",
            "items": {
              "$ref": "#/components/schemas/AuditLogEntry"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "AuditLogs": {
        "description": "Audit log results with keyset pagination.",
        "properties": {
          "results": {
            "description": "The audit logs",
            "items": {
              "$ref": "#/components/schemas/AuditLog"
            },
            "type": "array"
          },
          "paging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/KeysetPaging"
              }
            ],
            "description": "Paging object that can be used for navigation."
          }
        },
        "type": "object"
      },
      "Bookmark": {
        "description": "The fields that are returned when getting a bookmark.",
        "properties": {
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when this bookmark was created.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "BootstrapSuccess": {
        "properties": {
          "api_key": {
            "description": "The API key for the newly created administrator user.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Bundle": {
        "description": "A deployment bundle associated with a content item.",
        "properties": {
          "id": {
            "description": "The identifier for this bundle.",
            "example": "101",
            "type": "string"
          },
          "content_guid": {
            "description": "The identifier of the owning content.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "created_by": {
            "description": "The GUID of the user who created the bundle.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) of when this bundle was created.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "environment_guid": {
            "description": "The guid of the execution environment used to run this content. Content\nrunning locally\non the same server as Connect will have a `null` value.\n\nA `null` value is returned when the client does not have sufficient rights\nto see this\ninformation.",
            "example": "36538b83-ea6d-4839-ae8e-53c52ac5f0bf",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "cluster_name": {
            "description": "The location where this content runs. Content running on the same\nserver as Connect will have either a `null` value or the string\n\"Local\". Gives the name of the cluster when run external to the\nConnect host.\n\nA `null` value is returned when the client does not have sufficient\nrights to see this information.",
            "example": "Local",
            "nullable": true,
            "type": "string"
          },
          "image_name": {
            "description": "The name of the container image used to run this content in containerized\nenvironments such as Kubernetes. Content running locally\non the same server as Connect will have either a `null` value or the string\n\"Local\".\n\nA `null` value is returned when the client does not have sufficient\nrights to see this information.",
            "example": "rstudio/content-base:r4.1.3-py3.10.11-jammy",
            "nullable": true,
            "type": "string"
          },
          "r_version": {
            "description": "The version of R used when last restoring this bundle. A `null`\nvalue represents that R is not used by this bundle or that the\nbundle has not been prepared for execution.\n\nR version is not disclosed to users with a \"viewer\" role; they\nreceive a `null` value.",
            "example": "3.5.1",
            "nullable": true,
            "type": "string"
          },
          "r_environment_management": {
            "description": "Indicates whether or not Connect is managing an R environment and\nhas installed the required packages for this content. The `null`\nvalue represents that R is not used by this bundle or that it has\nnot yet been determined if an R environment is required.\n\nR environment management is not disclosed to users with a \"viewer\"\nrole; they receive a `null` value.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "py_version": {
            "description": "The version of Python used when last restoring this bundle. A `null`\nvalue represents that Python is not used by this bundle or that the\nbundle has not been prepared for execution.\n\nPython version is not disclosed to users with a \"viewer\" role; they\nreceive a `null` value.",
            "example": "3.8.2",
            "nullable": true,
            "type": "string"
          },
          "py_environment_management": {
            "description": "Indicates whether or not Connect is managing a Python environment\nand has installed the required packages for this content. The `null`\nvalue represents that Python is not used by this bundle or that it\nhas not yet been determined if a Python environment is required.\n\nPython environment management is not disclosed to users with a\n\"viewer\" role; they receive a `null` value.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "quarto_version": {
            "description": "The version of Quarto used when last restoring this bundle. A `null`\nvalue represents that Quarto is not used by this bundle or that the\nbundle has not been successfully prepared for execution.\n\nQuarto version is not disclosed to users with a \"viewer\" role; they\nreceive a `null` value.",
            "example": "0.2.22",
            "nullable": true,
            "type": "string"
          },
          "active": {
            "description": "Indicates if this bundle is active for the owning content.",
            "example": false,
            "type": "boolean"
          },
          "size": {
            "description": "On-disk size in bytes of the tar.gz file associated with this bundle.\nZero when there is no on-disk file.",
            "example": 1000000,
            "format": "int64",
            "type": "integer"
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BundleMetadata"
              }
            ],
            "description": "Metadata object associated with this bundle.\nMay be generated by Connect, if using git-backed publishing,\nor supplied by the publisher at upload time."
          }
        },
        "type": "object"
      },
      "BundleMetadata": {
        "description": "Metadata about a bundle including source control information and custom fields.",
        "properties": {
          "source": {
            "description": "Source for this bundle.\n`git` for bundles fetched from a git repository.",
            "nullable": true,
            "type": "string"
          },
          "source_repo": {
            "description": "Repository URL for this bundle.",
            "nullable": true,
            "type": "string"
          },
          "source_branch": {
            "description": "Repository branch or ref name for this bundle.",
            "nullable": true,
            "type": "string"
          },
          "source_commit": {
            "description": "Commit ID (hash) for this bundle.",
            "nullable": true,
            "type": "string"
          },
          "archive_md5": {
            "description": "MD5 hash of the archive file for this bundle. `null` for bundles\nuploaded before this field was added.",
            "example": "37324238a80595c453c706b22adb83d3",
            "nullable": true,
            "type": "string"
          },
          "archive_sha1": {
            "description": "SHA1 hash of the archive file for this bundle. `null` for bundles\nuploaded before this field was added.",
            "example": "a2f7d13d87657df599aeeabdb70194d508cfa92f",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Content": {
        "description": "The content object models all the \"things\" you may deploy to Posit Connect. This includes Shiny applications, R Markdown documents, Jupyter notebooks, Plumber APIs, FastAPI and Flask APIs, Python apps, plots, and pins.",
        "properties": {
          "guid": {
            "description": "The unique identifier of this content item.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "A simple identifier. Allows alpha-numeric\ncharacters, periods (`\".\"`), hyphens (`\"-\"`), and underscores (`\"_\"`).",
            "example": "quarterly-analysis",
            "type": "string"
          },
          "title": {
            "description": "The title of this content.",
            "example": "Quarterly Analysis of Team Velocity",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A rich description of this content.",
            "example": "This report calculates per-team statistics ...",
            "type": "string"
          },
          "access_type": {
            "description": "Access type describes how this content manages its viewers. The\nvalue `all` is the most permissive; any visitor to Posit Connect\nwill be able to view this content. The value `logged_in` indicates\nthat all Posit Connect accounts may view the content. The `acl`\nvalue lets specifically enumerated users and groups view the\ncontent. Users configured as collaborators may always view content.\n\nAccess types may be restricted by the Connect configuration or the\nproduct license.",
            "example": "acl",
            "type": "string"
          },
          "locked": {
            "description": "Whether or not the content is locked.",
            "example": false,
            "type": "boolean"
          },
          "locked_message": {
            "description": "A custom message that is displayed by the content item when locked.\nIt is possible to format this message using Markdown.",
            "example": "# This piece of content is locked",
            "type": "string"
          },
          "connection_timeout": {
            "description": "Maximum number of seconds allowed without data sent or received\nacross a client connection. A value of `0` means connections will\nnever time-out (not recommended). When `null`, the default\n[`Scheduler.ConnectionTimeout`](../admin/appendix/configuration/index.md#Scheduler.ConnectionTimeout) is used. Applies only to content types\nthat are executed on demand.",
            "example": 3600,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "read_timeout": {
            "description": "Maximum number of seconds allowed without data received from a\nclient connection. A value of `0` means a lack of client (browser)\ninteraction never causes the connection to close. When `null`, the\ndefault [`Scheduler.ReadTimeout`](../admin/appendix/configuration/index.md#Scheduler.ReadTimeout) is used. Applies only to content\ntypes that are executed on demand.",
            "example": 3600,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "init_timeout": {
            "description": "The maximum number of seconds allowed for an interactive application\nto start. Posit Connect must be able to connect to a newly\nlaunched application before this threshold has\nelapsed. When `null`, the default [`Scheduler.InitTimeout`](../admin/appendix/configuration/index.md#Scheduler.InitTimeout) is used.\nApplies only to content types that are executed on demand.",
            "example": 60,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "idle_timeout": {
            "description": "The maximum number of seconds a worker process for an interactive\napplication to remain alive after it goes idle (no active\nconnections). When `null`, the default [`Scheduler.IdleTimeout`](../admin/appendix/configuration/index.md#Scheduler.IdleTimeout) is\nused. Applies only to content types that are executed on demand.",
            "example": 5,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "max_processes": {
            "description": "Specifies the total number of concurrent processes allowed for a\nsingle interactive application per Posit Connect node. When `null`,\nthe default [`Scheduler.MaxProcesses`](../admin/appendix/configuration/index.md#Scheduler.MaxProcesses) is used. Applies only to\ncontent types that are executed on demand.",
            "example": 3,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "min_processes": {
            "description": "Specifies the minimum number of concurrent processes allowed for a\nsingle interactive application per Posit Connect node. When `null`,\nthe default `Scheduler.MinProcesses` is used. Applies only to\ncontent types that are executed on demand.",
            "example": 0,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "max_conns_per_process": {
            "description": "Specifies the maximum number of client connections allowed to an\nindividual process. Incoming connections which will exceed this\nlimit are routed to a new process or rejected. When `null`, the\ndefault [`Scheduler.MaxConnsPerProcess`](../admin/appendix/configuration/index.md#Scheduler.MaxConnsPerProcess) is used. Applies only to\ncontent types that are executed on demand.",
            "example": 20,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "load_factor": {
            "description": "Controls how aggressively new processes are spawned. When `null`,\nthe default [`Scheduler.LoadFactor`](../admin/appendix/configuration/index.md#Scheduler.LoadFactor) is used. Applies only to content\ntypes that are executed on demand.",
            "example": 0.5,
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "memory_request": {
            "description": "The minimum amount of RAM this content needs when executing or\nrendering, expressed in bytes. This is used when running in an\noff-host execution configuration to determine where the content\nshould be run. When `null`, the default [`Scheduler.MemoryRequest`](../admin/appendix/configuration/index.md#Scheduler.MemoryRequest) is\nused.",
            "example": 1073741824,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "memory_limit": {
            "description": "The maximum amount of RAM this content will be allowed to consume\nwhen executing or rendering, expressed in bytes. If the process tries\nto use more memory than allowed, it will be terminated. When `null`,\nthe default [`Scheduler.MemoryLimit`](../admin/appendix/configuration/index.md#Scheduler.MemoryLimit) is used.",
            "example": 2147483648,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "cpu_request": {
            "description": "The minimum amount of compute power this content needs when executing\nor rendering, expressed in [\"CPU\nUnits\"](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu),\nwhere 1.0 unit is equivalent to 1 physical or virtual core.\nFractional values are allowed. This is used when running in an\noff-host execution configuration to determine where the content\nshould be run. When `null`, the default [`Scheduler.CPURequest`](../admin/appendix/configuration/index.md#Scheduler.CPURequest) is\nused.",
            "example": 1,
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "cpu_limit": {
            "description": "The maximum amount of compute power this content will be allowed to\nconsume when executing or rendering, expressed in [\"CPU\nUnits\"](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu),\nwhere 1.0 unit is equivalent to 1 physical or virtual core.\nFractional values are allowed. This is used when running in an\noff-host execution configuration. If the process tries to use more\nCPU than allowed, it will be throttled. When `null`, the default\n[`Scheduler.CPULimit`](../admin/appendix/configuration/index.md#Scheduler.CPULimit) is used.",
            "example": 1.5,
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "amd_gpu_limit": {
            "description": "The number of AMD GPUs that will be\n[allocated by\nKubernetes](https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus/)\nto run this content. This is used when running in an\noff-host execution configuration. When `null`, the default\n[`Scheduler.AMDGPULimit`](../admin/appendix/configuration/index.md#Scheduler.AMDGPULimit) is used. This setting can not exceed\n[`Scheduler.MaxAMDGPULimit`](../admin/appendix/configuration/index.md#Scheduler.MaxAMDGPULimit).",
            "example": 1,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "nvidia_gpu_limit": {
            "description": "The number of NVIDIA GPUs that will be\n[allocated by\nKubernetes](https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus/)\nto run this content. This is used when running in an\noff-host execution configuration. When `null`, the default\n[`Scheduler.NvidiaGPULimit`](../admin/appendix/configuration/index.md#Scheduler.NvidiaGPULimit) is used. This setting can not exceed\n[`Scheduler.MaxNvidiaGPULimit`](../admin/appendix/configuration/index.md#Scheduler.MaxNvidiaGPULimit).",
            "example": 1,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "service_account_name": {
            "description": "The name of the Kubernetes service account that is used to run a particular\npiece of content.\nIt must adhere to valid Kubernetes service account naming rules.\n\nConnect must be configured to run with [`Launcher.Enabled = true`](../admin/appendix/configuration/index.md#Launcher.Enabled),\n[`Launcher.Kubernetes = true`](../admin/appendix/configuration/index.md#Launcher.Kubernetes) and\n[`Launcher.KubernetesContentServiceAccountSelection = true`](../admin/appendix/configuration/index.md#Launcher.KubernetesContentServiceAccountSelection)\nfor this value to be applied. It will have precedence over the\n[`Launcher.KubernetesDefaultServiceAccount`](../admin/appendix/configuration/index.md#Launcher.KubernetesDefaultServiceAccount) that may be set in the\nconfiguration for Connect.\n\nIf this value is defined and Connect is configured with\n[`Launcher.KubernetesContentServiceAccountSelection = false`](../admin/appendix/configuration/index.md#Launcher.KubernetesContentServiceAccountSelection) an error will be\nreturned.\n\nOnly administrators and publishers can view this value.\nOnly administrators can set or change this value.",
            "example": "rstudio-connect-content",
            "nullable": true,
            "type": "string"
          },
          "default_image_name": {
            "description": "The default image that will be used when none is defined by the\nbundle's manifest. A specific image may be selected by setting the\n`environment.image` field in the manifest. If no image is selected\nby the manifest file, then the `default_image_name` is used.\nIf a target image is not defined by the manifest, and no\n`default_image_name` is configured, then Connect will select an\nimage from the list of configured execution environments.\n\nIf either `environment.identifier` or `environment.image` is specified in\nthe bundle's\nmanifest.json then the settings in the manifest are used and the\ncontent-level default\nsettings will be ignored. This allows historical bundle activation to behave\nconsistently\neven when the content-level default values may have changed.\n\nA `null` value is returned when the client does not have sufficient\nrights to see this information.\n\nUse the `/v1/environments` API endpoints to determine which environments\nare available for content execution.",
            "example": "rstudio/content-base:r4.1.3-py3.10.11-jammy",
            "nullable": true,
            "type": "string"
          },
          "default_environment_guid": {
            "description": "The default execution environment that will be used when none is defined by\nthe\nbundle's manifest. A specific execution environment may be selected by\nsetting the\n`environment.identifier` field in the manifest. If no execution environment\nis selected\nby the manifest file, then `default_environment_guid` is used to select the\nexecution environment. If a target execution environment is not defined by\nthe manifest,\nand no `default_environment_guid` is configured, then Connect will select an\nexecution environment from the list of configured execution environments.\n\nIf either `environment.identifier` or `environment.image` is specified in\nthe bundle's\nmanifest.json then the settings in the manifest are used and the\ncontent-level default\nsettings will be ignored. This allows historical bundle activation to behave\nconsistently\neven when the content-level default values may have changed.\n\nA `null` value is returned when the client does not have sufficient\nrights to see this information.\n\nUse the `/v1/environments` API endpoints to determine which environments\nare available for content execution.",
            "example": "36538b83-ea6d-4839-ae8e-53c52ac5f0bf",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when this content was created.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "last_deployed_time": {
            "description": "The timestamp (RFC3339) indicating when this content last had a\nsuccessful bundle deployment performed.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "bundle_id": {
            "description": "The identifier for the active deployment bundle. Automatically\nassigned upon the successful deployment of that bundle.",
            "example": "101",
            "nullable": true,
            "type": "string"
          },
          "app_mode": {
            "description": "The runtime model for this content. Has a value of `unknown` before\ndata is deployed to this item. Automatically assigned upon the first\nsuccessful bundle deployment.\n\nValid values are:\n\n* `api` - R code defining a [Plumber API](https://www.rplumber.io/).\n* `jupyter-static` - A [Jupyter\nNotebook](https://jupyter-notebook.readthedocs.io/en/stable/).\n* `jupyter-voila` A [Voila](https://voila.readthedocs.io/en/stable/)\ninteractive dashboard.\n* `python-api` - Python code defining a WSGI API (such as\n[Flask](https://palletsprojects.com/p/flask/))\n* `python-bokeh` - Python code defining a [Bokeh\napplication](https://bokeh.org/).\n* `python-panel` - Python code defining a [Panel\napplication](https://panel.holoviz.org/).\n* `python-dash` - Python code defining a [Dash\napplication](https://dash.plotly.com/).\n* `python-fastapi` - Python code defining an ASGI API (such as\n[FastAPI](https://fastapi.tiangolo.com/))\n* `python-gradio` - Python code defining a [Gradio](https://www.gradio.app/)\napplication.\n* `python-shiny` - Python code defining a [Shiny\napplication](https://shiny.posit.co/py/).\n* `python-streamlit` - Python code defining a [Streamlit\napplication](https://streamlit.io/).\n* `quarto-shiny` - A [Quarto](https://quarto.org/) document with a Shiny\nruntime.\n* `quarto-static` - A [Quarto](https://quarto.org/) document or site.\n* `rmd-shiny` - An [R Markdown](https://rmarkdown.rstudio.com/) document\nwith a Shiny runtime.\n* `rmd-static` - An [R Markdown](https://rmarkdown.rstudio.com/) document or\nsite.\n* `shiny` - R code defining a [Shiny application](https://shiny.posit.co/).\n* `static` - Content deployed without source; often HTML and plots.\n* `tensorflow-saved-model` - A TensorFlow Model API.\n* `unknown` - No known runtime model.",
            "example": "shiny",
            "type": "string"
          },
          "content_category": {
            "description": "Describes the specialization of the content runtime model.\nAutomatically assigned upon the first successful bundle deployment.\n\nThe `content_category` field refines the type of content specified by\n`app_mode`. It is empty by default. The rsconnect R package may assign\na value when analyzing your content and building its manifest and\nbundle. Plots (images created in the RStudio IDE and presented in the\n\"Plots\" pane) have an `app_mode` of `static` and receive a\n`content_category` of `plot` to distinguish them from other HTML\ndocuments. Pinned static data sets have an `app_mode` of `static` and a\n`content_category` of `pin`. Multi-document R Markdown sites have an\n`app_mode` of `rmd-static` and a `content_category` of `site`.\nAPI content types (such as FastAPI, Flask, or Plumber) that serve as\nMCP servers have a `content_category` of `mcp`. The `mcp` category is\nauto-detected on first deploy but can also be set or cleared via\n[PATCH /v1/content/{guid}](#updateContent).",
            "example": "site",
            "type": "string"
          },
          "parameterized": {
            "description": "True when R Markdown rendered content allows parameter\nconfiguration. Automatically assigned upon the first successful\nbundle deployment. Applies only to content with an `app_mode` of\n`rmd-static`.",
            "example": false,
            "type": "boolean"
          },
          "environment_guid": {
            "description": "The guid of the execution environment used to run this content. Content\nrunning locally\non the same server as Connect will have either a `null` value.\n\nA `null` value is returned when the client does not have sufficient rights\nto see this\ninformation.",
            "example": "36538b83-ea6d-4839-ae8e-53c52ac5f0bf",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "cluster_name": {
            "description": "The location where this content runs. Content running on the same\nserver as Connect will have either a `null` value or the string\n\"Local\". Gives the name of the cluster when run external to the\nConnect host.\n\nA `null` value is returned when the client does not have sufficient\nrights to see this information.",
            "example": "Local",
            "nullable": true,
            "type": "string"
          },
          "image_name": {
            "description": "The name of the container image used to run this content in containerized\nenvironments such as Kubernetes. Content running locally\non the same server as Connect will have either a `null` value or the string\n\"Local\".\n\nA `null` value is returned when the client does not have sufficient\nrights to see this information.",
            "example": "rstudio/content-base:r4.1.3-py3.10.11-jammy",
            "nullable": true,
            "type": "string"
          },
          "r_version": {
            "description": "The of R interpreter associated with this content. A `null` value\nrepresents that R is not used by this content, that the content has\nnot been prepared for execution, or that the client does not have\nsufficient rights to see this information. Automatically assigned\nupon the successful deployment of a bundle.",
            "example": "3.5.1",
            "nullable": true,
            "type": "string"
          },
          "py_version": {
            "description": "The version of Python associated with this content. A `null` value\nrepresents that Python is not used by this content, that the content\nhas not been prepared for execution, or that the client does not\nhave sufficient rights to see this information. Automatically\nassigned upon the successful deployment of a bundle.",
            "example": "3.8.2",
            "nullable": true,
            "type": "string"
          },
          "quarto_version": {
            "description": "The version of Quarto associated with this content. A `null`\nrepresents that Quarto is not used by this content, that the content\nhas not been prepared for execution, or that the client does not\nhave sufficient rights to see this information. Automatically\nassigned upon the successful deployment of a bundle.",
            "example": "0.2.22",
            "nullable": true,
            "type": "string"
          },
          "node_version": {
            "description": "The version of Node.js associated with this content. A `null`\nrepresents that Node.js is not used by this content, that the content\nhas not been prepared for execution, or that the client does not\nhave sufficient rights to see this information. Automatically\nassigned upon the successful deployment of a bundle.",
            "example": "22.11.0",
            "nullable": true,
            "type": "string"
          },
          "r_environment_management": {
            "description": "Indicates whether or not Connect is managing an R environment and\nhas installed the required packages for this content. A `null` value\nrepresents that R is not used by this content, that the content has\nnot been prepared for execution, or that the client does not have\nsufficient rights to see this information. Automatically assigned\nupon the successful deployment of a bundle.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "default_r_environment_management": {
            "description": "Indicates whether or not Connect should create and manage an R\nenvironment (installing required packages) for this content. When\n`null`, Connect makes this determination based on the server\nconfiguration.\n\nA `null` value is also returned when the client does not have\nsufficient rights to see this information.\n\nThis value is ignored if the server setting\n[`Applications.DefaultEnvironmentManagementSelection`](../admin/appendix/configuration/index.md#Applications.DefaultEnvironmentManagementSelection) is disabled.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "py_environment_management": {
            "description": "Indicates whether or not Connect is managing a Python environment\nand has installed the required packages for this content. A `null`\nvalue represents that Python is not used by this content, that the\ncontent has not been prepared for execution, or that the client does\nnot have sufficient rights to see this information. Automatically\nassigned upon the successful deployment of a bundle.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "default_py_environment_management": {
            "description": "Indicates whether or not Connect should create and manage a Python\nenvironment (installing required packages) for this content. When\n`null`, Connect makes this determination based on the server\nconfiguration.\n\nA `null` value is also returned when the client does not have\nsufficient rights to see this information.\n\nThis value is ignored if the server setting\n[`Applications.DefaultEnvironmentManagementSelection`](../admin/appendix/configuration/index.md#Applications.DefaultEnvironmentManagementSelection) is disabled.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "run_as": {
            "description": "The UNIX user that executes this content. When `null`, the default\n[`Applications.RunAs`](../admin/appendix/configuration/index.md#Applications.RunAs) is used. Applies only to executable content\ntypes - not `static`.\n\nOnly administrators can change this value.\n\nIf [`Applications.RunAsEnabled = false`](../admin/appendix/configuration/index.md#Applications.RunAsEnabled), this value will be ignored when\nexecuting content.",
            "example": "rstudio-connect",
            "nullable": true,
            "type": "string"
          },
          "run_as_current_user": {
            "description": "Indicates that Connect should run processes for this content item\nunder the Unix account of the user who visits it. Content accessed\nanonymously will continue to run as the specified `run_as` user.\n\nConnect must be configured to use PAM authentication with the server\nsettings [`Applications.RunAsCurrentUser = true`](../admin/appendix/configuration/index.md#Applications.RunAsCurrentUser) and\n[`PAM.ForwardPassword = true`](../admin/appendix/configuration/index.md#PAM.ForwardPassword). This setting has no effect for other\nauthentication types.\n\nThis setting only applies to application content types (Shiny, Dash,\nStreamlit, Bokeh, and Panel).\n\nOnly administrators can change this value.",
            "example": false,
            "type": "boolean"
          },
          "metrics_collection_enabled": {
            "description": "Controls whether per-job resource metrics (CPU, memory, connections)\nare collected for this content item.\n\nWhen `null`, the content item inherits the server-wide default from\n[`Applications.MetricsCollectionEnabled`](../admin/appendix/configuration/index.md#Applications.MetricsCollectionEnabled). Explicit `true` or `false`\nvalues override the server default.\n\nMetrics can be retrieved via the\n[GET /v1/content/{guid}/jobs/{key}/metrics](#getJobMetrics) endpoint.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "notify_on_share": {
            "description": "Controls whether email notifications are sent by default\nwhen users or groups are added as collaborators or viewers.\n\nWhen `null`, the content item inherits the server-wide default\nfrom [`Applications.NotifyOnShare`](../admin/appendix/configuration/index.md#Applications.NotifyOnShare). Explicit `true` or `false`\nvalues override the server default.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "trace_collection_enabled": {
            "description": "Whether per-job OpenTelemetry traces are collected for this content item.\nTraces are collected only when both this field and the server setting\n`Applications.AllowTraceCollection` are true.",
            "example": false,
            "type": "boolean"
          },
          "owner_guid": {
            "description": "The unique identifier of the user who created this content item.\nAutomatically assigned when the content is created.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "content_url": {
            "description": "The URL associated with this content. Computed from the associated\nGUID for this content.",
            "example": "https://posit-connect.company.com/content/9d8e7f3e-92e8-4a08-b0ff-196319cc56ae",
            "type": "string"
          },
          "dashboard_url": {
            "description": "The URL within the Connect dashboard where this content can be configured.\nComputed from the GUID for this content.",
            "example": "https://posit-connect.company.com/connect/#/apps/9d8e7f3e-92e8-4a08-b0ff-196319cc56ae",
            "type": "string"
          },
          "vanity_url": {
            "description": "The vanity URL associated with this content item. Included in responses\nwhen the vanity URL is set and `include=vanity_url` is provided.",
            "example": "https://posit-connect.company.com/my-content/",
            "type": "string"
          },
          "app_role": {
            "description": "The relationship of the accessing user to this content. A value of\n`owner` is returned for the content owner. `editor` indicates a\ncollaborator. The `viewer` value is given to users who are permitted\nto view the content. A `none` role is returned for administrators\nwho cannot view the content but are permitted to view its\nconfiguration. Computed at the time of the request.",
            "example": "owner",
            "type": "string"
          },
          "bookmarked": {
            "description": "Indicates whether the requesting user has bookmarked this content\nitem. Included in responses when `include=bookmarked` is provided.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "schedules": {
            "description": "Schedules associated with this content item. Included in responses when\n`include=schedule` is provided.",
            "items": {
              "$ref": "#/components/schemas/ContentSchedule"
            },
            "nullable": true,
            "type": "array"
          },
          "id": {
            "description": "The internal numeric identifier of this content item.",
            "example": "314",
            "type": "string"
          },
          "tags": {
            "description": "Tags associated with this content item. Included in responses when\n`include=tags` is provided. Returns an empty array when content has\nno tags.",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true,
            "type": "array"
          },
          "owner": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ContentOwner"
              }
            ],
            "description": "Basic details about the owner of this content item. Included in\nresponses when `include=owner` is provided.",
            "nullable": true
          },
          "public_content_status": {
            "description": "Validation status of public interactive content. When validation is\nrequired by licensing, this will be one of \"ok\", \"warning\", or\n\"restricted\". If licensing does not require validation, it will be\n\"unrestricted\"; if licensing does not allow public interactive\ncontent, it will be \"unlicensed\". If the app has not been made public,\nbut public content is permitted, it will be \"none\".",
            "example": "unrestricted",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentBuildInstructions": {
        "description": "Optionally identifies the target build bundle.",
        "properties": {
          "bundle_id": {
            "description": "The identifier of the bundle to build. If not provided, the most recently uploaded bundle is built.",
            "nullable": true,
            "type": "string"
          },
          "activate": {
            "description": "Whether the built bundle should be activated after building. Defaults to true.",
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ContentBuildTask": {
        "description": "Identifies the task that can be used to track the progress of a build operation.",
        "properties": {
          "task_id": {
            "description": "Identifier for the created build task.",
            "example": "M49MsuXt6XVzlRdL",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentDeploymentInstructions": {
        "description": "Optionally identifies the target deployment bundle.",
        "properties": {
          "bundle_id": {
            "description": "The identifier of the bundle to deploy. If not provided, the most recently uploaded bundle is deployed.",
            "nullable": true,
            "type": "string"
          },
          "activate": {
            "description": "Whether the deployed bundle should be activated after deployment. Defaults to true.",
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ContentDeploymentTask": {
        "description": "Identifies the task that can be used to track the progress of a deployment operation.",
        "properties": {
          "task_id": {
            "description": "Identifier for the created deployment task.",
            "example": "M49MsuXt6XVzlRdL",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentHitData": {
        "description": "Additional data about a content hit.",
        "properties": {
          "path": {
            "description": "The path consumed for this hit event.",
            "example": "/summary",
            "nullable": true,
            "type": "string"
          },
          "query": {
            "description": "The query string for this hit event.",
            "example": "view_hit_source=email",
            "nullable": true,
            "type": "string"
          },
          "user_agent": {
            "description": "The user agent registered for this hit event.",
            "example": "Mozilla/5.0",
            "nullable": true,
            "type": "string"
          },
          "sec_fetch_dest": {
            "description": "The value of the Sec-Fetch-Dest HTTP header. Common values: document, iframe, empty.",
            "nullable": true,
            "type": "string"
          },
          "sec_fetch_site": {
            "description": "The value of the Sec-Fetch-Site HTTP header. Common values: same-origin, same-site, cross-site, none.",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentHitEntry": {
        "description": "A content hit activity record.",
        "properties": {
          "id": {
            "description": "The ID of the activity record.",
            "example": "33",
            "type": "string"
          },
          "user_guid": {
            "description": "The GUID of the user that visited the content. May be null when the content does not require a user session.",
            "example": "08e3a41d-1f8e-47f2-8855-f05ea3b0d4b2",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "content_guid": {
            "description": "The GUID of the content this activity pertains to.",
            "example": "bd1d2285-6c80-49af-8a83-a200effe3cb3",
            "format": "uuid",
            "type": "string"
          },
          "timestamp": {
            "description": "The timestamp (RFC3339) when the user visited the content.",
            "example": "2018-09-15T18:00:00-05:00",
            "format": "date-time",
            "type": "string"
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ContentHitData"
              }
            ],
            "description": "Additional data about the content hit."
          }
        },
        "type": "object"
      },
      "ContentOwner": {
        "description": "Basic details about the owner of a content item.",
        "properties": {
          "guid": {
            "description": "The owner's unique identifier.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "username": {
            "description": "The owner's username.",
            "example": "jondoe",
            "nullable": true,
            "type": "string"
          },
          "first_name": {
            "description": "The owner's first name.",
            "example": "Jon",
            "nullable": true,
            "type": "string"
          },
          "last_name": {
            "description": "The owner's last name.",
            "example": "Doe",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentPackage": {
        "description": "A single package installed for a content item.",
        "properties": {
          "language": {
            "description": "The language ecosystem the package belongs to.",
            "example": "r",
            "type": "string"
          },
          "name": {
            "description": "The package name.",
            "example": "shiny",
            "type": "string"
          },
          "version": {
            "description": "The package version.",
            "example": "1.0.3",
            "type": "string"
          },
          "hash": {
            "description": "The package description hash for R packages. `null` for Python packages.",
            "example": "e4ac73dd20b2f6420742aac66e5d3e78",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentPackages": {
        "description": "Lists the packages installed for a content item.",
        "items": {
          "$ref": "#/components/schemas/Package"
        },
        "type": "array"
      },
      "ContentRenderInstructions": {
        "description": "Instructions for rendering a content item.",
        "properties": {
          "variant_key": {
            "description": "The key of the variant to render. If not specified, the default\nvariant is rendered.",
            "example": "HidI2Kwq",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentRenderTask": {
        "description": "The result of requesting a content render, containing a task identifier.",
        "properties": {
          "task_id": {
            "description": "Identifier for the created render task.",
            "example": "M49MsuXt6XVzlRdL",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentResults": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OffsetPaging"
          },
          {
            "properties": {
              "results": {
                "description": "The list of content items, paginated",
                "items": {
                  "$ref": "#/components/schemas/Content"
                },
                "type": "array"
              },
              "warnings": {
                "description": "An optional list of warning messages generated during query\nprocessing. Warnings indicate issues with the search query that\ndid not prevent the search from completing, such as invalid\nfilter values. When a filter value is invalid, the filter is\nignored and results are returned unfiltered for that field.\nThis field is omitted when there are no warnings.",
                "example": [
                  "Invalid value for 'published' filter: 'bogus'. Expected true or false"
                ],
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ],
        "description": "Search results containing content items and pagination metadata."
      },
      "ContentSchedule": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Schedule"
          },
          {
            "properties": {
              "variant": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ScheduleVariant"
                  }
                ],
                "nullable": true
              }
            },
            "type": "object"
          }
        ],
        "description": "Schedule information with variant details for a content item."
      },
      "ContentTag": {
        "description": "A tag associated with a content item.",
        "properties": {
          "id": {
            "description": "The identifier for this tag.",
            "example": "42",
            "type": "string"
          },
          "name": {
            "description": "The name of this tag.",
            "example": "Finance",
            "type": "string"
          },
          "parent_id": {
            "description": "The identifier for the parent tag. If there is no parent tag, the\nvalue will be `null`.",
            "example": "12",
            "nullable": true,
            "type": "string"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when this tag was created.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "updated_time": {
            "description": "The timestamp (RFC3339) indicating when this tag was last updated.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentTagInput": {
        "description": "The fields that must be specified when adding a tag to a content item.",
        "properties": {
          "tag_id": {
            "description": "The unique identifier for the tag.",
            "example": "101",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentVisitEntry": {
        "description": "A content visit record.",
        "properties": {
          "content_guid": {
            "description": "The GUID of the content this visit pertains to.",
            "example": "bd1d2285-6c80-49af-8a83-a200effe3cb3",
            "format": "uuid",
            "type": "string"
          },
          "user_guid": {
            "description": "The GUID of the user that visited the content. May be null when the content does not require a user session.",
            "example": "08e3a41d-1f8e-47f2-8855-f05ea3b0d4b2",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "variant_key": {
            "description": "The key of the variant the user visited. Null for static content.",
            "example": "HidI2Kwq",
            "nullable": true,
            "type": "string"
          },
          "time": {
            "description": "The timestamp (RFC3339) when the user visited the content.",
            "example": "2018-09-15T18:00:00-05:00",
            "format": "date-time",
            "type": "string"
          },
          "rendering_id": {
            "description": "The ID of the rendering the user visited. Null for static content.",
            "example": "7",
            "nullable": true,
            "type": "string"
          },
          "bundle_id": {
            "description": "The ID of the particular bundle used.",
            "example": "33",
            "nullable": true,
            "type": "string"
          },
          "path": {
            "description": "The path requested by the user.",
            "example": "/logs",
            "nullable": true,
            "type": "string"
          },
          "data_version": {
            "description": "The data version the record was recorded with.",
            "example": 1,
            "format": "int32",
            "type": "integer"
          },
          "user_agent": {
            "description": "The user agent that made the request.",
            "example": "Mozilla/5.0",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentVisitLogs": {
        "description": "Content visit results with keyset pagination.",
        "properties": {
          "results": {
            "description": "The content visit logs.",
            "items": {
              "$ref": "#/components/schemas/ContentVisitEntry"
            },
            "type": "array"
          },
          "paging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/KeysetPaging"
              }
            ],
            "description": "Paging information for navigating result sets."
          }
        },
        "type": "object"
      },
      "CreateContentInput": {
        "description": "The content fields that can be specified when creating a content item.",
        "properties": {
          "name": {
            "description": "A simple identifier. Allows alpha-numeric\ncharacters, periods (`\".\"`), hyphens (`\"-\"`), and underscores (`\"_\"`).",
            "example": "quarterly-analysis",
            "type": "string"
          },
          "title": {
            "description": "The title of this content.",
            "example": "Quarterly Analysis of Team Velocity",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A rich description of this content.",
            "example": "This report calculates per-team statistics ...",
            "type": "string"
          },
          "access_type": {
            "description": "Access type describes how this content manages its viewers. The\nvalue `all` is the most permissive; any visitor to Posit Connect\nwill be able to view this content. The value `logged_in` indicates\nthat all Posit Connect accounts may view the content. The `acl`\nvalue lets specifically enumerated users and groups view the\ncontent. Users configured as collaborators may always view content.\n\nAccess types may be restricted by the Connect configuration or the\nproduct license.",
            "enum": [
              "all",
              "logged_in",
              "acl"
            ],
            "example": "acl",
            "type": "string"
          },
          "connection_timeout": {
            "description": "Maximum number of seconds allowed without data sent or received\nacross a client connection. A value of `0` means connections will\nnever time-out (not recommended). When `null`, the default\n[`Scheduler.ConnectionTimeout`](../admin/appendix/configuration/index.md#Scheduler.ConnectionTimeout) is used. Applies only to content types\nthat are executed on demand.",
            "example": 3600,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "read_timeout": {
            "description": "Maximum number of seconds allowed without data received from a\nclient connection. A value of `0` means a lack of client (browser)\ninteraction never causes the connection to close. When `null`, the\ndefault [`Scheduler.ReadTimeout`](../admin/appendix/configuration/index.md#Scheduler.ReadTimeout) is used. Applies only to content\ntypes that are executed on demand.",
            "example": 3600,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "init_timeout": {
            "description": "The maximum number of seconds allowed for an interactive application\nto start. Posit Connect must be able to connect to a newly\nlaunched application before this threshold has\nelapsed. When `null`, the default [`Scheduler.InitTimeout`](../admin/appendix/configuration/index.md#Scheduler.InitTimeout) is used.\nApplies only to content types that are executed on demand.",
            "example": 60,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "idle_timeout": {
            "description": "The maximum number of seconds a worker process for an interactive\napplication to remain alive after it goes idle (no active\nconnections). When `null`, the default [`Scheduler.IdleTimeout`](../admin/appendix/configuration/index.md#Scheduler.IdleTimeout) is\nused. Applies only to content types that are executed on demand.",
            "example": 5,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "max_processes": {
            "description": "Specifies the total number of concurrent processes allowed for a\nsingle interactive application per Posit Connect node. When `null`,\nthe default [`Scheduler.MaxProcesses`](../admin/appendix/configuration/index.md#Scheduler.MaxProcesses) is used. Applies only to\ncontent types that are executed on demand.",
            "example": 3,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "min_processes": {
            "description": "Specifies the minimum number of concurrent processes allowed for a\nsingle interactive application per Posit Connect node. When `null`,\nthe default `Scheduler.MinProcesses` is used. Applies only to\ncontent types that are executed on demand.",
            "example": 0,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "max_conns_per_process": {
            "description": "Specifies the maximum number of client connections allowed to an\nindividual process. Incoming connections which will exceed this\nlimit are routed to a new process or rejected. When `null`, the\ndefault [`Scheduler.MaxConnsPerProcess`](../admin/appendix/configuration/index.md#Scheduler.MaxConnsPerProcess) is used. Applies only to\ncontent types that are executed on demand.",
            "example": 20,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "load_factor": {
            "description": "Controls how aggressively new processes are spawned. When `null`,\nthe default [`Scheduler.LoadFactor`](../admin/appendix/configuration/index.md#Scheduler.LoadFactor) is used. Applies only to content\ntypes that are executed on demand.",
            "example": 0.5,
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "default_r_environment_management": {
            "description": "Indicates whether or not Connect should create and manage an R\nenvironment (installing required packages) for this content. When\n`null`, Connect makes this determination based on the server\nconfiguration.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "default_py_environment_management": {
            "description": "Indicates whether or not Connect should create and manage a Python\nenvironment (installing required packages) for this content. When\n`null`, Connect makes this determination based on the server\nconfiguration.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "run_as": {
            "description": "The UNIX user that executes this content. When `null`, the default\n[`Applications.RunAs`](../admin/appendix/configuration/index.md#Applications.RunAs) is used. Applies only to executable content\ntypes - not `static`.",
            "example": "rstudio-connect",
            "nullable": true,
            "type": "string"
          },
          "run_as_current_user": {
            "description": "Indicates that Connect should run processes for this content item\nunder the Unix account of the user who visits it. Content accessed\nanonymously will continue to run as the specified `run_as` user.",
            "example": false,
            "nullable": true,
            "type": "boolean"
          },
          "memory_request": {
            "description": "The minimum amount of RAM this content needs when executing or\nrendering, expressed in bytes. When `null`, the default\n[`Scheduler.MemoryRequest`](../admin/appendix/configuration/index.md#Scheduler.MemoryRequest) is used.",
            "example": 1073741824,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "memory_limit": {
            "description": "The maximum amount of RAM this content will be allowed to consume\nwhen executing or rendering, expressed in bytes. When `null`, the\ndefault [`Scheduler.MemoryLimit`](../admin/appendix/configuration/index.md#Scheduler.MemoryLimit) is used.",
            "example": 2147483648,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "cpu_request": {
            "description": "The minimum amount of compute power this content needs when executing\nor rendering, expressed in CPU Units, where 1.0 unit is equivalent to\n1 physical or virtual core. Fractional values are allowed. When `null`,\nthe default [`Scheduler.CPURequest`](../admin/appendix/configuration/index.md#Scheduler.CPURequest) is used.",
            "example": 1,
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "cpu_limit": {
            "description": "The maximum amount of compute power this content will be allowed to\nconsume when executing or rendering, expressed in CPU Units. When\n`null`, the default [`Scheduler.CPULimit`](../admin/appendix/configuration/index.md#Scheduler.CPULimit) is used.",
            "example": 1.5,
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "amd_gpu_limit": {
            "description": "The number of AMD GPUs allocated to run this content. When `null`,\nthe default [`Scheduler.AMDGPULimit`](../admin/appendix/configuration/index.md#Scheduler.AMDGPULimit) is used.",
            "example": 1,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "nvidia_gpu_limit": {
            "description": "The number of NVIDIA GPUs allocated to run this content. When `null`,\nthe default [`Scheduler.NvidiaGPULimit`](../admin/appendix/configuration/index.md#Scheduler.NvidiaGPULimit) is used.",
            "example": 1,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "service_account_name": {
            "description": "The name of the Kubernetes service account used to run this content.",
            "example": "rstudio-connect-content",
            "nullable": true,
            "type": "string"
          },
          "default_image_name": {
            "description": "The default container image used when none is defined by the bundle's\nmanifest.",
            "example": "rstudio/content-base:r4.1.3-py3.10.11-jammy",
            "nullable": true,
            "type": "string"
          },
          "default_environment_guid": {
            "description": "The default execution environment used when none is defined by the\nbundle's manifest.",
            "example": "36538b83-ea6d-4839-ae8e-53c52ac5f0bf",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "metrics_collection_enabled": {
            "description": "Controls whether per-job resource metrics are collected for this\ncontent item. When `null`, inherits the server-wide default.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "notify_on_share": {
            "description": "Controls whether email notifications are sent by default when\nusers or groups are added as collaborators or viewers.\nWhen `null`, inherits the server-wide default from\n[`Applications.NotifyOnShare`](../admin/appendix/configuration/index.md#Applications.NotifyOnShare).",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "trace_collection_enabled": {
            "description": "Controls whether per-job OpenTelemetry traces are collected for\nthis content item. When `null`, inherits the server-wide default.",
            "example": false,
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "CreateEnvironmentInput": {
        "description": "The fields that can be specified when creating an environment.",
        "properties": {
          "title": {
            "description": "A human readable title for this environment.",
            "example": "Project Alpha (R 4.1.1, Python 3.10)",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A human readable description of this environment.",
            "example": "This is my description of the environment",
            "nullable": true,
            "type": "string"
          },
          "cluster_name": {
            "description": "The cluster identifier for this environment.\n\nThe value must be \"Kubernetes\" when Off Host Execution is enabled.",
            "example": "Kubernetes",
            "type": "string"
          },
          "name": {
            "description": "The container image that will be used when executing content with this\nenvironment.",
            "example": "ghcr.io/rstudio/content-base:r4.1.3-py3.10.4-ubuntu1804",
            "type": "string"
          },
          "matching": {
            "description": "This field indicates how environments can be considered for selection\nwhen Posit Connect is choosing a compatible environment to use when\nexecuting content.\n\n`any` (the default) indicates that the image can be selected by Connect\nautomatically,\n_or_ targeted in the bundle's manifest.\n\n`exact` indicates the image must be explicitly asked for in the bundle's\nmanifest.\n\n`none` indicates that the image should never be selected by Posit Connect.",
            "example": "any",
            "nullable": true,
            "type": "string"
          },
          "supervisor": {
            "description": "The path to the script or command that should be used as the\n[program\nsupervisor](https://docs.posit.co/helm/rstudio-connect/kubernetes-howto/appendices/content_images.html#per-image-supervisors)\nwhen executing content with this environment.",
            "example": "/usr/local/bin/supervisor.sh",
            "nullable": true,
            "type": "string"
          },
          "python": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available Python installations in this environment."
          },
          "quarto": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available Quarto installations in this environment."
          },
          "r": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available R installations in this environment."
          },
          "tensorflow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available TensorFlow installations in this environment."
          },
          "volume_mounts": {
            "description": "The volume mounts for this environment.",
            "items": {
              "$ref": "#/components/schemas/VolumeMount"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CreateRunInput": {
        "description": "The fields to provide when running system checks.",
        "properties": {
          "hostname": {
            "description": "The hostname where this test was run. Optional. Defaults to the host",
            "example": "connect.example.com",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CurrentSchedule": {
        "properties": {
          "schedule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RRuleSet"
              }
            ],
            "description": "The schedule definition in RFC 5545 (iCalendar) format."
          },
          "next_run": {
            "description": "The next scheduled run time (RFC3339), or null if no future\nrun is scheduled.",
            "example": "2024-01-17T14:00:00Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CustomDocumentationInput": {
        "description": "The custom documentation for the Posit Connect server.",
        "properties": {
          "content": {
            "description": "The custom documentation content, formatted using Markdown.",
            "type": "string"
          },
          "created_time": {
            "description": "The time when the custom documentation was created.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CustomDocumentationResult": {
        "description": "The custom documentation for the Posit Connect server.",
        "properties": {
          "content": {
            "description": "The custom documentation content, formatted using Markdown.",
            "type": "string"
          },
          "created_time": {
            "description": "The time when the custom documentation was created.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DeleteRuntimeCacheInput": {
        "description": "Fields that describe the runtime cache to delete.",
        "properties": {
          "language": {
            "description": "The language of the target cache; either \"R\" or \"Python\".",
            "example": "R",
            "type": "string"
          },
          "version": {
            "description": "The version of the target cache.",
            "example": "4.1.2",
            "type": "string"
          },
          "image_name": {
            "description": "The execution environment of the target cache; either \"Local\" or an\nimage name or identifier.",
            "example": "Local",
            "type": "string"
          },
          "dry_run": {
            "description": "When true, check input but do not delete cache.",
            "example": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "DeleteRuntimeCacheResponse": {
        "description": "The response from a cache deletion request.",
        "properties": {
          "language": {
            "description": "The runtime language of the target cache.",
            "example": "Python",
            "type": "string"
          },
          "version": {
            "description": "The language version of the target cache.",
            "example": "3.8.12",
            "type": "string"
          },
          "image_name": {
            "description": "The name of the target cache's execution environment.",
            "example": "Local",
            "type": "string"
          },
          "task_id": {
            "description": "The identifier for the created deployment task.\nAlways `null` for dry-run requests.",
            "example": "M49MsuXt6XVzlRdL",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "EditableUser": {
        "description": "The editable user properties.",
        "properties": {
          "email": {
            "description": "The user's email",
            "example": "jon.doe@example.com",
            "type": "string"
          },
          "username": {
            "description": "The user's username",
            "example": "jondoe",
            "type": "string"
          },
          "first_name": {
            "description": "The user's first name",
            "example": "Jon",
            "type": "string"
          },
          "last_name": {
            "description": "The user's last name",
            "example": "Doe",
            "type": "string"
          },
          "user_role": {
            "description": "The user's role",
            "example": "administrator",
            "type": "string"
          },
          "updated_time": {
            "description": "The timestamp (in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339) format)\nwhen the\nuser was last updated in the Posit Connect server",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EmailSend": {
        "properties": {
          "guid": {
            "description": "Unique identifier for this email send.",
            "example": "3a8e8d6f-5b2a-4c9e-8f1d-2a3b4c5d6e7f",
            "type": "string"
          },
          "rendering_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/storetypes.RenderingId"
              }
            ],
            "description": "The rendering ID associated with this email send."
          },
          "sent_at": {
            "description": "When the email was sent (RFC 3339 timestamp).",
            "example": "2026-03-13T10:30:00Z",
            "format": "date-time",
            "type": "string"
          },
          "send_source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/store.EmailSendSource"
              }
            ],
            "description": "How the email was triggered."
          },
          "success": {
            "description": "Whether the email was sent successfully.",
            "example": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "EmailSendListResponse": {
        "properties": {
          "results": {
            "description": "Array of email send records. Limited to the most recent 100 sends.",
            "items": {
              "$ref": "#/components/schemas/EmailSend"
            },
            "type": "array"
          },
          "total_count": {
            "description": "Total number of email sends for this variant. May exceed the length of the results array if more than 100 sends exist.",
            "example": 150,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Environment": {
        "description": "An execution environment available to Posit Connect when Off Host Execution is enabled.",
        "properties": {
          "id": {
            "description": "The internal numeric identifier of this environment.",
            "example": "314",
            "type": "string"
          },
          "guid": {
            "description": "The unique identifier of this environment to be used with REST API requests.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when this environment was created.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "updated_time": {
            "description": "The timestamp (RFC3339) indicating when this environment was last updated.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "title": {
            "description": "A human readable title for this environment.",
            "example": "Project Alpha (R 4.1.1, Python 3.10)",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A human readable description of this environment.",
            "example": "This is my description of the environment",
            "nullable": true,
            "type": "string"
          },
          "cluster_name": {
            "description": "The cluster identifier for this environment.\n\nThe value is always \"Kubernetes\" when Off Host Execution is enabled.",
            "example": "Kubernetes",
            "type": "string"
          },
          "name": {
            "description": "The container image that will be used when executing content with this\nenvironment.",
            "example": "ghcr.io/rstudio/content-base:r4.1.3-py3.10.4-ubuntu1804",
            "type": "string"
          },
          "environment_type": {
            "description": "The type of environment.\n\nThe value is always \"Kubernetes\" when Off Host Execution is enabled.",
            "example": "Kubernetes",
            "type": "string"
          },
          "matching": {
            "description": "This field indicates how environments can be considered for selection\nwhen Posit Connect is choosing a compatible environment to use when\nexecuting content.\n\n`any` (the default) indicates that the image can be selected by Connect\nautomatically,\n_or_ targeted in the bundle's manifest.\n\n`exact` indicates the image must be explicitly asked for in the bundle's\nmanifest.\n\n`none` indicates that the image should never be selected by Posit Connect.",
            "example": "any",
            "type": "string"
          },
          "supervisor": {
            "description": "The path to the script or command that should be used as the\n[program\nsupervisor](https://docs.posit.co/helm/rstudio-connect/kubernetes-howto/appendices/content_images.html#per-image-supervisors)\nwhen executing content with this environment.",
            "example": "/usr/local/bin/supervisor.sh",
            "nullable": true,
            "type": "string"
          },
          "managed_by": {
            "description": "Indicates which system manages this environment. A `null` value indicates\nthe environment is not externally managed.",
            "nullable": true,
            "type": "string"
          },
          "python": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available Python installations in this environment."
          },
          "quarto": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available Quarto installations in this environment."
          },
          "r": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available R installations in this environment."
          },
          "tensorflow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available TensorFlow installations in this environment."
          },
          "volume_mounts": {
            "description": "The volume mounts for this environment.",
            "items": {
              "$ref": "#/components/schemas/VolumeMount"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "EnvironmentPermission": {
        "description": "Provides details about the relationship between the execution\nenvironment and the user or group that has access to it.",
        "properties": {
          "id": {
            "description": "The internal identifier for this permission entry.",
            "example": "101",
            "type": "string"
          },
          "guid": {
            "description": "The identifier for this permission entry.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "environment_guid": {
            "description": "The identifier of the execution environment.",
            "example": "62543474-5716-4423-92d1-b3a22163eb49",
            "format": "uuid",
            "type": "string"
          },
          "user_guid": {
            "description": "The identifier of the user listed in the permission entry.\nThis field will be null if a group is listed.",
            "example": "d73f7343-02e8-4c52-9208-598e28f8002e",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "group_guid": {
            "description": "The identifier of the group listed in the permission entry.\nThis field will be null if a user is listed.",
            "example": "a46be0c8-ef75-4dce-b902-d8e56a6b8509",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "EnvironmentPermissionInput": {
        "description": "The fields that can be specified when adding permissions to an execution environment.\nNote that only one of user_guid or group_guid can be specified in a single request.",
        "properties": {
          "user_guid": {
            "description": "The identifier of the user. Do not specify this field if you are adding a group.",
            "example": "89a3c946-d73c-4781-8463-dd3cccff3fef",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "group_guid": {
            "description": "The identifier of the group. Do not specify this field if you are adding a user.",
            "example": "998f3356-96f0-48a2-9655-94334615fa5b",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "EnvironmentVariable": {
        "description": "Defines an environment variable and its value.",
        "properties": {
          "name": {
            "description": "Name of the environment variable.",
            "example": "DEBUG",
            "type": "string"
          },
          "value": {
            "description": "New value of the environment variable.\nA value of `null` will delete the environment variable.",
            "example": "1",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "EnvironmentVariableNames": {
        "description": "List of environment variable names, without values.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "EnvironmentVariables": {
        "description": "List of environment variables with their values.",
        "items": {
          "$ref": "#/components/schemas/EnvironmentVariable"
        },
        "type": "array"
      },
      "Feature": {
        "description": "Details about a tracked feature.",
        "properties": {
          "name": {
            "description": "Name of the feature flag.",
            "type": "string"
          },
          "used": {
            "description": "Whether or not this feature has been used.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "GitLocationInput": {
        "description": "Git location associated with a content item.",
        "properties": {
          "repository": {
            "description": "URL for the repository.",
            "example": "https://github.com/rstudio/connect-examples",
            "type": "string"
          },
          "branch": {
            "description": "The tracked Git branch.",
            "example": "main",
            "type": "string"
          },
          "directory": {
            "description": "Directory containing the content.",
            "example": "stock-report",
            "type": "string"
          },
          "polling": {
            "description": "Indicates that the Git repository should be regularly polled.",
            "example": false,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "GitLocationOutput": {
        "description": "Git location associated with a content item.",
        "properties": {
          "repository": {
            "description": "URL for the repository.",
            "example": "https://github.com/rstudio/connect-examples",
            "type": "string"
          },
          "branch": {
            "description": "The tracked Git branch.",
            "example": "main",
            "type": "string"
          },
          "directory": {
            "description": "Directory containing the content.",
            "example": "stock-report",
            "type": "string"
          },
          "polling": {
            "description": "Indicates that the Git repository is regularly polled.",
            "example": false,
            "type": "boolean"
          },
          "last_error": {
            "description": "The last error encountered when polling the Git repository, if one occurred.",
            "example": "The requested operation requires authentication.",
            "type": "string"
          },
          "last_known_commit": {
            "description": "The last known commit in the Git repository.",
            "example": "a8906feae5c7675b934b7d22eb5fbd12ce51f1ba",
            "type": "string"
          },
          "last_fetched_time": {
            "description": "The last time the Git repository was fetched.",
            "example": "2026-04-14T12:00:00Z",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Group": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ServiceToken"
          },
          {
            "properties": {
              "guid": {
                "description": "The unique identifier",
                "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
                "format": "uuid",
                "type": "string"
              }
            },
            "type": "object"
          }
        ],
        "description": "A group object."
      },
      "GroupCreateInput": {
        "description": "The fields that can be specified when creating a group.",
        "properties": {
          "name": {
            "description": "The group's desired name",
            "example": "marketing",
            "type": "string"
          },
          "unique_id": {
            "description": "Applies to SAML, OAuth2 and Proxied authentication when\nthe setting `GroupsByUniqueId` is enabled. This field\nmust not be present otherwise.",
            "type": "string"
          },
          "gid": {
            "description": "The POSIX Group ID (GID) for\n[current user execution](../admin/process-management/index.md#runas-current).\nOnly administrators can set this field, and only when using\nSAML or OAuth2 authentication. Must be a positive integer\nand unique across all groups.",
            "example": 1001,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "GroupCreateRemoteInput": {
        "description": "The fields that must be specified when creating a remote group.",
        "properties": {
          "temp_ticket": {
            "description": "The temporary ticket used for creating a group on the\nPosit Connect server. It is obtained from the\n[GET /v1/groups/remote](#searchRemoteGroups) endpoint.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "GroupMember": {
        "allOf": [
          {
            "$ref": "#/components/schemas/User"
          }
        ],
        "description": "A group member (user)."
      },
      "GroupMemberAddInput": {
        "description": "The fields that must be specified when adding a member to a group.",
        "properties": {
          "user_guid": {
            "description": "The user's unique identifier",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "GroupMembers": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OffsetPaging"
          },
          {
            "properties": {
              "results": {
                "description": "The group members list",
                "items": {
                  "$ref": "#/components/schemas/GroupMember"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ],
        "description": "The group members list with paging information."
      },
      "GroupOutput": {
        "description": "Common group fields shared across group representations.",
        "properties": {
          "name": {
            "description": "The group name",
            "example": "accounting",
            "type": "string"
          },
          "owner_guid": {
            "description": "The group owner's unique identifier. When using LDAP, or\nSAML/OAuth2 with group provisioning enabled, this will be null.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "gid": {
            "description": "The POSIX Group ID (GID) used for\n[current user execution](../admin/process-management/index.md#runas-current).",
            "example": 1001,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "GroupOwnershipContent": {
        "description": "Content item with access control details for a group.",
        "properties": {
          "content_guid": {
            "description": "The unique identifier of the content item.",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "format": "uuid",
            "type": "string"
          },
          "content_name": {
            "description": "The name of the content item.",
            "type": "string"
          },
          "content_title": {
            "description": "The title of the content item.",
            "type": "string"
          },
          "access_type": {
            "description": "The access type of the content item.",
            "example": "acl",
            "type": "string"
          },
          "permissions": {
            "description": "List of principals (users and groups) with access to the content.\nThe owner is listed as `author` and is always present.",
            "items": {
              "$ref": "#/components/schemas/GroupOwnershipPermission"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "GroupOwnershipPermission": {
        "description": "A principal with access to a content item.",
        "properties": {
          "principal_guid": {
            "description": "The identifier of the principal (user or group) with access to the content.",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "format": "uuid",
            "type": "string"
          },
          "principal_name": {
            "description": "The name of the principal (user or group) with access to the content.",
            "type": "string"
          },
          "principal_role": {
            "description": "The role of the principal (user or group) with access to the content.",
            "example": "author",
            "type": "string"
          },
          "principal_type": {
            "description": "The type of the principal (user or group) with access to the content.",
            "example": "user",
            "type": "string"
          }
        },
        "type": "object"
      },
      "GroupPatchInput": {
        "description": "The fields that can be specified when partially updating a group.",
        "properties": {
          "name": {
            "description": "The group's new name. Cannot be empty or `null`, and must be\nat most 4096 characters. Names must be unique, except for\nSAML, OAuth2, and Proxied authentication when `GroupsByUniqueId`\nis enabled.",
            "example": "engineering",
            "nullable": true,
            "type": "string"
          },
          "owner_guid": {
            "description": "The new owner's unique identifier. Must reference an existing\nuser who is not a viewer. Can be set to `null` to remove the\nowner for SAML, OAuth2, and Proxied authentication when\n`GroupsAutoProvision` is enabled.",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "gid": {
            "description": "The POSIX Group ID (GID) for\n[current user execution](../admin/process-management/index.md#runas-current).\nMust be a positive integer and unique across all groups. Set\nto `null` to remove the GID.",
            "example": 1001,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "GroupRemoteSearch": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OffsetPaging"
          },
          {
            "properties": {
              "results": {
                "description": "The groups list",
                "items": {
                  "$ref": "#/components/schemas/GroupWithTicket"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ],
        "description": "The remote group search results with paging information."
      },
      "GroupUpdateInput": {
        "description": "The fields that can be specified when updating a group.",
        "type": "object"
      },
      "GroupWithTicket": {
        "description": "A group object with a temporary ticket for remote group creation.",
        "properties": {
          "name": {
            "description": "The group name",
            "example": "accounting",
            "type": "string"
          },
          "guid": {
            "description": "The group's unique identifier in\n[RFC4122](https://tools.ietf.org/html/rfc4122) format. When\na group does not exist in the Posit Connect server, this\nproperty will be `null`.",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "temp_ticket": {
            "description": "This value is for actions that require a `temp_ticket`, such\nas adding an LDAP group to the Connect server.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Groups": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OffsetPaging"
          },
          {
            "properties": {
              "results": {
                "description": "The groups list",
                "items": {
                  "$ref": "#/components/schemas/Group"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ],
        "description": "The groups list with paging information."
      },
      "HistorySchedule": {
        "properties": {
          "schedule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RRuleSet"
              }
            ],
            "description": "The schedule definition in RFC 5545 (iCalendar) format."
          }
        },
        "type": "object"
      },
      "Host": {
        "description": "The fields returned when listing Connect hosts.",
        "properties": {
          "hostname": {
            "description": "The hostname or node name configured for the host.",
            "example": "connect.example.com",
            "type": "string"
          },
          "version": {
            "description": "The version of Connect running on the host.",
            "example": "2021.10.0",
            "type": "string"
          },
          "last_seen": {
            "description": "The timestamp (RFC3339) of when this host last checked in.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Installation": {
        "description": "An instance of an interpreter within an execution environment.",
        "properties": {
          "version": {
            "description": "The semantic version of the interpreter.",
            "example": "3.6.3",
            "type": "string"
          },
          "path": {
            "description": "The absolute path to the interpreter's executable.",
            "example": "/opt/R/3.6.3/bin/R",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Installations": {
        "description": "A list of language installations available to an environment.",
        "properties": {
          "installations": {
            "description": "The list of language installations.",
            "items": {
              "$ref": "#/components/schemas/Installation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Job": {
        "description": "A job record representing a content execution.",
        "properties": {
          "id": {
            "description": "The job identifier.",
            "example": "54",
            "type": "string"
          },
          "ppid": {
            "description": "The job's parent process identifier.",
            "example": "20253",
            "nullable": true,
            "type": "string"
          },
          "pid": {
            "description": "The job's process identifier.",
            "example": "20253",
            "type": "string"
          },
          "key": {
            "description": "The job's unique key identifier.",
            "example": "tHawGvHZTosJA2Dx",
            "type": "string"
          },
          "remote_id": {
            "description": "The job's identifier for off-host execution configurations.",
            "example": "S3ViZXJuZXRlczpyZW5kZXItci1tYXJrZG93bi1zaXRlLWtnODJo",
            "nullable": true,
            "type": "string"
          },
          "app_id": {
            "description": "This field is deprecated and has been renamed to `content_id`.",
            "example": "54",
            "type": "string"
          },
          "content_id": {
            "description": "The identifier for this job's parent content.",
            "example": "54",
            "type": "string"
          },
          "content_guid": {
            "description": "The unique identifier for this job's content.",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "type": "string"
          },
          "variant_id": {
            "description": "The identifier of the variant owning this job.",
            "example": "54",
            "type": "string"
          },
          "variant_key": {
            "description": "The key of the variant owning this job. May be empty\nif the variant is no longer available.",
            "example": "HidI2Kwq",
            "type": "string"
          },
          "bundle_id": {
            "description": "The identifier of a content bundle linked to this job.",
            "example": "54",
            "type": "string"
          },
          "start_time": {
            "description": "The timestamp (RFC3339) indicating when this job started.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "end_time": {
            "description": "The timestamp (RFC3339) indicating when this job finished.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_heartbeat_time": {
            "description": "The timestamp (RFC3339) indicating the last time\nthis job was observed to be running.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "queued_time": {
            "description": "The timestamp (RFC3339) indicating when this job was added to the queue\nto be processed. Only scheduled reports will present a value for this field.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "queue_name": {
            "description": "The name of the queue which processes the job. Only scheduled reports\nwill present a value for this field.",
            "example": "default",
            "nullable": true,
            "type": "string"
          },
          "tag": {
            "description": "A tag to identify the nature of the job. It can be one of `unknown`,\n`build_report`, `build_site`, `build_jupyter`, `packrat_restore`,\n`python_restore`, `configure_report`, `run_app`, `run_api`,\n`run_tensorflow`, `run_python_api`, `run_dash_app`,\n`run_streamlit`, `run_bokeh_app`, `run_panel_app`, `run_fastapi_app`,\n`run_gradio_app`,\n`run_pyshiny_app`, `render_shiny`, `run_voila_app`, `testing`,\n`git`, `val_py_ext_pkg`, `val_r_ext_pkg`, `val_r_install`.",
            "example": "build_report",
            "type": "string"
          },
          "exit_code": {
            "description": "The job's exit code. Present only when job is finished.",
            "example": 0,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "error": {
            "description": "The error message if the job failed due to an unexpected server error.",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The current status of the job. It can be one of Active: `0`, Finished: `1`,\nFinalized: `2`, Skipped: `3`.",
            "example": 0,
            "type": "integer"
          },
          "hostname": {
            "description": "The name of the node which processes the job.",
            "example": "connect",
            "nullable": true,
            "type": "string"
          },
          "cluster": {
            "description": "The location where this content runs. Content running on the same\nserver as Connect will have either a `null` value or the string\n`Local`. Gives the name of the cluster when run external to the\nConnect host.",
            "example": "Kubernetes",
            "nullable": true,
            "type": "string"
          },
          "image": {
            "description": "The location where this content runs. Content running on the\nsame server as Connect will have either a `null` value or the string\n`Local`. References the name of the target image when content runs\nin a clustered environment such as Kubernetes.",
            "example": "someorg/image:jammy",
            "nullable": true,
            "type": "string"
          },
          "run_as": {
            "description": "The UNIX user that executed this job.",
            "example": "rstudio-connect",
            "nullable": true,
            "type": "string"
          },
          "skip_reason": {
            "description": "The reason why this job was skipped. Only present for jobs with a\nskipped status (e.g., when a duplicate job was already queued).",
            "example": "duplicate job already queued",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "JobMetrics": {
        "description": "Resource usage metrics collected for a job.",
        "properties": {
          "content_guid": {
            "description": "The unique identifier for the content item.",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "type": "string"
          },
          "job_key": {
            "description": "The job's unique key identifier.",
            "example": "tHawGvHZTosJA2Dx",
            "type": "string"
          },
          "samples": {
            "description": "Array of metric samples collected during job execution.\nMay be empty if no metrics were collected.",
            "items": {
              "$ref": "#/components/schemas/MetricSample"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "JobSummary": {
        "description": "Aggregated job statistics with totals and time-bucketed histogram for scheduled jobs only.",
        "properties": {
          "totals": {
            "allOf": [
              {
                "$ref": "#/components/schemas/JobSummaryTotals"
              }
            ],
            "description": "Aggregated total counts of scheduled jobs by status."
          },
          "buckets": {
            "description": "Time-series histogram of scheduled job outcomes. Each bucket represents a\ntime interval\nwith counts of succeeded and failed scheduled jobs. The bucket interval is\nautomatically\ndetermined based on the query time range (5 minutes to 30 days).",
            "items": {
              "$ref": "#/components/schemas/JobSummaryBucket"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "JobSummaryBucket": {
        "description": "A single time bucket in the scheduled job history histogram.",
        "properties": {
          "timestamp": {
            "description": "The start time of this bucket (RFC3339). Scheduled jobs with start_time in\nthe interval\n[timestamp, timestamp+interval) are counted in this bucket.",
            "example": "2026-01-26T00:00:00Z",
            "format": "date-time",
            "type": "string"
          },
          "failed": {
            "description": "Number of scheduled jobs in this bucket that failed.",
            "example": 4,
            "type": "integer"
          },
          "succeeded": {
            "description": "Number of scheduled jobs in this bucket that succeeded.",
            "example": 100,
            "type": "integer"
          },
          "skipped": {
            "description": "Number of scheduled jobs in this bucket that were skipped. Note: skipped\njobs are tracked from Connect version 2026.03.0 onward.",
            "example": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "JobSummaryTotals": {
        "description": "Total counts of scheduled jobs by status.",
        "properties": {
          "waiting": {
            "description": "Number of scheduled jobs queued but not yet started. For time ranges in the\npast, this will be 0.",
            "example": 3,
            "type": "integer"
          },
          "running": {
            "description": "Number of currently executing scheduled jobs. For time ranges in the past,\nthis will be 0.",
            "example": 1,
            "type": "integer"
          },
          "succeeded": {
            "description": "Number of scheduled jobs that completed successfully (exit code 0).",
            "example": 287,
            "type": "integer"
          },
          "failed": {
            "description": "Number of scheduled jobs that failed (non-zero exit code).",
            "example": 5,
            "type": "integer"
          },
          "skipped": {
            "description": "Number of scheduled jobs that were skipped. Note: skipped jobs are tracked\nfrom Connect version 2026.03.0 onward.",
            "example": 2,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "KeysetPaging": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PagingLinks"
          },
          {
            "properties": {
              "cursors": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PagingCursors"
                  }
                ],
                "description": "Cursor values for navigating between pages."
              }
            },
            "type": "object"
          }
        ],
        "description": "Keyset-based pagination metadata with cursors and navigation links."
      },
      "KillJobOrder": {
        "description": "The result of registering an order to kill a job.",
        "properties": {
          "guid": {
            "description": "The unique identifier for the registered kill order.",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "type": "string"
          },
          "app_id": {
            "description": "This field is deprecated and has been renamed to `content_id`.",
            "example": 54,
            "format": "int64",
            "type": "integer"
          },
          "app_guid": {
            "description": "This field is deprecated and has been renamed to `content_guid`.",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "type": "string"
          },
          "content_id": {
            "description": "The identifier for this job's parent content.",
            "example": "54",
            "type": "string"
          },
          "content_guid": {
            "description": "The unique identifier for this job's content.",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "type": "string"
          },
          "job_id": {
            "description": "The job's id",
            "example": 54,
            "format": "int64",
            "type": "integer"
          },
          "job_key": {
            "description": "The job's unique key identifier.",
            "example": "tHawGvHZTosJA2Dx",
            "type": "string"
          },
          "result": {
            "description": "A short message describing the end result.",
            "example": "Order to kill job registered",
            "type": "string"
          }
        },
        "type": "object"
      },
      "LockUserInput": {
        "description": "The fields that must be specified when locking or unlocking a user.",
        "properties": {
          "locked": {
            "description": "Whether or not the user should be locked.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "LogEntries": {
        "description": "Log entries for a job.",
        "properties": {
          "entries": {
            "description": "The list of log entries.",
            "items": {
              "$ref": "#/components/schemas/LogEntry"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "LogEntry": {
        "description": "A single log entry.",
        "properties": {
          "source": {
            "description": "The source of the log entry. `stdout` or `stderr`.",
            "example": "stdout",
            "type": "string"
          },
          "timestamp": {
            "description": "The timestamp (RFC3339) indicating when this log entry was recorded.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "data": {
            "description": "The log entry content.",
            "example": "Running on host: connect",
            "type": "string"
          }
        },
        "type": "object"
      },
      "LoggedError": {
        "description": "The primary error of a job.",
        "properties": {
          "code": {
            "description": "The error code.",
            "type": "string"
          },
          "summary": {
            "description": "Summary of the error.",
            "type": "string"
          },
          "help_url": {
            "description": "A help URL with further information about the error.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MetricSample": {
        "description": "A single resource usage sample for a job process.",
        "properties": {
          "timestamp": {
            "description": "The timestamp (RFC3339) when this sample was recorded.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "cpu_fraction": {
            "description": "CPU usage as a fraction (0.0 to 1.0 per core).",
            "example": 0.25,
            "format": "double",
            "type": "number"
          },
          "memory_bytes": {
            "description": "Memory usage in bytes.",
            "example": 104857600,
            "format": "int64",
            "type": "integer"
          },
          "connections": {
            "description": "Number of active connections to the process.\nMay be null if connection counting is not available.",
            "example": 5,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "process_id": {
            "description": "The process ID being monitored.",
            "example": 12345,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "NodeJsInfo": {
        "description": "This defines the top-level object that describes the data returned by the server.\nIt contains information about each installation of Node.js that is known.",
        "properties": {
          "installations": {
            "description": "The array of information about Posit Connect's Node.js installations.",
            "items": {
              "$ref": "#/components/schemas/NodeJsInstallation"
            },
            "type": "array"
          },
          "enabled": {
            "description": "A `true` value is returned only when Node.js support is enabled in\nConnect and Node.js content is permitted by the product license\n(Advanced tier or Evaluation). It will be `false` in all other cases.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "NodeJsInstallation": {
        "description": "This defines the information provided by the server about a single installation of Node.js.",
        "properties": {
          "version": {
            "description": "The version number of this Node.js installation.",
            "example": "22.11.0",
            "type": "string"
          },
          "cluster_name": {
            "description": "The cluster that contains this Node.js installation.\nA value of `Local` indicates that the Node.js installation is local to the\nPosit Connect server.",
            "example": "Kubernetes",
            "type": "string"
          },
          "image_name": {
            "description": "The image that contains this Node.js installation.\nA value of `Local` indicates that the Node.js installation is local to the\nPosit Connect server.",
            "example": "Local",
            "type": "string"
          }
        },
        "type": "object"
      },
      "OAuthCredentials": {
        "properties": {
          "access_token": {
            "description": "The user's token which is accepted by the external resource. If\n`issued_token_type` is `urn:ietf:params:aws:token-type:credentials`, then\nthis field will contain base64-encoded JSON containing temporary AWS\ncredentials.\n\nhttps://datatracker.ietf.org/doc/html/rfc8693#section-2.2.1-2.2",
            "nullable": true,
            "type": "string"
          },
          "issued_token_type": {
            "description": "The type of token stored in the access_token field.\n\nhttps://datatracker.ietf.org/doc/html/rfc8693#section-2.2.1-2.4",
            "example": "urn:ietf:params:oauth:token-type:access_token",
            "nullable": true,
            "type": "string"
          },
          "token_type": {
            "description": "The method by which the access_token should be provided to the external\nresource.\n\nhttps://datatracker.ietf.org/doc/html/rfc8693#section-2.2.1-2.6",
            "example": "Bearer",
            "nullable": true,
            "type": "string"
          },
          "expires_in": {
            "description": "The remaining time before the returned token expires, expressed in seconds.\n\nThis value is only returned if expiry information is available for the\ntoken. For example, if an external OAuth service does not provide expiry\ninformation to Connect, this value can't be returned in the response.\n\nToken expiration is calulated relative to the current UTC time, *not* local\ntime.\n\nhttps://datatracker.ietf.org/doc/html/rfc8693#section-2.2.1-2.8",
            "example": 3600,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OAuthIntegration": {
        "description": "OAuthIntegration represents a custom OAuth integration available in Posit Connect.",
        "properties": {
          "id": {
            "description": "The internal numeric identifier of this OAuth integration.",
            "example": "123",
            "type": "string"
          },
          "guid": {
            "description": "The unique identifier of this OAuth integration which is used in REST API\nrequests.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when this OAuth integration was created.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "updated_time": {
            "description": "The timestamp (RFC3339) indicating when this OAuth integration was last\nupdated.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "description": "A descriptive name to identify each OAuth integration.",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A brief text to describe each OAuth integration.",
            "example": "Integration with external system",
            "nullable": true,
            "type": "string"
          },
          "template": {
            "description": "The template to use to configure this OAuth integration. See List OAuth\ntemplates for more information.",
            "example": "custom",
            "nullable": true,
            "type": "string"
          },
          "auth_type": {
            "description": "The authentication type indicates which OAuth flow is used by this\nintegration. The \"Viewer\" authentication type corresponds to the\nAuthorization Code flow. The \"Service Account\" authentication type\ncorresponds to the Client Credentials flow.",
            "example": "Viewer",
            "nullable": true,
            "type": "string"
          },
          "config": {
            "description": "The OAuth integration configuration based on the template. See List OAuth\ntemplates for more\ninformation on available fields for each template. The configuration\ncombines elements from both\noptions and fields from a given template.\n\nFor example, given the following template section:\n\n```\n...\n\"options\": [{\n...\n\"name\": \"auth_mode\",\n\"type\": \"select\",\n\"values\": [\"Confidential\", \"Public\"]\n},\n...\n}],\n\"fields\": [{\n...\n\"name\": \"client_id\",\n\"label\": \"Client ID\"\n},\n...\n}]\n...\n```\n\nA valid OAuthIntegration `config` would be:\n\n```\n{\n...\n\"config\": {\n\"auth_mode\": \"Public\",\n\"client_id\": \"1b9b9733-43f5-4848-a894-f753f2fbaf41\",\n...\n}\n}\n```",
            "type": "object"
          },
          "permissions": {
            "description": "A list of permission records that define which users or groups have access\nto this OAuth integration.",
            "items": {
              "$ref": "#/components/schemas/OAuthIntegrationPermission"
            },
            "type": "array"
          },
          "environment_variables": {
            "description": "The names of the environment variables provisioned by this OAuth integration.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "OAuthIntegrationAssociationInput": {
        "description": "An OAuth integration GUID to associate with a content item.",
        "properties": {
          "oauth_integration_guid": {
            "description": "The unique identifier of an existing OAuth integration.",
            "example": "f4b3d7f6-7e1d-4f3b-8b9e-3f0f3f3f3f3f",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "OAuthIntegrationAssociationOutput": {
        "description": "Represents an association between a content item and an OAuth integration.",
        "properties": {
          "app_guid": {
            "description": "This field is deprecated and has been renamed to `content_guid`.",
            "example": "f4b3d7f6-7e1d-4f3b-8b9e-3f0f3f3f3f3f",
            "format": "uuid",
            "type": "string"
          },
          "content_guid": {
            "description": "The unique identifier of the content item.",
            "example": "f4b3d7f6-7e1d-4f3b-8b9e-3f0f3f3f3f3f",
            "format": "uuid",
            "type": "string"
          },
          "oauth_integration_guid": {
            "description": "The unique identifier of an existing OAuth integration.",
            "example": "f4b3d7f6-7e1d-4f3b-8b9e-3f0f3f3f3f3f",
            "format": "uuid",
            "type": "string"
          },
          "oauth_integration_name": {
            "description": "A descriptive name that identifies the OAuth integration.",
            "example": "Databricks Integration",
            "nullable": true,
            "type": "string"
          },
          "oauth_integration_description": {
            "description": "A brief text that describes the OAuth integration.",
            "example": "Integration with external system",
            "nullable": true,
            "type": "string"
          },
          "oauth_integration_template": {
            "description": "The template used to configure this OAuth integration.",
            "example": "custom",
            "nullable": true,
            "type": "string"
          },
          "oauth_integration_auth_type": {
            "description": "Indicates which OAuth flow is used by this integration. The\n\"Viewer\" authentication type corresponds to the Authorization Code\nflow. The \"Service Account\" authentication type corresponds to the\nClient Credentials flow.",
            "example": "Viewer",
            "nullable": true,
            "type": "string"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when this association was created.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "OAuthIntegrationInput": {
        "description": "The fields that can be specified when creating an OAuth integration.",
        "properties": {
          "name": {
            "description": "A descriptive name to identify each OAuth integration.",
            "example": "Databricks Integration",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A brief text to describe each OAuth integration.",
            "example": "Integration with external system",
            "nullable": true,
            "type": "string"
          },
          "template": {
            "description": "The template to use to configure this OAuth integration. See List OAuth\ntemplates for more information.",
            "example": "custom",
            "type": "string"
          },
          "config": {
            "description": "The OAuth integration configuration based on the template.\nSee List OAuth templates for more information on available fields for each\ntemplate.\nThe configuration combines elements from both options and fields from a\ngiven template.\n\nFor example, given the following OAuthTemplateOptions:\n\n```\n...\n\"options\": [{\n...\n\"name\": \"auth_mode\",\n\"type\": \"select\",\n\"values\": [\"Confidential\", \"Public\"]\n},\n...\n}],\n\"fields\": [{\n...\n\"name\": \"client_id\",\n\"label\": \"Client ID\"\n},\n...\n}]\n...\n```\n\nA valid OAuthIntegration `config` would be:\n\n```\n{\n...\n\"config\": {\n\"auth_mode\": \"Public\",\n\"client_id\": \"1b9b9733-43f5-4848-a894-f753f2fbaf41\",\n...\n}\n}\n```",
            "type": "object"
          },
          "permissions": {
            "description": "An optional list of permissions to grant access to this OAuth integration.\nEach permission record specifies a user or group that can access the\nintegration.",
            "items": {
              "$ref": "#/components/schemas/OAuthIntegrationPermissionInput"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "OAuthIntegrationPermission": {
        "description": "Represents a permission record associated with an OAuth integration that\ndefines which users or groups can access the integration.",
        "properties": {
          "id": {
            "description": "The internal identifier for this permission entry.",
            "example": "101",
            "type": "string"
          },
          "guid": {
            "description": "The identifier for this permission entry.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "integration_guid": {
            "description": "The identifier of the OAuth integration.",
            "example": "62543474-5716-4423-92d1-b3a22163eb49",
            "format": "uuid",
            "type": "string"
          },
          "user_guid": {
            "description": "The identifier of the user listed in the permission entry.\nThis field will be null if a group is listed.",
            "example": "d73f7343-02e8-4c52-9208-598e28f8002e",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "group_guid": {
            "description": "The identifier of the group listed in the permission entry.\nThis field will be null if a user is listed.",
            "example": "a46be0c8-ef75-4dce-b902-d8e56a6b8509",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "OAuthIntegrationPermissionInput": {
        "description": "The fields that can be specified when adding permissions to an OAuth integration.\nNote that only one of user_guid or group_guid can be specified in a single request.",
        "properties": {
          "user_guid": {
            "description": "The identifier of the user. Do not specify this field if you\nare adding a group.",
            "example": "89a3c946-d73c-4781-8463-dd3cccff3fef",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "group_guid": {
            "description": "The identifier of the group. Do not specify this field if you\nare adding a user.",
            "example": "998f3356-96f0-48a2-9655-94334615fa5b",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "OAuthIntegrationUpdate": {
        "description": "The fields that can be specified when updating an OAuth integration.",
        "properties": {
          "name": {
            "description": "A descriptive name to identify each OAuth integration.",
            "example": "databricks",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A brief text to describe each OAuth integration.",
            "example": "Integration with external system",
            "nullable": true,
            "type": "string"
          },
          "config": {
            "description": "The OAuth integration configuration based on the template.\nSee List OAuth templates for more information on available fields for each\ntemplate.\nThe configuration combines elements from both options and fields from a\ngiven template.\n\nFor example, given the following OAuthTemplateOptions:\n\n```\n...\n\"options\": [{\n...\n\"name\": \"auth_mode\",\n\"type\": \"select\",\n\"values\": [\"Confidential\", \"Public\"]\n},\n...\n}],\n\"fields\": [{\n...\n\"name\": \"client_id\",\n\"label\": \"Client ID\"\n},\n...\n}]\n...\n```\n\nA valid OAuthIntegration `config` would be:\n\n```\n{\n...\n\"config\": {\n\"auth_mode\": \"Public\",\n\"client_id\": \"1b9b9733-43f5-4848-a894-f753f2fbaf41\",\n...\n}\n}\n```",
            "type": "object"
          },
          "permissions": {
            "description": "An optional list of permissions to grant access to this OAuth integration.\nEach permission record specifies a user or group that can access the\nintegration.\nWhen provided, this replaces the existing permissions for the integration.",
            "items": {
              "$ref": "#/components/schemas/OAuthIntegrationPermissionInput"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "OAuthSession": {
        "description": "OAuthSession represents an OAuth session for a given user associated to an OAuth integration.",
        "properties": {
          "id": {
            "description": "The internal numeric identifier of this OAuth session.",
            "example": "123",
            "type": "string"
          },
          "guid": {
            "description": "The unique identifier of this OAuth session which is used in REST API\nrequests.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "user_guid": {
            "description": "The unique identifier of the user that is associated with this OAuth\nsession.",
            "example": "21caced7-979e-4e83-ad11-01837528d9d9",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "oauth_integration_guid": {
            "description": "The unique identifier of the OAuth integration that is associated with this\nOAuth session.",
            "example": "dd4a5e2-4714-401a-9404-4ca8eddcef2d",
            "format": "uuid",
            "type": "string"
          },
          "has_refresh_token": {
            "description": "Indicates whether this OAuth session has a refresh token.",
            "type": "boolean"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when this OAuth session was created.",
            "example": "2020-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "updated_time": {
            "description": "The timestamp (RFC3339) indicating when this OAuth session was last updated.",
            "example": "2020-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "OAuthTemplate": {
        "description": "OAuthTemplate holds the set of available fields that can be configured when creating\nor updating an OAuth integration in Posit Connect.",
        "properties": {
          "id": {
            "description": "The primary identifier for this OAuth template.",
            "example": "custom",
            "type": "string"
          },
          "name": {
            "description": "A human readable name for this OAuth template.",
            "example": "Custom Integration",
            "type": "string"
          },
          "description": {
            "description": "A human readable description for this OAuth template.",
            "example": "A Custom integration is used to create OAuth integrations of any type",
            "type": "string"
          },
          "sections": {
            "description": "The sections of the template are used to group fields and options when\nbuilding the UI.",
            "items": {
              "$ref": "#/components/schemas/OAuthTemplateSection"
            },
            "type": "array"
          },
          "options": {
            "description": "The options of the template are used to define the set of boolean and\ndrop-down inputs that the user configures when creating an OAuth\nintegration.",
            "items": {
              "$ref": "#/components/schemas/OAuthTemplateOption"
            },
            "type": "array"
          },
          "fields": {
            "description": "The fields of the template are used to define the set of text inputs that\nthe user configures when creating an OAuth integration.",
            "items": {
              "$ref": "#/components/schemas/OAuthTemplateField"
            },
            "type": "array"
          },
          "environment_variables": {
            "description": "The names of environment variables associated with this OAuth template.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "OAuthTemplateField": {
        "description": "OAuthTemplateField defines a configuration field for the template.",
        "properties": {
          "name": {
            "description": "The primary identifier of the field. The name is used as the map kay in the\n`config` property of the OAuth integration payload.\nThe type in the `config` payload must be a string.\n\nFor example, given the following OAuthTemplateField:\n\n```\n{\n...\n\"name\": \"client_id\"\n}\n```\n\nA valid OAuthIntegration `config` would be:\n\n```\n{\n...\n\"config\": {\n\"client_id\": \"my-oauth-app-client-id\"\n}\n}\n```",
            "type": "string"
          },
          "description": {
            "description": "A description of the template field.",
            "type": "string"
          },
          "section": {
            "description": "A reference to the template section that should contain this field.",
            "format": "int32",
            "type": "integer"
          },
          "order": {
            "description": "The order of this field within the template section relative to other\noptions and fields within the section.",
            "format": "int32",
            "type": "integer"
          },
          "label": {
            "description": "The label to use for this field.",
            "type": "string"
          },
          "visibility_expression": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OAuthTemplateVisibilityExpression"
              }
            ],
            "description": "A Boolean expression tree that indicates if this field is visible.",
            "nullable": true
          },
          "default": {
            "description": "The default value of this template field.",
            "type": "string"
          },
          "validation": {
            "description": "A regular expression used to determine whether the input is valid.",
            "type": "string"
          },
          "validation_description": {
            "description": "A description of the value constraints for a given field.",
            "type": "string"
          },
          "secret": {
            "description": "Indicates whether the field value is considered secret and should be hidden.",
            "type": "boolean"
          },
          "multiline": {
            "description": "Indicates whether the field accepts multiline text input.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "OAuthTemplateOption": {
        "description": "OAuthTemplateOption defines a configuration option for the template.",
        "properties": {
          "name": {
            "description": "The primary identifier of the template option. The name is used as the map\nkey in the `config` property of the OAuth integration payload.\nThe type in the `config` payload must correspond to the `type` property of\nthe template option, either string or boolean.\n\nFor example, given the following OAuthTemplateOptions:\n\n```\n[{\n...\n\"name\": \"auth_mode\",\n\"type\": \"select\",\n\"values\": [\"Confidential\", \"Public\"]\n},\n{\n...\n\"name\": \"bool_option\",\n\"type\": \"bool\",\n}]\n```\n\nA valid OAuthIntegration `config` would be:\n\n```\n{\n...\n\"config\": {\n\"auth_mode\": \"Public\",\n\"bool_option\": true\n}\n}\n```",
            "type": "string"
          },
          "description": {
            "description": "A description of the template option.",
            "type": "string"
          },
          "section": {
            "description": "A reference to the template section that should contain this option.",
            "format": "int32",
            "type": "integer"
          },
          "order": {
            "description": "The order of this option within the template section relative to other\noptions and fields within the section.",
            "format": "int32",
            "type": "integer"
          },
          "label": {
            "description": "The label to use for this option.",
            "type": "string"
          },
          "visibility_expression": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OAuthTemplateVisibilityExpression"
              }
            ],
            "description": "A Boolean expression tree that indicates if this option is visible.",
            "nullable": true
          },
          "type": {
            "description": "The type of this option. A bool indicates that this option is a true/false\ninput. A select indicates that this option is a dropdown input.",
            "type": "string"
          },
          "values": {
            "description": "A list of possible values when type = select.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "default": {
            "description": "The default value of this option. The default value is either a boolean when\ntype = bool, or a string when type = select.\nWhen type = select, the default value must also be contained in the values\nlist.",
            "example": "Public",
            "type": "object"
          }
        },
        "type": "object"
      },
      "OAuthTemplateSection": {
        "description": "OAuthTemplateSection defines a section within an OAuth template used to group options and fields when building the UI.",
        "properties": {
          "id": {
            "description": "The primary identifier of the template section.",
            "format": "int32",
            "type": "integer"
          },
          "order": {
            "description": "The order of this section relative to other sections within the OAuth\ntemplate.",
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "description": "The name of this section.",
            "type": "string"
          },
          "description": {
            "description": "The description of this section.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "OAuthTemplateVisibilityExpression": {
        "description": "A Boolean expression tree that indicates if a specific option or field is allowed by the integration.",
        "properties": {
          "name": {
            "description": "The name of a config field being compared. Name is only set on leaf nodes in\nthe expression tree.",
            "example": "auth_mode",
            "type": "string"
          },
          "value": {
            "description": "The value which a config field is compared against. Value is only set on\nleaf nodes in the expression tree.",
            "example": "Public",
            "type": "object"
          },
          "operator": {
            "description": "A boolean operator which executes against the provided list of operands.\nOperator is only set on non-leaf nodes in the expression tree.",
            "example": "and",
            "type": "string"
          },
          "operands": {
            "description": "A list of recursively-defined expression tree nodes which are executed on by\na boolean operator. Operands is only set on non-leaf nodes in the expression\ntree.",
            "items": {
              "$ref": "#/components/schemas/OAuthTemplateVisibilityExpression"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "OffsetPaging": {
        "description": "Offset-based pagination metadata.",
        "properties": {
          "current_page": {
            "description": "The current page of results",
            "example": 1,
            "format": "int32",
            "type": "integer"
          },
          "total": {
            "description": "The number of items that match the given filters",
            "example": 1,
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Package": {
        "description": "A package dependency record.",
        "properties": {
          "language": {
            "description": "Language ecosystem the package belongs to",
            "type": "string"
          },
          "language_version": {
            "description": "Version of R or Python used by the content",
            "example": "3.12.4",
            "type": "string"
          },
          "name": {
            "description": "Package name",
            "example": "shiny",
            "type": "string"
          },
          "version": {
            "description": "Package version",
            "example": "1.0.3",
            "type": "string"
          },
          "hash": {
            "description": "Package description hash for R packages",
            "example": "e4ac73dd20b2f6420742aac66e5d3e78",
            "nullable": true,
            "type": "string"
          },
          "bundle_id": {
            "description": "Identifier for the bundle that depends on this package",
            "example": "449",
            "type": "string"
          },
          "app_id": {
            "description": "This field is deprecated and has been renamed to `content_id`.",
            "example": "145",
            "type": "string"
          },
          "app_guid": {
            "description": "This field is deprecated and has been renamed to `content_guid`.",
            "example": "f4b3d7f6-7e1d-4f3b-8b9e-3f0f3f3f3f3f",
            "format": "uuid",
            "type": "string"
          },
          "content_id": {
            "description": "Numeric identifier for the content that depends on this package",
            "example": "145",
            "type": "string"
          },
          "content_guid": {
            "description": "The unique identifier of the content item that depends on this package",
            "example": "f4b3d7f6-7e1d-4f3b-8b9e-3f0f3f3f3f3f",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PackagesResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OffsetPaging"
          },
          {
            "properties": {
              "results": {
                "description": "The list of packages",
                "items": {
                  "$ref": "#/components/schemas/Package"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ],
        "description": "An object containing a paginated list of packages."
      },
      "PagingCursors": {
        "description": "Cursor values for keyset pagination.",
        "properties": {
          "previous": {
            "description": "A cursor ID that can be used with the previous query parameter to get the previous page of results.",
            "example": "23948901087",
            "nullable": true,
            "type": "string"
          },
          "next": {
            "description": "A cursor ID that can be used with the next query parameter to get the next page of results.",
            "example": "23948901087",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PagingLinks": {
        "description": "Navigation links for keyset pagination.",
        "properties": {
          "first": {
            "description": "A full URL of the first page of results. Null if the current response is the first page.",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "description": "A full URL of the previous page of results. Null if the current response is the first page.",
            "nullable": true,
            "type": "string"
          },
          "next": {
            "description": "A full URL of the next page of results. Null if the current response is the last page.",
            "nullable": true,
            "type": "string"
          },
          "last": {
            "description": "A full URL of the last page of results. Null if the current response is the last page.",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Permission": {
        "description": "Defines the permission level that a user or group has been granted to a content item.",
        "properties": {
          "id": {
            "description": "The identifier for this permission entry.",
            "example": "101",
            "type": "string"
          },
          "content_guid": {
            "description": "The identifier of the content item.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "principal_guid": {
            "description": "The identifier of the principal (user or group) listed in the ACL.",
            "example": "62543474-5716-4423-92d1-b3a22163eb49",
            "format": "uuid",
            "type": "string"
          },
          "principal_type": {
            "description": "The type of principal.",
            "example": "user",
            "type": "string"
          },
          "role": {
            "description": "The level of access that the principal has been\ngiven to this content item.",
            "example": "viewer",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PermissionInput": {
        "description": "The fields that can be specified when creating or updating a content permission item.",
        "properties": {
          "principal_guid": {
            "description": "The identifier of the principal (user or group).",
            "example": "62543474-5716-4423-92d1-b3a22163eb49",
            "format": "uuid",
            "type": "string"
          },
          "principal_type": {
            "description": "The type of principal.",
            "example": "user",
            "type": "string"
          },
          "role": {
            "description": "The level of access that the principal has been\ngiven to this content item.",
            "example": "viewer",
            "type": "string"
          },
          "send_email": {
            "description": "Whether to send an email notification to the\nprincipal being added. Only applies when creating\na new permission (`POST`); ignored on update\n(`PUT`). Defaults to `false` when not provided.",
            "example": false,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "PublicSettings": {
        "description": "Minimal server settings required for rendering the login page and\nrelated unauthenticated pages (e.g., password reset, registration).\nThis is a public endpoint that provides only the information needed\nfor unauthenticated users to authenticate.",
        "properties": {
          "authentication": {
            "description": "Authentication provider configuration.",
            "type": "object"
          },
          "self_registration": {
            "description": "Whether users can self-register for an account. This is only true\nwhen password authentication is enabled and self-registration is\nconfigured, or when no users exist yet (allowing the first user\nto register).",
            "example": false,
            "type": "boolean"
          },
          "system_display_name": {
            "description": "The display name for the server, used for branding in the UI.",
            "example": "Posit Connect",
            "type": "string"
          },
          "public_warning": {
            "description": "Optional warning message to display on public pages like the\nwelcome and login pages. Can contain HTML.",
            "example": "",
            "type": "string"
          },
          "customized_landing": {
            "description": "Whether a custom landing page is configured to replace the\ndefault welcome page.",
            "example": false,
            "type": "boolean"
          },
          "mail_configured": {
            "description": "Whether email is configured on the server. This determines whether\nfeatures like password reset via email are available.",
            "example": true,
            "type": "boolean"
          },
          "prohibited_usernames": {
            "description": "List of usernames that are not allowed for new user registration.\nThese are reserved system names.",
            "example": [
              "connect",
              "apps",
              "users",
              "groups"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "username_validator": {
            "description": "The username validation mode. Either \"default\" (strict validation\nwith length and character requirements) or \"permissive\" (minimal\nvalidation, typically used with external authentication providers).",
            "example": "default",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PyInstallation": {
        "description": "This defines the information provided by the server about a single installation of Python.",
        "properties": {
          "version": {
            "description": "The version number of this Python installation.",
            "example": "3.10.6",
            "type": "string"
          },
          "cluster_name": {
            "description": "The cluster that contains this Python installation.\nA value of `Local` indicates that the Python installation is local to the\nPosit Connect server.",
            "example": "Kubernetes",
            "type": "string"
          },
          "image_name": {
            "description": "The image that contains this Python installation.\nA value of `Local` indicates that the Python installation is local to the\nPosit Connect server.",
            "example": "rstudio/content-base:r4.1.3-py3.10.11-jammy",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PythonInfo": {
        "description": "This defines the top-level object that describes the data returned by the server.\nIt contains information about each installation of Python that is known.",
        "properties": {
          "installations": {
            "description": "The array of information about Posit Connect's Python\ninstallations.",
            "items": {
              "$ref": "#/components/schemas/PyInstallation"
            },
            "type": "array"
          },
          "api_enabled": {
            "description": "A `true` value is returned only when Python support is enabled in\nConnect and API hosting is permitted by the product license. It will\nbe `false` in all other cases.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "QuartoInstallation": {
        "description": "This defines the information provided by the server about a single installation of Quarto.",
        "properties": {
          "version": {
            "description": "The version number of this Quarto installation.",
            "example": "1.0.27",
            "type": "string"
          },
          "cluster_name": {
            "description": "The cluster that contains this Quarto installation.\nA value of `Local` indicates that the Quarto installation is local to the\nPosit Connect server.",
            "example": "Kubernetes",
            "type": "string"
          },
          "image_name": {
            "description": "The image that contains this Quarto installation.\nA value of `Local` indicates that the Quarto installation is local to the\nPosit Connect server.",
            "example": "rstudio/content-base:r4.1.3-py3.10.11-jammy",
            "type": "string"
          }
        },
        "type": "object"
      },
      "QuartoInstallations": {
        "description": "This defines the top-level object that describes the data returned by the server.\nIt contains information about each installation of Quarto that is known.",
        "properties": {
          "installations": {
            "description": "The array of information about Posit Connect's Quarto\ninstallations.",
            "items": {
              "$ref": "#/components/schemas/QuartoInstallation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "QueueItem": {
        "description": "An item in the job queue.",
        "properties": {
          "id": {
            "description": "The ID of the queue object",
            "example": "135",
            "type": "string"
          },
          "name": {
            "description": "Name of queue",
            "example": "job-finalizer",
            "type": "string"
          },
          "job_type": {
            "description": "The type of job in the queue",
            "example": "ScheduledRender",
            "type": "string"
          },
          "created_time": {
            "description": "The time that the item was placed in the queue",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "updated_time": {
            "description": "The time that the enqueued item was updated",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "started_time": {
            "description": "The time that work started on the queued item",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "QueueResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OffsetPaging"
          },
          {
            "properties": {
              "results": {
                "description": "The list of items in the current page",
                "items": {
                  "$ref": "#/components/schemas/QueueItem"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ],
        "description": "An object containing a paginated list of queue items."
      },
      "RInstallation": {
        "description": "This defines the information provided by the server about a single installation of R.",
        "properties": {
          "version": {
            "description": "The version number of this R installation.",
            "example": "3.4.4",
            "type": "string"
          },
          "cluster_name": {
            "description": "The cluster that contains this R installation.\nA value of `Local` indicates that the R installation is local to the Posit\nConnect server.",
            "example": "Kubernetes",
            "type": "string"
          },
          "image_name": {
            "description": "The image that contains this R installation.\nA value of `Local` indicates that the R installation is local to the Posit\nConnect server.",
            "example": "rstudio/content-base:r4.1.3-py3.10.11-jammy",
            "type": "string"
          }
        },
        "type": "object"
      },
      "RInstallations": {
        "description": "This defines the top-level object that describes the data returned by the server.\nIt contains information about each installation of R that is known.",
        "properties": {
          "installations": {
            "description": "The array of information about Posit Connect's R\ninstallations.",
            "items": {
              "$ref": "#/components/schemas/RInstallation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RRuleSet": {
        "description": "RFC 5545 recurrence rule components for a schedule.",
        "properties": {
          "dtstart": {
            "description": "The DTSTART component specifying when the schedule begins,\nincluding timezone information.",
            "example": "DTSTART;TZID=America/New_York:20240115T090000",
            "type": "string"
          },
          "rrules": {
            "description": "An array of RRULE components defining the recurrence pattern.",
            "example": [
              "RRULE:FREQ=DAILY;INTERVAL=2"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "until": {
            "description": "The UNTIL component specifying when the schedule ends, if applicable.",
            "example": "UNTIL=20240215T090000Z",
            "type": "string"
          }
        },
        "type": "object"
      },
      "RemoteSearchResults": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OffsetPaging"
          },
          {
            "properties": {
              "results": {
                "description": "The users list",
                "items": {
                  "$ref": "#/components/schemas/UserWithTicket"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ],
        "description": "The remote user search results with paging information."
      },
      "RuntimeCache": {
        "description": "A cache of installed packages for a given language, version, and execution environment.",
        "properties": {
          "language": {
            "description": "The runtime language of the cache.",
            "example": "Python",
            "type": "string"
          },
          "version": {
            "description": "The language version of the cache.",
            "example": "3.8.12",
            "type": "string"
          },
          "image_name": {
            "description": "The name of the cache's execution environment.",
            "example": "Local",
            "type": "string"
          }
        },
        "type": "object"
      },
      "RuntimeCaches": {
        "description": "An object containing an array of runtime caches.",
        "properties": {
          "caches": {
            "description": "The list of runtime caches.",
            "items": {
              "$ref": "#/components/schemas/RuntimeCache"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Schedule": {
        "description": "Base schedule information for a content item.",
        "properties": {
          "type": {
            "description": "The schedule type.",
            "example": "rrule",
            "type": "string"
          },
          "schedule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RRuleSet"
              }
            ],
            "description": "The recurrence rule in RFC5545 format."
          },
          "next_run": {
            "description": "The next scheduled run time. Null if no future runs are scheduled.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "email": {
            "description": "Whether email notifications are enabled for this schedule.",
            "example": false,
            "type": "boolean"
          },
          "timezone": {
            "description": "The timezone for this schedule.",
            "example": "America/New_York",
            "type": "string"
          },
          "start_time": {
            "description": "The start time of the schedule window.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "end_time": {
            "description": "The end time of the schedule window. Null if the schedule runs indefinitely.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_run": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScheduleLastRun"
              }
            ],
            "description": "Information about the last scheduled run.",
            "nullable": true
          }
        },
        "type": "object"
      },
      "ScheduleHistoryEntry": {
        "properties": {
          "change_type": {
            "description": "The type of change that was made to the schedule.",
            "example": "updated",
            "type": "string"
          },
          "change_time": {
            "description": "The timestamp (RFC3339) when this change was made.",
            "example": "2025-01-15T14:30:00Z",
            "format": "date-time",
            "type": "string"
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ],
            "description": "The user who made this change, or null if the user has been deleted.",
            "nullable": true
          },
          "new_schedule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HistorySchedule"
              }
            ],
            "description": "The schedule state after this change, or null if the schedule\nwas deleted.",
            "nullable": true
          }
        },
        "type": "object"
      },
      "ScheduleHistoryResponse": {
        "properties": {
          "results": {
            "description": "An array of schedule history results, one per variant.",
            "items": {
              "$ref": "#/components/schemas/VariantScheduleHistory"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ScheduleHistoryUser": {
        "properties": {
          "guid": {
            "description": "The unique identifier of the user.",
            "example": "abc12345-6789-0abc-def0-123456789abc",
            "format": "uuid",
            "type": "string"
          },
          "username": {
            "description": "The user's username.",
            "example": "jondoe",
            "type": "string"
          },
          "first_name": {
            "description": "The user's first name.",
            "example": "Jon",
            "type": "string"
          },
          "last_name": {
            "description": "The user's last name.",
            "example": "Doe",
            "type": "string"
          },
          "email": {
            "description": "The user's email address.",
            "example": "jondoe@example.com",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ScheduleLastRun": {
        "description": "Information about the last scheduled run.",
        "properties": {
          "job_key": {
            "description": "The unique key of the job.",
            "example": "abc123xyz",
            "type": "string"
          },
          "status": {
            "description": "The status of the last run.",
            "example": "success",
            "type": "string"
          },
          "scheduled_time": {
            "description": "The scheduled time of the run.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "queued_time": {
            "description": "The time the run was queued.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "start_time": {
            "description": "The time the run started.",
            "format": "date-time",
            "type": "string"
          },
          "end_time": {
            "description": "The time the run ended. Null if still running.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "run_duration_ms": {
            "description": "The duration of the run in milliseconds. Null if still running.",
            "example": 5000,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "exit_code": {
            "description": "The exit code of the job. Null if still running.",
            "example": 0,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ScheduleVariant": {
        "description": "Variant information embedded in a schedule.",
        "properties": {
          "key": {
            "description": "The variant key.",
            "example": "default",
            "type": "string"
          },
          "name": {
            "description": "The variant name.",
            "example": "Default Variant",
            "type": "string"
          },
          "is_default": {
            "description": "Whether this is the default variant.",
            "example": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ServiceAccounts": {
        "description": "Kubernetes service accounts discovered when Connect started.",
        "properties": {
          "enabled": {
            "description": "Whether or not Kubernetes service accounts can be specified individually by\ncontent item.\nReflects the configuration set for\n[`Launcher.KubernetesContentServiceAccountSelection`](../admin/appendix/configuration/index.md#Launcher.KubernetesContentServiceAccountSelection).",
            "type": "boolean"
          },
          "default": {
            "description": "The default configured service account to execute content.\nUnless otherwise configured via [`Launcher.KubernetesDefaultServiceAccount`](../admin/appendix/configuration/index.md#Launcher.KubernetesDefaultServiceAccount)\nin your Connect configuration,\nthis is the Kubernetes namespace default service account, \"default.\"",
            "nullable": true,
            "type": "string"
          },
          "accounts": {
            "description": "Array of strings with the service account names.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ServiceToken": {
        "description": "Object containing service token details.",
        "properties": {
          "guid": {
            "description": "The unique identifier for this service token.",
            "example": "f2aba5e9-1c6a-4f63-91c7-ec6ea5a2f8e7",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "The name for this service token. The name often describes the purpose\nof the token.",
            "example": "NSS Integration",
            "type": "string"
          },
          "key": {
            "description": "The secret key for this service token. The full key appears only\nwhen you create the token. Subsequent reads do not include the key.",
            "example": "abcdefghijklmnopqrstuvwxyz123456",
            "type": "string"
          },
          "scopes": {
            "description": "The scopes granted to this service token.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "created_time": {
            "description": "Timestamp (in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)\nformat) indicating when you created the token.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "active_time": {
            "description": "Timestamp (in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)\nformat) indicating approximately when the token last authenticated.\nThis value is updated when the token is used, but no more than once\nevery 15 minutes.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ServiceTokenCreateInput": {
        "description": "The input object for creating a service token.",
        "properties": {
          "name": {
            "description": "The name for this service token. Use the name to describe the purpose\nof the token. Names do not need to be unique.",
            "example": "NSS Integration",
            "type": "string"
          },
          "scopes": {
            "description": "The scopes to grant to this service token. At least one scope is\nrequired. Use the `/v1/system/service-tokens/scopes` endpoint to get\navailable scopes.",
            "example": [
              "nameservice:read"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ServiceTokenScope": {
        "description": "A scope you can assign to a service token.",
        "properties": {
          "name": {
            "description": "The scope identifier.",
            "example": "nameservice:read",
            "type": "string"
          },
          "description": {
            "description": "A human-readable description of what this scope grants.",
            "example": "Access NSS user and group data",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ServiceTokenScopes": {
        "description": "An object containing the available scopes for service tokens.",
        "properties": {
          "scopes": {
            "description": "The available scopes.",
            "items": {
              "$ref": "#/components/schemas/ServiceTokenScope"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ShinyAppUsageEntry": {
        "description": "A Shiny application usage record.",
        "properties": {
          "content_guid": {
            "description": "The GUID of the Shiny application this usage record pertains to.",
            "example": "bd1d2285-6c80-49af-8a83-a200effe3cb3",
            "format": "uuid",
            "type": "string"
          },
          "user_guid": {
            "description": "The GUID of the user that visited the application. May be null if the user cannot be determined.",
            "example": "08e3a41d-1f8e-47f2-8855-f05ea3b0d4b2",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "started": {
            "description": "The timestamp (RFC3339) when the user opened the application.",
            "example": "2018-09-15T18:00:00-05:00",
            "format": "date-time",
            "type": "string"
          },
          "ended": {
            "description": "The timestamp (RFC3339) when the user left the application.",
            "example": "2018-09-15T18:01:00-05:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "data_version": {
            "description": "The data version the record was recorded with.",
            "example": 1,
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ShinyAppUsageLogs": {
        "description": "Shiny application usage results with keyset pagination.",
        "properties": {
          "results": {
            "description": "The Shiny application usage logs.",
            "items": {
              "$ref": "#/components/schemas/ShinyAppUsageEntry"
            },
            "type": "array"
          },
          "paging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/KeysetPaging"
              }
            ],
            "description": "Paging information for navigating result sets."
          }
        },
        "type": "object"
      },
      "SystemCheckRun": {
        "description": "The fields returned when listing system check runs or getting the status of a run.",
        "properties": {
          "id": {
            "description": "The unique identifier for this test run.",
            "example": "2",
            "type": "string"
          },
          "start_time": {
            "description": "The timestamp (RFC3339) of when this run was started.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "hostname": {
            "description": "The hostname where this test was run.",
            "example": "connect.example.com",
            "type": "string"
          },
          "status": {
            "description": "The status of this test run, one of: requested, running, done, canceled.",
            "enum": [
              "requested",
              "running",
              "done",
              "canceled"
            ],
            "example": "done",
            "type": "string"
          },
          "passed": {
            "description": "The number of tests in this run that have passed.",
            "example": 29,
            "format": "int32",
            "type": "integer"
          },
          "failed": {
            "description": "The number of tests in this run that have failed.",
            "example": 1,
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "SystemCheckRunResult": {
        "description": "The fields describing a single system check result.",
        "properties": {
          "group": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TestInfo"
              }
            ],
            "description": "Information about the test group that was run."
          },
          "test": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TestInfo"
              }
            ],
            "description": "Information about the test that was run."
          },
          "passed": {
            "description": "Boolean indicating whether the test passed.",
            "example": true,
            "type": "boolean"
          },
          "output": {
            "description": "The textual output produced while running the test.",
            "type": "string"
          },
          "error": {
            "description": "The error that occurred while running this test, or empty string if no error occurred.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SystemCheckRunResults": {
        "description": "Fields containing results of a specific system check run.",
        "properties": {
          "run": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SystemCheckRun"
              }
            ],
            "description": "The run that was requested."
          },
          "results": {
            "description": "The results of the system check run.",
            "items": {
              "$ref": "#/components/schemas/SystemCheckRunResult"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Tag": {
        "description": "A tag used to organize content within Connect.",
        "properties": {
          "id": {
            "description": "The identifier for the tag.",
            "example": "101",
            "type": "string"
          },
          "name": {
            "description": "The name of the tag.",
            "example": "financial-statements",
            "type": "string"
          },
          "parent_id": {
            "description": "The identifier for the parent tag. If there is no parent_id,\nthe tag is a top-level tag.",
            "example": "102",
            "nullable": true,
            "type": "string"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when the tag was created.",
            "example": "2006-01-02T15:04:05Z",
            "format": "date-time",
            "type": "string"
          },
          "updated_time": {
            "description": "The timestamp (RFC3339) indicating when the tag was updated.",
            "example": "2006-01-02T15:04:05Z",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TagInput": {
        "description": "The fields that can be specified when creating or updating a tag.",
        "properties": {
          "name": {
            "description": "The name of the tag. Tags under the same parent must have a unique\nname and cannot be longer than 255 characters.",
            "example": "financial-statements",
            "nullable": true,
            "type": "string"
          },
          "parent_id": {
            "description": "The identifier for the parent tag. If there is no parent_id,\nthe tag will be a top-level tag.",
            "example": "101",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Task": {
        "description": "The task tracks the output and status of some operation being performed\nby Posit Connect. It is most commonly used to contain details about\nthe progress of a deployment operation.",
        "properties": {
          "id": {
            "description": "The identifier for this task.",
            "example": "jXhOhdm5OOSkGhJw",
            "type": "string"
          },
          "output": {
            "description": "An array containing lines of output produced by the task. The\ninitial line of output is dictated by the `first` input parameter.\nThe offset of the last output line is indicated by the `last`\nresponse field.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "result": {
            "description": "A value representing the result of the operation, if any.\nFor deployment tasks, this value is `null`.",
            "example": null,
            "nullable": true,
            "type": "object"
          },
          "finished": {
            "description": "Indicates that a task has completed.",
            "example": true,
            "type": "boolean"
          },
          "code": {
            "description": "Numeric indication as to the cause of an error. Non-zero when an\nerror has occurred.",
            "example": 1,
            "format": "int32",
            "type": "integer"
          },
          "error": {
            "description": "Description of the error. An empty string when no error has\noccurred.",
            "example": "Unable to render: Rendering exited abnormally: exit status 1",
            "type": "string"
          },
          "last": {
            "description": "The total number of output lines produced so far. Use as the value\nto `first` in the next request to only fetch output lines beyond\nwhat you have already received.",
            "example": 2,
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "TensorFlowInstallation": {
        "description": "This defines the information provided by the server about a single installation of TensorFlow.",
        "properties": {
          "version": {
            "description": "The version number of this TensorFlow installation.",
            "example": "1.0.27",
            "type": "string"
          },
          "cluster_name": {
            "description": "The cluster that contains this TensorFlow installation.\nA value of `Local` indicates that the TensorFlow installation is local to\nthe Posit Connect server.",
            "example": "Kubernetes",
            "type": "string"
          },
          "image_name": {
            "description": "The image that contains this TensorFlow installation.\nA value of `Local` indicates that the TensorFlow installation is local to\nthe Posit Connect server.",
            "example": "rstudio/content-base:r4.1.3-py3.10.11-jammy",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TensorFlowInstallations": {
        "description": "This defines the top-level object that describes the data returned by the server.\nIt contains information about each installation of TensorFlow that is known.",
        "properties": {
          "installations": {
            "description": "The array of information about Posit Connect's TensorFlow\ninstallations.",
            "items": {
              "$ref": "#/components/schemas/TensorFlowInstallation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "TestInfo": {
        "description": "Fields describing a specific test or test group.",
        "properties": {
          "name": {
            "description": "The name of this test.",
            "example": "environment",
            "type": "string"
          },
          "args": {
            "description": "The arguments that will be passed to this test.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TimeZoneEntry": {
        "description": "One time zone entry with name and offset.",
        "properties": {
          "timezone": {
            "description": "The time zone name.",
            "example": "America/New_York",
            "type": "string"
          },
          "offset": {
            "description": "Time zone offset.",
            "example": "-04:00",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdateContentInput": {
        "description": "The content fields that can be specified when updating a content item.",
        "properties": {
          "name": {
            "description": "A simple identifier. Allows alpha-numeric\ncharacters, periods (`\".\"`), hyphens (`\"-\"`), and underscores (`\"_\"`).",
            "example": "quarterly-analysis",
            "type": "string"
          },
          "title": {
            "description": "The title of this content.",
            "example": "Quarterly Analysis of Team Velocity",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A rich description of this content.",
            "example": "This report calculates per-team statistics ...",
            "type": "string"
          },
          "owner_guid": {
            "description": "The unique identifier of the user who owns this content item.\nCan only be changed by an administrator.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "access_type": {
            "description": "Access type describes how this content manages its viewers. The\nvalue `all` is the most permissive; any visitor to Posit Connect\nwill be able to view this content. The value `logged_in` indicates\nthat all Posit Connect accounts may view the content. The `acl`\nvalue lets specifically enumerated users and groups view the\ncontent. Users configured as collaborators may always view content.\n\nAccess types may be restricted by the Connect configuration or the\nproduct license.",
            "enum": [
              "all",
              "logged_in",
              "acl"
            ],
            "example": "acl",
            "type": "string"
          },
          "locked": {
            "description": "Whether or not the content is locked.",
            "example": false,
            "nullable": true,
            "type": "boolean"
          },
          "locked_message": {
            "description": "A custom message that is displayed by the content item when locked.\nIt is possible to format this message using Markdown.",
            "example": "# This piece of content is locked",
            "nullable": true,
            "type": "string"
          },
          "connection_timeout": {
            "description": "Maximum number of seconds allowed without data sent or received\nacross a client connection. A value of `0` means connections will\nnever time-out (not recommended). When `null`, the default\n[`Scheduler.ConnectionTimeout`](../admin/appendix/configuration/index.md#Scheduler.ConnectionTimeout) is used. Applies only to content types\nthat are executed on demand.",
            "example": 3600,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "read_timeout": {
            "description": "Maximum number of seconds allowed without data received from a\nclient connection. A value of `0` means a lack of client (browser)\ninteraction never causes the connection to close. When `null`, the\ndefault [`Scheduler.ReadTimeout`](../admin/appendix/configuration/index.md#Scheduler.ReadTimeout) is used. Applies only to content\ntypes that are executed on demand.",
            "example": 3600,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "init_timeout": {
            "description": "The maximum number of seconds allowed for an interactive application\nto start. Posit Connect must be able to connect to a newly\nlaunched application before this threshold has\nelapsed. When `null`, the default [`Scheduler.InitTimeout`](../admin/appendix/configuration/index.md#Scheduler.InitTimeout) is used.\nApplies only to content types that are executed on demand.",
            "example": 60,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "idle_timeout": {
            "description": "The maximum number of seconds a worker process for an interactive\napplication to remain alive after it goes idle (no active\nconnections). When `null`, the default [`Scheduler.IdleTimeout`](../admin/appendix/configuration/index.md#Scheduler.IdleTimeout) is\nused. Applies only to content types that are executed on demand.",
            "example": 5,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "max_processes": {
            "description": "Specifies the total number of concurrent processes allowed for a\nsingle interactive application per Posit Connect node. When `null`,\nthe default [`Scheduler.MaxProcesses`](../admin/appendix/configuration/index.md#Scheduler.MaxProcesses) is used. Applies only to\ncontent types that are executed on demand.",
            "example": 3,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "min_processes": {
            "description": "Specifies the minimum number of concurrent processes allowed for a\nsingle interactive application per Posit Connect node. When `null`,\nthe default `Scheduler.MinProcesses` is used. Applies only to\ncontent types that are executed on demand.",
            "example": 0,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "max_conns_per_process": {
            "description": "Specifies the maximum number of client connections allowed to an\nindividual process. Incoming connections which will exceed this\nlimit are routed to a new process or rejected. When `null`, the\ndefault [`Scheduler.MaxConnsPerProcess`](../admin/appendix/configuration/index.md#Scheduler.MaxConnsPerProcess) is used. Applies only to\ncontent types that are executed on demand.",
            "example": 20,
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "load_factor": {
            "description": "Controls how aggressively new processes are spawned. When `null`,\nthe default [`Scheduler.LoadFactor`](../admin/appendix/configuration/index.md#Scheduler.LoadFactor) is used. Applies only to content\ntypes that are executed on demand.",
            "example": 0.5,
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "default_r_environment_management": {
            "description": "Indicates whether or not Connect should create and manage an R\nenvironment (installing required packages) for this content. When\n`null`, Connect makes this determination based on the server\nconfiguration.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "default_py_environment_management": {
            "description": "Indicates whether or not Connect should create and manage a Python\nenvironment (installing required packages) for this content. When\n`null`, Connect makes this determination based on the server\nconfiguration.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "run_as": {
            "description": "The UNIX user that executes this content. When `null`, the default\n[`Applications.RunAs`](../admin/appendix/configuration/index.md#Applications.RunAs) is used. Applies only to executable content\ntypes - not `static`.",
            "example": "rstudio-connect",
            "nullable": true,
            "type": "string"
          },
          "run_as_current_user": {
            "description": "Indicates that Connect should run processes for this content item\nunder the Unix account of the user who visits it. Content accessed\nanonymously will continue to run as the specified `run_as` user.",
            "example": false,
            "nullable": true,
            "type": "boolean"
          },
          "memory_request": {
            "description": "The minimum amount of RAM this content needs when executing or\nrendering, expressed in bytes. When `null`, the default\n[`Scheduler.MemoryRequest`](../admin/appendix/configuration/index.md#Scheduler.MemoryRequest) is used.",
            "example": 1073741824,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "memory_limit": {
            "description": "The maximum amount of RAM this content will be allowed to consume\nwhen executing or rendering, expressed in bytes. When `null`, the\ndefault [`Scheduler.MemoryLimit`](../admin/appendix/configuration/index.md#Scheduler.MemoryLimit) is used.",
            "example": 2147483648,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "cpu_request": {
            "description": "The minimum amount of compute power this content needs when executing\nor rendering, expressed in CPU Units, where 1.0 unit is equivalent to\n1 physical or virtual core. Fractional values are allowed. When `null`,\nthe default [`Scheduler.CPURequest`](../admin/appendix/configuration/index.md#Scheduler.CPURequest) is used.",
            "example": 1,
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "cpu_limit": {
            "description": "The maximum amount of compute power this content will be allowed to\nconsume when executing or rendering, expressed in CPU Units. When\n`null`, the default [`Scheduler.CPULimit`](../admin/appendix/configuration/index.md#Scheduler.CPULimit) is used.",
            "example": 1.5,
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "amd_gpu_limit": {
            "description": "The number of AMD GPUs allocated to run this content. When `null`,\nthe default [`Scheduler.AMDGPULimit`](../admin/appendix/configuration/index.md#Scheduler.AMDGPULimit) is used.",
            "example": 1,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "nvidia_gpu_limit": {
            "description": "The number of NVIDIA GPUs allocated to run this content. When `null`,\nthe default [`Scheduler.NvidiaGPULimit`](../admin/appendix/configuration/index.md#Scheduler.NvidiaGPULimit) is used.",
            "example": 1,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "service_account_name": {
            "description": "The name of the Kubernetes service account used to run this content.",
            "example": "rstudio-connect-content",
            "nullable": true,
            "type": "string"
          },
          "default_image_name": {
            "description": "The default container image used when none is defined by the bundle's\nmanifest.",
            "example": "rstudio/content-base:r4.1.3-py3.10.11-jammy",
            "nullable": true,
            "type": "string"
          },
          "default_environment_guid": {
            "description": "The default execution environment used when none is defined by the\nbundle's manifest.",
            "example": "36538b83-ea6d-4839-ae8e-53c52ac5f0bf",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "metrics_collection_enabled": {
            "description": "Controls whether per-job resource metrics are collected for this\ncontent item. When `null`, inherits the server-wide default.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "notify_on_share": {
            "description": "Controls whether email notifications are sent by default when\nusers or groups are added as collaborators or viewers.\nWhen `null`, inherits the server-wide default from\n[`Applications.NotifyOnShare`](../admin/appendix/configuration/index.md#Applications.NotifyOnShare).",
            "example": true,
            "nullable": true,
            "type": "boolean"
          },
          "trace_collection_enabled": {
            "description": "Controls whether per-job OpenTelemetry traces are collected for\nthis content item. When `null`, inherits the server-wide default.",
            "example": false,
            "nullable": true,
            "type": "boolean"
          },
          "content_category": {
            "description": "The `content_category` field refines the type of content specified by\n`app_mode`. For example, the MCP content category indicates content that\nserves as an MCP server. Allowed values are `\"\"` (empty string to clear)\nor `\"mcp\"`.",
            "example": "mcp",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdateEnvironmentInput": {
        "description": "The fields that can be specified when updating an environment.",
        "properties": {
          "title": {
            "description": "A human readable title for this environment.",
            "example": "Project Alpha (R 4.1.1, Python 3.10)",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A human readable description of this environment.",
            "example": "This is my description of the environment",
            "nullable": true,
            "type": "string"
          },
          "matching": {
            "description": "This field indicates how environments can be considered for selection\nwhen Posit Connect is choosing a compatible environment to use when\nexecuting content.\n\n`any` (the default) indicates that the image can be selected by Connect\nautomatically,\n_or_ targeted in the bundle's manifest.\n\n`exact` indicates the image must be explicitly asked for in the bundle's\nmanifest.\n\n`none` indicates that the image should never be selected by Posit Connect.",
            "example": "any",
            "nullable": true,
            "type": "string"
          },
          "supervisor": {
            "description": "The path to the script or command that should be used as the\n[program\nsupervisor](https://docs.posit.co/helm/rstudio-connect/kubernetes-howto/appendices/content_images.html#per-image-supervisors)\nwhen executing content with this environment.",
            "example": "/usr/local/bin/supervisor.sh",
            "nullable": true,
            "type": "string"
          },
          "python": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available Python installations in this environment."
          },
          "quarto": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available Quarto installations in this environment."
          },
          "r": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available R installations in this environment."
          },
          "tensorflow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Installations"
              }
            ],
            "description": "The available TensorFlow installations in this environment."
          },
          "volume_mounts": {
            "description": "The volume mounts for this environment.",
            "items": {
              "$ref": "#/components/schemas/VolumeMount"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "User": {
        "description": "A user object.",
        "properties": {
          "email": {
            "description": "The user's email.",
            "example": "jon.doe@example.com",
            "type": "string"
          },
          "username": {
            "description": "The user's username.",
            "example": "jondoe",
            "type": "string"
          },
          "first_name": {
            "description": "The user's first name.",
            "example": "Jon",
            "type": "string"
          },
          "last_name": {
            "description": "The user's last name.",
            "example": "Doe",
            "type": "string"
          },
          "user_role": {
            "description": "The user's role.",
            "enum": [
              "administrator",
              "publisher",
              "viewer"
            ],
            "example": "administrator",
            "type": "string"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when the user was created in\nthe Posit Connect server.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "updated_time": {
            "description": "The timestamp (RFC3339) indicating when information about this\nuser was last updated in the Posit Connect server.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "active_time": {
            "description": "The timestamp (RFC3339) indicating approximately when the user\nwas last active. Highly active users only receive periodic updates.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "confirmed": {
            "description": "When `false`, the created user must confirm their account through\nan email. This feature is unique to password authentication.",
            "example": true,
            "type": "boolean"
          },
          "locked": {
            "description": "Whether or not the user is locked.",
            "example": false,
            "type": "boolean"
          },
          "external_id": {
            "description": "The unique identifier for this user from the authentication\nprovider, when available.",
            "example": "okta-12345-abcde",
            "type": "string"
          },
          "guid": {
            "description": "The user's GUID, or unique identifier, in UUID\n[RFC4122](https://www.rfc-editor.org/rfc/rfc4122)\nformat",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserCreatePullInput": {
        "description": "The fields that must be specified when creating a user from a remote authentication provider.",
        "properties": {
          "temp_ticket": {
            "description": "This value is for actions that require a `temp_ticket`, such\nas adding an LDAP or OAuth2 with Google user to the Connect server.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserCreatePushInput": {
        "description": "The fields that can be specified when creating a user from caller-supplied details.",
        "properties": {
          "username": {
            "description": "The user's desired username.",
            "example": "jondoe",
            "type": "string"
          },
          "first_name": {
            "description": "The user's first name.",
            "example": "Jon",
            "type": "string"
          },
          "last_name": {
            "description": "The user's last name.",
            "example": "Doe",
            "type": "string"
          },
          "email": {
            "description": "The user's email address.",
            "example": "jon.doe@example.com",
            "type": "string"
          },
          "user_role": {
            "description": "The user's role. When `null`, the role is determined by the server\ndefault.",
            "enum": [
              "administrator",
              "publisher",
              "viewer"
            ],
            "example": "publisher",
            "nullable": true,
            "type": "string"
          },
          "user_must_set_password": {
            "description": "When `true`, the created user will be asked to set the password\non first login.",
            "example": false,
            "type": "boolean"
          },
          "password": {
            "description": "The user's initial password. Must meet minimum password\nrequirements.",
            "type": "string"
          },
          "external_id": {
            "description": "The unique identifier for this user from the authentication\nprovider.",
            "example": "okta-12345-abcde",
            "type": "string"
          },
          "unique_id": {
            "description": "Deprecated: use `external_id` instead.",
            "example": "okta-12345-abcde",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserUpdateInput": {
        "description": "The fields that can be specified when updating a user.",
        "properties": {
          "email": {
            "description": "The user's email.",
            "example": "jon.doe@example.com",
            "type": "string"
          },
          "username": {
            "description": "The user's username.",
            "example": "jondoe",
            "type": "string"
          },
          "first_name": {
            "description": "The user's first name.",
            "example": "Jon",
            "type": "string"
          },
          "last_name": {
            "description": "The user's last name.",
            "example": "Doe",
            "type": "string"
          },
          "user_role": {
            "description": "The user's role.",
            "enum": [
              "administrator",
              "publisher",
              "viewer"
            ],
            "example": "administrator",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserWithTicket": {
        "description": "A user object with a temporary ticket for remote user creation.",
        "properties": {
          "email": {
            "description": "The user's email.",
            "example": "jon.doe@example.com",
            "type": "string"
          },
          "username": {
            "description": "The user's username.",
            "example": "jondoe",
            "type": "string"
          },
          "first_name": {
            "description": "The user's first name.",
            "example": "Jon",
            "type": "string"
          },
          "last_name": {
            "description": "The user's last name.",
            "example": "Doe",
            "type": "string"
          },
          "user_role": {
            "description": "The user's role.",
            "enum": [
              "administrator",
              "publisher",
              "viewer"
            ],
            "example": "administrator",
            "type": "string"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when the user was created in\nthe Posit Connect server.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "updated_time": {
            "description": "The timestamp (RFC3339) indicating when information about this\nuser was last updated in the Posit Connect server.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          },
          "active_time": {
            "description": "The timestamp (RFC3339) indicating approximately when the user\nwas last active. Highly active users only receive periodic updates.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "confirmed": {
            "description": "When `false`, the created user must confirm their account through\nan email. This feature is unique to password authentication.",
            "example": true,
            "type": "boolean"
          },
          "locked": {
            "description": "Whether or not the user is locked.",
            "example": false,
            "type": "boolean"
          },
          "external_id": {
            "description": "The unique identifier for this user from the authentication\nprovider, when available.",
            "example": "okta-12345-abcde",
            "type": "string"
          },
          "guid": {
            "description": "The user's GUID, or unique identifier in\n[RFC4122](https://www.rfc-editor.org/rfc/rfc4122)\nformat. When a user does not exist in the Posit Connect server, this\nproperty\nwill be `null`.",
            "example": "6f300623-1e0c-48e6-a473-ddf630c0c0c3",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "temp_ticket": {
            "description": "This value is for actions that require a `temp_ticket`, such\nas adding an LDAP or OAuth2 with Google user to the Connect server.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Users": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OffsetPaging"
          },
          {
            "properties": {
              "results": {
                "description": "The users list",
                "items": {
                  "$ref": "#/components/schemas/User"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ],
        "description": "The users list with paging information."
      },
      "Vanity": {
        "description": "The fields that are returned when getting or listing vanity URLs.",
        "properties": {
          "content_guid": {
            "description": "The unique identifier of the associated content item.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "path": {
            "description": "The URL path that will be used by this application. HTTP requests to\nthis path on the Connect server will be routed to the associated\ncontent item.",
            "example": "/stock-report/",
            "type": "string"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when this vanity URL was created.",
            "example": "2006-01-02T15:04:05-07:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "VanityInput": {
        "description": "The fields that can be specified when creating a vanity URL.",
        "properties": {
          "path": {
            "description": "The URL path that will be assigned to this content item. HTTP requests to\nthis path on the Connect server will be routed to the associated\ncontent item.",
            "example": "/stock-report/",
            "type": "string"
          },
          "force": {
            "description": "If true, and a vanity URL exists with the specified path,\nreassign it to the specified content item. To reassign\na vanity URL, you must be an administrator, or a\ncollaborator/owner of both content items.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "VariantResults": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OffsetPaging"
          },
          {
            "properties": {
              "results": {
                "description": "The list of variants, paginated",
                "items": {
                  "$ref": "#/components/schemas/VariantSearchResult"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ],
        "description": "Search results containing variants and pagination metadata."
      },
      "VariantScheduleHistory": {
        "properties": {
          "variant_key": {
            "description": "The unique key identifying this variant.",
            "example": "HidI2Kwq",
            "type": "string"
          },
          "current_schedule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CurrentSchedule"
              }
            ],
            "description": "The current active schedule for this variant, or null if no\nschedule exists.",
            "nullable": true
          },
          "history": {
            "description": "A list of schedule change history entries, ordered by change time\n(most recent first). Limited to the 100 most recent entries.",
            "items": {
              "$ref": "#/components/schemas/ScheduleHistoryEntry"
            },
            "type": "array"
          },
          "total_count": {
            "description": "The total number of history entries for this variant. This may be\nlarger than the number of entries in the `history` array, which is\nlimited to 100 entries.",
            "example": 3,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "VariantSearchResult": {
        "description": "A single variant in search results.",
        "properties": {
          "content_guid": {
            "description": "The GUID of the parent content item",
            "example": "abc123de-f456-7890-abcd-ef1234567890",
            "format": "uuid",
            "type": "string"
          },
          "content_name": {
            "description": "The URL-friendly name of the parent content item",
            "example": "monthly-sales-report",
            "type": "string"
          },
          "content_title": {
            "description": "The human-readable title of the parent content item",
            "example": "Monthly Sales Report",
            "nullable": true,
            "type": "string"
          },
          "variant_key": {
            "description": "The unique key identifying this variant",
            "example": "xyz789",
            "type": "string"
          },
          "variant_name": {
            "description": "The human-readable name of the variant",
            "example": "West Region",
            "type": "string"
          },
          "is_default": {
            "description": "Whether this is the default variant for the content",
            "example": false,
            "type": "boolean"
          },
          "created_time": {
            "description": "The time this variant was created",
            "example": "2025-06-15T09:00:00Z",
            "format": "date-time",
            "type": "string"
          },
          "render_time": {
            "description": "The time this variant was last rendered",
            "example": "2026-01-26T08:00:00Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "failures": {
            "description": "The number of failed jobs (non-zero exit code) for this variant.\nWhen a `failed:\u003e=` filter is used, this count is scoped to failures\non or after the given timestamp.",
            "example": 0,
            "type": "integer"
          },
          "last_failed": {
            "description": "The time the most recent failed job completed for this variant.\nNull if no failures have occurred. When a `failed:\u003e=` filter is\nused, this reflects only failures within the given time window.",
            "example": "2026-02-01T12:00:00Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "skips": {
            "description": "The number of skipped scheduled jobs for this variant. When a\n`skipped:\u003e=` filter is used, this count is scoped to skips on or\nafter the given timestamp.",
            "example": 0,
            "type": "integer"
          },
          "last_skipped": {
            "description": "The scheduled time of the most recent skipped job for this\nvariant. Null if no skips have occurred. When a `skipped:\u003e=`\nfilter is used, this reflects only skips within the given time\nwindow.",
            "example": "2026-02-01T12:00:00Z",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "schedule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Schedule"
              }
            ],
            "description": "Schedule information for this variant. Omitted if no schedule exists.",
            "nullable": true
          }
        },
        "type": "object"
      },
      "VolumeMount": {
        "description": "A volume mount configuration for an environment.",
        "properties": {
          "source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VolumeSource"
              }
            ],
            "description": "The source specification for this mount."
          },
          "target": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VolumeTarget"
              }
            ],
            "description": "The target specification for this mount."
          }
        },
        "type": "object"
      },
      "VolumeSource": {
        "description": "The source specification for a volume mount.",
        "properties": {
          "volume_type": {
            "description": "The type of volume.",
            "example": "nfs",
            "type": "string"
          },
          "nfs_host": {
            "description": "The NFS host. Required when `volume_type` is `nfs`.",
            "nullable": true,
            "type": "string"
          },
          "nfs_export_path": {
            "description": "The NFS export path. Required when `volume_type` is `nfs`.",
            "nullable": true,
            "type": "string"
          },
          "pvc_name": {
            "description": "The PersistentVolumeClaim name. Required when `volume_type` is `pvc`.",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "VolumeTarget": {
        "description": "The target specification for a volume mount.",
        "properties": {
          "path": {
            "description": "The mount path inside the container.",
            "example": "/mnt/data",
            "type": "string"
          },
          "read_only": {
            "description": "Whether the volume is mounted read-only.",
            "example": false,
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "Webhook": {
        "description": "A webhook destination for content event notifications.",
        "properties": {
          "guid": {
            "description": "The unique identifier for this webhook.",
            "example": "25438b83-ea6d-4839-ae8e-53c52ac5f9ce",
            "format": "uuid",
            "type": "string"
          },
          "creator_guid": {
            "description": "The unique identifier of the user who created this webhook.",
            "example": "f7b3e3c0-1a2b-4c5d-8e9f-0a1b2c3d4e5f",
            "format": "uuid",
            "type": "string"
          },
          "type": {
            "description": "The type of the webhook destination.",
            "example": "slack",
            "type": "string"
          },
          "name": {
            "description": "The name of the webhook.",
            "example": "My Slack Webhook",
            "type": "string"
          },
          "url": {
            "description": "The destination URL for the webhook.",
            "example": "https://hooks.slack.com/services/T00/B00/XXXX",
            "type": "string"
          },
          "enabled": {
            "description": "Whether the webhook is enabled.",
            "example": true,
            "type": "boolean"
          },
          "created_time": {
            "description": "The timestamp (RFC3339) indicating when the webhook was created.",
            "example": "2006-01-02T15:04:05Z",
            "format": "date-time",
            "type": "string"
          },
          "updated_time": {
            "description": "The timestamp (RFC3339) indicating when the webhook was last updated.",
            "example": "2006-01-02T15:04:05Z",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "WebhookCreateInput": {
        "description": "The fields that must be specified when creating a webhook.",
        "properties": {
          "name": {
            "description": "The name of the webhook. Maximum 256 characters.",
            "example": "My Slack Webhook",
            "type": "string"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/store.WebhookType"
              }
            ],
            "description": "The type of the webhook destination. Must be one of \"slack\", \"teams\", or \"generic\"."
          },
          "url": {
            "description": "The destination URL for the webhook. Maximum 2048 characters.",
            "example": "https://hooks.slack.com/services/T00/B00/XXXX",
            "type": "string"
          },
          "secret": {
            "description": "An optional secret used to sign webhook payloads. Write-only; never returned in responses.",
            "example": "my-signing-secret",
            "nullable": true,
            "type": "string"
          },
          "enabled": {
            "description": "Whether the webhook is enabled. Defaults to true if omitted.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "WebhookUpdateInput": {
        "description": "The fields that can be specified when updating a webhook. All fields are optional.",
        "properties": {
          "name": {
            "description": "The name of the webhook. Maximum 256 characters.",
            "example": "My Slack Webhook",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The type of the webhook destination. Must be one of \"slack\", \"teams\", or \"generic\".",
            "example": "slack",
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The destination URL for the webhook. Maximum 2048 characters.",
            "example": "https://hooks.slack.com/services/T00/B00/XXXX",
            "nullable": true,
            "type": "string"
          },
          "secret": {
            "description": "An optional secret used to sign webhook payloads. Write-only; never returned in responses.",
            "example": "my-signing-secret",
            "nullable": true,
            "type": "string"
          },
          "enabled": {
            "description": "Whether the webhook is enabled.",
            "example": true,
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "apiKey": {
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "contact": {
      "email": "support@posit.co",
      "name": "Posit Connect Support",
      "url": "https://support.posit.co/hc/en-us"
    },
    "description": "## Overview\n\nThe Posit Connect Server API can be used to perform certain\nuser actions remotely. You will need to install a tool or library\nthat can make HTTP requests. We recommend using one of our SDKs, which\nare designed to make it easier to interact with the API.\n\n- Python: [posit-sdk](https://github.com/posit-dev/posit-sdk-py/)\n- R: [connectapi](https://posit-dev.github.io/connectapi/)\n\nThe SDKs are designed to work with the following values set in environment\nvariables, though you may provide them directly to the SDK if you prefer:\n\n- `CONNECT_SERVER` - The URL of the Posit Connect server.\n- `CONNECT_API_KEY` - Your API key.\n\nPlease note that all API paths are relative to the base API URL\n(e.g., `https://connect.example.com/__api__`).\nUnless otherwise noted, all endpoints which accept a request body\nwill require the body to be in JSON format.\nSimilarly, all response bodies will be returned in JSON format.\n\n### Specifications {#download}\n\nThe Posit Connect Server API OpenAPI specification is available for\ndownload as either JSON or YAML. Both formats contain the same\ninformation, also presented on this page.\n\n* \u003ca href=\"openapi.json\" title=\"OpenAPI (JSON)\" target=\"_blank\"\u003eOpenAPI (JSON)\u003c/a\u003e\n* \u003ca href=\"openapi.yaml\" title=\"OpenAPI (YAML)\" target=\"_blank\"\u003eOpenAPI (YAML)\u003c/a\u003e\n\n### Versioning of the API {#versioning-policy}\n\nThe Posit Connect Server API uses a simple, single number versioning scheme as noted\nas the first part of each endpoint path.  This version number will only be incremented\nin the event that non-backward compatible changes are made to an existing endpoint.\nNote that this occurs on a per-endpoint basis; see the section on\n[deprecation](#deprecation) below for more information.\n\nChanges that are considered backward compatible are:\n\n* New fields in responses.\n* New non-required fields in requests.\n* New endpoint behavior which does not violate the current functional intent of the\n  endpoint.\n\nChanges that are considered non-backward compatible are:\n\n* Removal or rename of request or response fields.\n* A change of the type or format of one or more request or response fields.\n* Addition of new required request fields.\n* A substantial deviation from the current functional intent of the endpoint.\n\nThe points relating to functional intent are assumed to be extremely rare as more\noften such situations will result in a completely new endpoint, which makes the\nchange a backward compatible addition.\n\n#### Experimentation\n\nPosit Connect labels experimental endpoints in the API by including `/experimental`\nin the endpoint path immediately after the version indicator.  If an endpoint is noted\nas experimental, it should not be relied upon for any production work.  These are\nendpoints that Posit Connect is making available to our customers to solicit\nfeedback; they are subject to change without notice.  Such changes include anything\nfrom altered request/response shapes, to complete abandonment of the endpoint.\n\nThis public review of an experimental endpoint will last as long as necessary to either\nprove its viability or to determine that it's not really needed.  The time for this\nwill vary based on the intricacies of each endpoint.  When the endpoint is finalized,\nthe next release of Posit Connect will mark the experimental path as deprecated while\nadding the endpoint without the `/experimental` prefix. The path with the experimental\nprefix will be removed six months later.  The documentation for the endpoint will also\nnote, during that time, the original, experimental, path.\n\nAll experimental endpoints are clearly marked as such in this documentation.\n\n#### Deprecation and removal of old versions {#deprecation}\n\nIt is possible that Posit Connect may decide to deprecate an endpoint.  This will\nhappen if either the endpoint serves no useful purpose because its functionality is\nnow handled by a different endpoint or because there is a newer version of the endpoint\nthat should be used.\n\nIf a deprecated endpoint is called, the response to it will include an extra HTTP\nheader called, `X-Deprecated-Endpoint` and will have as a value the path of the\nendpoint that should be used instead.  If the functionality has no direct replacement,\nthe value will be set to `n/a`.\n\nDeprecated versions of an endpoint will be supported for 1 year from the release date\nof Posit Connect in which the endpoint was marked as deprecated.  At that time, the\nendpoint is subject to removal at the discretion of Posit Connect.  The life cycle\nof an endpoint will follow these steps.\n\n1. The `/v1/endpoint` is public and in use by Posit Connect customers.\n1. Posit Connect makes `/v2/experimental/endpoint` available for testing and feedback.\n   Customers should still use `/v1/endpoint` for production work.\n1. Posit Connect moves version 2 of the endpoint out of experimentation so, all within\n   the same release:\n    1. `/v1/endpoint` is marked as deprecated.\n    1. `/v2/experimental/endpoint` is marked as deprecated.\n    1. `/v2/endpoint` is made public.\n1. Six months later, `/v2/experimental/endpoint` is removed from the product.\n1. Twelve months later, `/v1/endpoint` is removed from the product.\n\nNote that it is possible that Posit Connect may produce a new version of an existing\nendpoint without making an experimental version of it first.  The same life cycle,\nwithout those parts, will still be followed.\n\n### Authentication {#authentication}\n\nAPI endpoints require you to identify yourself as a valid Posit Connect\nuser. You do this by specifying an API key when you make a call to the\nserver. The [API Keys](../user/api-keys/) chapter of the Posit Connect\nUser Guide explains how to create an API key.\n\n#### API Keys {#api-keys}\n\nAPI keys are managed by each user in the Posit Connect\ndashboard. If you ever lose an API key or otherwise feel it has\nbeen compromised, use the dashboard to revoke the key and create\nanother one.\n\n**WARNING**: Keep your API key safe.  If your Posit Connect server's URL does not begin\nwith `https`, your API key could be intercepted and used by a malicious actor.\n\nOnce you have an API key, you can authenticate by passing the key with a prefix\nof `\"Key \"` (the space is important) in the Authorization header.\n\nBelow are examples of invoking the \"Get R Information\" endpoint.\n\n##### cURL\n\n```bash\ncurl -H \"Authorization: Key XXXXXXXXXXX\" \\\n     https://positconnect.example.com/__api__/v1/server_settings/r\n```\n\n##### R\n\n```r\nlibrary(httr)\napiKey \u003c- \"XXXXXXXXXXX\"\nresult \u003c- GET(\"https://positconnect.example.com/__api__/v1/server_settings/r\",\n  add_headers(Authorization = paste(\"Key\", apiKey)))\n```\n\n##### Python\n\n```python\nimport requests\nr = requests.get(\n  'https://positconnect.example.com/__api__/v1/server_settings/r',\n  headers = { 'Authorization': 'Key XXXXXXXXXXX' }\n)\n```\n\n### API CORS considerations {#api-cors-considerations}\n\nFor information about using Connect's API from web applications in different domains,\nsee the [Cross-Origin Resource Sharing (CORS)](../admin/security/index.md#cors) section in\nthe security documentation.\n\n### API error codes {#api-error-codes}\n\n{{\u003c include src/api_codes.fragment.html \u003e}}\n",
    "license": {
      "name": "Commercial. Copyright 2015-2026 Posit Software, PBC. All Rights Reserved.",
      "url": "https://posit.co/about/eula/"
    },
    "termsOfService": "https://posit.co/about/eula/",
    "title": "Posit Connect API Reference",
    "version": "1.0.1"
  },
  "openapi": "3.0.3",
  "paths": {
    "/v1/users/{guid}/keys": {
      "get": {
        "description": "List your provisioned API keys.",
        "operationId": "listKeys",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/APIKey"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List API keys",
        "tags": [
          "API Keys"
        ]
      },
      "post": {
        "description": "Create an API key.\n\nUsers can only create API keys for themselves. If `guid` does not match\nthe current user's GUID, a 403 status is returned.",
        "operationId": "createKey",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/APIKeyCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIKey"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create an API key",
        "tags": [
          "API Keys"
        ]
      }
    },
    "/v1/users/{guid}/keys/{id}": {
      "delete": {
        "description": "Delete a single API key.",
        "operationId": "deleteKey",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete an API key",
        "tags": [
          "API Keys"
        ]
      },
      "get": {
        "description": "Get details for a single API key.",
        "operationId": "getKey",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIKey"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get an API key",
        "tags": [
          "API Keys"
        ]
      }
    },
    "/v1/audit/actions": {
      "get": {
        "description": "Retrieve the list of audit actions available on your Posit Connect server.\nYou can also see a list of these actions in the [Admin Guide](../admin/auditing/events/).\nAction names can be used to filter audit logs in the [Audit Log Search API](#searchAuditLogs).",
        "operationId": "getAuditActions",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AuditActionResult"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get audit actions",
        "tags": [
          "Audit Logs"
        ]
      }
    },
    "/v1/audit_logs": {
      "get": {
        "description": "This endpoint returns a portion of the audit logs, as well as\npaging information that can be used to navigate the audit log\nresults.\n\nThis endpoint requires administrator access.\n\nThis endpoint uses keyset pagination. The URLs in the `paging` field's\nsubfields can be used to fetch the `next`, `previous`, `first`, and\n`last` pages of results.",
        "operationId": "getAuditLogs",
        "parameters": [
          {
            "description": "Number of logs to return. The minimum supported value is 1 and\nmaximum supported value is 500. Note that `limit` is a \"best\neffort\" request since there may not be enough logs to satisfy the limit.",
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "description": "Gets the previous page of audit logs relative to the given id.",
            "in": "query",
            "name": "previous",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Gets the next page of audit logs relative to the given id.",
            "in": "query",
            "name": "next",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Whether the audit logs should be listed in ascending order.",
            "in": "query",
            "name": "ascOrder",
            "schema": {
              "default": true,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditLogs"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get audit logs",
        "tags": [
          "Audit Logs"
        ]
      }
    },
    "/v1/search/auditlogs": {
      "get": {
        "description": "This endpoint searches for audit logs, using a search query format\nthat allows for both search terms and filters. The search terms are used\nto find audit logs that have matching terms in the audit action, audit\ndescription, etc, while the filters are used to filter the search\nresults by specific fields (such as `user_guid` or the audit `time`).\n\nAuthenticated access with an Administrator role is required.\n\n#### Search query\n\nThe search query is a string that includes both search terms and\nfilters. Any text in the search query that is not a supported filter\nis treated as a search term, and those search terms are matched\nagainst any of: `user_description`, `action`, or `event_description`. Note that the search\nterms are case-insensitive, and all terms must be present in an audit log entry\nfor it to be included in the search results.\n\n#### Filters\n\nFilters are specified as colon-delimited key-value pairs, containing one\nor more values separated by commas. If any of the values within a filter\ncontain a space or comma, you should use quotes around the value. Example:\n\n```\nmyterm tag:tagwithoutspace,\"tag with space\"\n```\n\nYou can negate a filter or search term by prefixing it\nwith a `-`. For example, `-user_id:0` will exclude audit logs produced by system actors which\nhave a default user_id of `0`.\n\nThe following filters are supported:\n\n`action:\u003caction\u003e[,\u003cadditional-actions\u003e,...]` - Only return audit logs\nthat have the specified action. If more than one action is provided,\naudit logs with ANY of the specified actions will be included. Note that\nactions are not case sensitive. Audit actions are enumerated in the\n[Admin Guide](../admin/auditing/events/), and are also exposed in the\n[GET /v1/audit/actions](#getAuditActions).\n\n`user_guid:\u003cuser_guid\u003e[,\u003cadditional-user_guids\u003e,...]` - Only return\naudit logs that have the specified user GUID. If more than one user\nGUID is provided, audit logs with ANY of the specified user GUIDs will\nbe included.\n\n`user_id:\u003cuser_id\u003e[,\u003cadditional-user_ids\u003e,...]` - Only return audit logs\nthat have the specified user ID. If more than one user ID is provided,\naudit logs with ANY of the specified user IDs will be included. The user ID `0`\nis reserved for system actors.\n\n`from:\u003ctimestamp\u003e` - Only return audit logs that have a timestamp\ngreater than or equal to the specified timestamp. The timestamp must\nbe provided in RFC3339 format, such as `2023-01-01T12:34:56Z`. Up to nanosecond\nprecision is supported (e.g. `2023-01-01T12:34:56.123456789Z`). The timestamp\nis inclusive, so audit logs with the specified timestamp will be\nincluded in the results.\n\n`to:\u003ctimestamp\u003e` - Only return audit logs that have a timestamp\nless than or equal to the specified timestamp. The timestamp must\nbe provided in RFC3339 format, such as `2023-01-01T12:34:56Z`. Up to nanosecond\nprecision is supported (e.g. `2023-01-01T12:34:56.123456789Z`). The timestamp\nis inclusive, so audit logs with the specified timestamp will be\nincluded in the results.\n\n#### Pagination\n\nThis endpoint uses offset pagination. Requests can include\nquery-string parameters for `page_number` and `page_size` to\nfetch different pages of results.",
        "operationId": "searchAuditLogs",
        "parameters": [
          {
            "description": "Search audit log entries.",
            "in": "query",
            "name": "q",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The page number to return.",
            "in": "query",
            "name": "page_number",
            "schema": {
              "default": 1,
              "type": "integer"
            }
          },
          {
            "description": "The number of items per page.",
            "in": "query",
            "name": "page_size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "description": "The sort order: asc or desc.",
            "in": "query",
            "name": "order",
            "schema": {
              "enum": [
                "asc",
                "desc"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditLogSearchResults"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Search audit logs",
        "tags": [
          "Audit Logs"
        ]
      }
    },
    "/v1/content/{guid}/bookmark": {
      "delete": {
        "description": "Delete the bookmark for this content item for the requesting user.\nAuthenticated access is required. The user must have permission to view the content item.",
        "operationId": "deleteBookmark",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete bookmark",
        "tags": [
          "Bookmarks"
        ]
      },
      "get": {
        "description": "Get the bookmark for this content item for the requesting user.\nReturns a bookmark record if the user has bookmarked this content, and a 404 status otherwise.\nAuthenticated access is required. The user must have permission to view the content item.",
        "operationId": "getBookmark",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bookmark"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get bookmark",
        "tags": [
          "Bookmarks"
        ]
      },
      "post": {
        "description": "Create a bookmark for this content item for the requesting user.\nA bookmark allows the user to save content for quick access later.\nEach user can only have one bookmark per content item.\nAuthenticated access is required. The user must have permission to view the content item.",
        "operationId": "createBookmark",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create bookmark",
        "tags": [
          "Bookmarks"
        ]
      }
    },
    "/v1/bootstrap": {
      "post": {
        "description": "This endpoint creates an initial administrator user, provisions an API key for the initial administrator,\nand returns the API key. This endpoint only functions for installations with no pre-existing users.\n\n#### Code samples\n\n::: {.panel-tabset}\n\n##### curl\n\n```bash\n#!/bin/bash\n\nBOOTSTRAP_JWT=\"your.jwt.here\"\n\ncurl --silent --show-error -L --max-redirs 0 --fail \\\n    -X POST \\\n    -H \"Authorization: Connect-Bootstrap ${BOOTSTRAP_JWT}\" \\\n    \"https://connect.example.com/__api__/v1/bootstrap\"\n```\n\n##### Python\n\n```python\nimport requests\n\nbootstrap_jwt = \"your.jwt.here\"\nheaders = { 'Authorization': 'Connect-Bootstrap ' + bootstrap_jwt }\n\nresponse = requests.post(\"https://connect.example.com/__api__/v1/bootstrap\",\n    headers=headers)\n```\n\n##### R\n\n```r\nlibrary(httr)\n\nbootstrapJwt \u003c- \"your.jwt.here\"\n\nresult \u003c- POST(\"https://connect.example.com/__api__/v1/bootstrap\",\n    add_headers(Authorization = paste(\"Connect-Bootstrap\", bootstrapJwt)))\n```\n\n:::",
        "operationId": "bootstrap",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BootstrapSuccess"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create first administrator and API key",
        "tags": [
          "Bootstrap"
        ]
      }
    },
    "/v1/experimental/bootstrap": {
      "post": {
        "deprecated": true,
        "description": "This endpoint creates an initial administrator user, provisions an\nAPI key for the initial administrator, and returns the API key. This\nendpoint only functions for installations with no pre-existing users.\n\nThis endpoint is deprecated. Use [POST /v1/bootstrap](#bootstrap) instead.",
        "operationId": "bootstrapExperimental",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BootstrapSuccess"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create first administrator and API key",
        "tags": [
          "Bootstrap"
        ]
      }
    },
    "/v1/content/{guid}/bundles": {
      "get": {
        "description": "List bundles associated with a specific content item.\n\nBundle enumeration is permitted by all users with viewership rights to\nthe content item and administrators. Information about the target\nenvironment is populated for users with \"publisher\" and \"administrator\" role.\n\nResults are sorted by ID.",
        "operationId": "getBundles",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Bundle"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List bundles",
        "tags": [
          "Bundles"
        ]
      },
      "post": {
        "description": "Create a new deployment bundle by uploading an archive.\n\nUpload a compressed `tar` archive containing code/data that represent\none deployment of this content. Bundles must be `gzip` compressed\n`tar` archives.\n\n* All deployment bundles include a `manifest.json` describing the\ncontained files and their runtime dependencies.\n* A bundle for a Shiny application includes an `app.R` or `ui.R`\nand `server.R`, and any images or data files required by the\napplication.\n* Python API and application bundles include the application source code,\ntypically named `app.py`, and a list of required package dependencies\nin `requirements.txt`.\n* An R Markdown document bundle includes the `index.Rmd` file along with\nany R scripts and data files needed to render the report.\n* A Quarto bundle includes at least one `.qmd` file, along with any\nauxiliary files required. Quarto projects include a `_quarto.yml` file.\n* Bundles containing HTML content should include any CSS, Javascript, and\nimages required by that document.\n\nThe `manifest.json` file and primary source files like `app.R`, `app.py`, or `index.Rmd`\nmust be in the top level of the archived directory. Subdirectories may be used\nfor secondary data and scripts.\n\nHere is how you might use `tar` to create an archive for a Shiny\napplication. It includes the manifest, the application, and an image.\n\n```bash\ntar zcf bundle.tar.gz ./manifest.json ./app.R ./www/logo.png\n```\n\nYou could create a bundle for a Python application similarly:\n\n```bash\ntar zcf bundle.tar.gz ./manifest.json ./app.py ./requirements.txt ./www/logo.png\n```\n\nHere is another example of creating a bundle for an application\nbut from its parent directory. The application is in a\n`sales-analyzer` sub-directory. This command will include all files\nin the subdirectory; check to ensure that this does not include\nextraneous files such as output files or local Python environments\nthat you do not want in the bundle.\n\n```bash\ntar zcf bundle.tar.gz ./sales-analyzer\n```\n\nPublishers with collaborator rights to this content (including the\nowner) are permitted to upload deployment bundles. Users without these\nrights are rejected.\n\nAdministrators must be a collaborator for a content item before they\nreceive upload rights.\n\n#### Upload formats\n\nThis endpoint supports two upload methods.\n\nYou can send the bundle archive directly as the request body with\n`Content-Type: application/gzip` or `application/x-gzip`:\n\n```bash\ncurl -X POST \\\n  -H \"Authorization: Key ${API_KEY}\" \\\n  -H \"Content-Type: application/gzip\" \\\n  --data-binary @bundle.tar.gz \\\n  \"https://connect.example.com/__api__/v1/content/${GUID}/bundles\"\n```\n\nOr, you can send the bundle as a multipart form and include a JSON object of metadata.\nThis allows you to include source control information and other arbitrary fields.\n\n```bash\ncurl -X POST \\\n  -H \"Authorization: Key ${API_KEY}\" \\\n  -F \"archive=@bundle.tar.gz\" \\\n  -F 'metadata={\"source\":\"git\",\"source_repo\":\"https://github.com/org/repo\",\"source_branch\":\"main\",\"source_commit\":\"abc123\"};type=application/json' \\\n  \"https://connect.example.com/__api__/v1/content/${GUID}/bundles\"\n```\n\nYou can also use multipart form to provide a URL to fetch the bundle from, along with metadata:\n\n```bash\ncurl -X POST \\\n  -H \"Authorization: Key ${API_KEY}\" \\\n  -F \"url=https://content-library.com/bundles/bundle.tar.gz\" \\\n  -F 'metadata={\"source\":\"git\",\"source_repo\":\"https://github.com/org/repo\",\"source_branch\":\"main\",\"source_commit\":\"abc123\"};type=application/json' \\\n  \"https://connect.example.com/__api__/v1/content/${GUID}/bundles\"\n```\n\nThe `metadata` form field is optional and accepts a JSON object string.\nSome fields are known to Connect and used in the application:\n\n* `source` - Source system identifier (e.g., \"git\", \"github-actions\", \"gitlab-ci\")\n* `source_repo` - Repository URL\n* `source_branch` - Branch or reference name\n* `source_commit` - Commit hash or identifier\n\nAdditional custom fields are accepted.\nField values are stored as strings; non-string values will be serialized\nto JSON.\n\n#### Code samples\n\n::: {.panel-tabset}\n\n##### curl\n\n###### Binary upload\n\n```bash\nAPI_KEY=\"your api key\"\nFILENAME=\"archive.tar.gz\"\n\ncurl --silent --show-error -L --max-redirs 0 --fail \\\n    -X POST \\\n    -H \"Authorization: Key ${API_KEY}\" \\\n    -H \"Content-Type: application/gzip\" \\\n    --data-binary @\"${FILENAME}\" \\\n    \"https://connect.example.com/__api__/v1/content/25438b83-ea6d-4839-ae8e-53c52ac5f9ce/bundles\"\n```\n\n###### Multipart upload with metadata\n\n```bash\nAPI_KEY=\"your api key\"\nFILENAME=\"archive.tar.gz\"\n\ncurl --silent --show-error -L --max-redirs 0 --fail \\\n    -X POST \\\n    -H \"Authorization: Key ${API_KEY}\" \\\n    -F 'metadata={\"source\":\"git\",\"source_repo\":\"https://github.com/org/repo\",\"source_branch\":\"main\",\"source_commit\":\"abc123def456\"};type=application/json' \\\n    -F \"archive=@${FILENAME}\" \\\n    \"https://connect.example.com/__api__/v1/content/25438b83-ea6d-4839-ae8e-53c52ac5f9ce/bundles\"\n```\n\n###### Multipart upload with URL and metadata\n\n```bash\nAPI_KEY=\"your api key\"\n\ncurl --silent --show-error -L --max-redirs 0 --fail \\\n    -X POST \\\n    -H \"Authorization: Key ${API_KEY}\" \\\n    -F \"url=https://content-library.com/bundles/bundle.tar.gz\" \\\n    -F 'metadata={\"source\":\"git\",\"source_repo\":\"https://github.com/org/repo\",\"source_branch\":\"main\",\"source_commit\":\"abc123def456\"};type=application/json' \\\n    \"https://connect.example.com/__api__/v1/content/25438b83-ea6d-4839-ae8e-53c52ac5f9ce/bundles\"\n```\n\n##### Python\n\n###### Binary upload\n\n```python\nfrom posit import connect\n\n# Assumes CONNECT_SERVER and CONNECT_API_KEY are set in the environment\n\nclient = connect.Client()\nfilename = \"archive.tar.gz\"\n\nwith open(filename, \"rb\") as f:\n    response = client.post(\"/v1/content/25438b83-ea6d-4839-ae8e-53c52ac5f9ce/bundles\",\n        data=f)\n```\n\n###### Multipart upload with metadata\n\n```python\nimport requests\nimport json\n\n# Assumes CONNECT_SERVER and CONNECT_API_KEY are set in the environment\n\napi_key = \"your api key\"\nfilename = \"archive.tar.gz\"\n\nmetadata = {\n    \"source\": \"git\",\n    \"source_repo\": \"https://github.com/org/repo\",\n    \"source_branch\": \"main\",\n    \"source_commit\": \"abc123def456\"\n}\n\nwith open(filename, \"rb\") as f:\n    # Fields can be provided in any order\n    files = [\n        (\"metadata\", (None, json.dumps(metadata), \"application/json\")),\n        (\"archive\", f)\n    ]\n    response = requests.post(\n        \"https://connect.example.com/__api__/v1/content/25438b83-ea6d-4839-ae8e-53c52ac5f9ce/bundles\",\n        headers={\"Authorization\": f\"Key {api_key}\"},\n        files=files\n    )\n```\n\n###### Multipart upload with URL and metadata\n\n```python\nimport requests\nimport json\n\n# Assumes CONNECT_SERVER and CONNECT_API_KEY are set in the environment\n\napi_key = \"your api key\"\n\nmetadata = {\n    \"source\": \"git\",\n    \"source_repo\": \"https://github.com/org/repo\",\n    \"source_branch\": \"main\",\n    \"source_commit\": \"abc123def456\"\n}\n\n# Fields can be provided in any order\nfiles = [\n    (\"metadata\", (None, json.dumps(metadata), \"application/json\")),\n    (\"url\", (None, \"https://content-library.com/bundles/bundle.tar.gz\", \"text/plain\"))\n]\nresponse = requests.post(\n    \"https://connect.example.com/__api__/v1/content/25438b83-ea6d-4839-ae8e-53c52ac5f9ce/bundles\",\n    headers={\"Authorization\": f\"Key {api_key}\"},\n    files=files\n)\n```\n\n##### R\n\n###### Binary upload\n\n```r\nlibrary(connectapi)\n\n# Assumes CONNECT_SERVER and CONNECT_API_KEY are set in the environment\n\nclient \u003c- connect()\nfilename \u003c- \"archive.tar.gz\"\nresult \u003c- client$POST(\"/v1/content/25438b83-ea6d-4839-ae8e-53c52ac5f9ce/bundles\",\n    body = upload_file(filename))\n```\n\n###### Multipart upload with metadata\n\n```r\nlibrary(httr)\nlibrary(jsonlite)\n\n# Assumes CONNECT_SERVER and CONNECT_API_KEY are set in the environment\n\napi_key \u003c- Sys.getenv(\"CONNECT_API_KEY\")\nserver \u003c- Sys.getenv(\"CONNECT_SERVER\")\nfilename \u003c- \"archive.tar.gz\"\n\nmetadata \u003c- list(\n    source = \"git\",\n    source_repo = \"https://github.com/org/repo\",\n    source_branch = \"main\",\n    source_commit = \"abc123def456\"\n)\n\n# Fields can be provided in any order\nresult \u003c- POST(\n    paste0(server, \"/__api__/v1/content/25438b83-ea6d-4839-ae8e-53c52ac5f9ce/bundles\"),\n    add_headers(Authorization = paste(\"Key\", api_key)),\n    body = list(\n        metadata = toJSON(metadata, auto_unbox = TRUE),\n        archive = upload_file(filename)\n    )\n)\n```\n\n:::",
        "operationId": "uploadContentBundle",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "URL of a gzip compressed tar archive.",
            "in": "query",
            "name": "url",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The Base64-encoded MD5 sum of the archive file.",
            "in": "header",
            "name": "X-Content-Checksum",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/gzip": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            },
            "application/x-gzip": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            },
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "archive": {
                    "description": "A gzip compressed tar archive file.",
                    "format": "binary",
                    "type": "string"
                  },
                  "metadata": {
                    "description": "Optional JSON object containing metadata about this bundle.",
                    "type": "string"
                  },
                  "url": {
                    "description": "URL of a gzip compressed tar archive. Either archive or url must be provided.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bundle"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create a bundle by uploading an archive",
        "tags": [
          "Bundles"
        ]
      }
    },
    "/v1/content/{guid}/bundles/{id}": {
      "delete": {
        "description": "Delete a specific bundle.\n\nBundle deletion is permitted by authorized clients with collaborator\nrights and administrators.\n\nOn-disk data and database records are removed as a consequence of this\ncall. Deletion is not allowed while the bundle is still active.",
        "operationId": "deleteBundle",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete bundle",
        "tags": [
          "Bundles"
        ]
      },
      "get": {
        "description": "Get detailed information about a specific bundle.\n\nBundle reads are permitted by all users with viewership rights to the\ncontent item and administrators. Information about the target environment\nis populated for users with \"publisher\" and \"administrator\" role.",
        "operationId": "getBundle",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bundle"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get bundle details",
        "tags": [
          "Bundles"
        ]
      }
    },
    "/v1/content/{guid}/bundles/{id}/download": {
      "get": {
        "description": "Download a deployment bundle.\n\nBundle download is permitted by authorized clients with collaborator\nrights.\n\nDownload a `gzip` compressed `tar` archive (`.tar.gz`) containing the\ncode/data from one deployment of the associated content.\n\nSee the [POST /v1/content/{guid}/bundles](#uploadContentBundle) endpoint for details about\nthe construction of bundle archives.",
        "operationId": "downloadBundle",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Download the bundle archive",
        "tags": [
          "Bundles"
        ]
      }
    },
    "/v1/content": {
      "get": {
        "description": "List all content items visible to the requesting user.\n\nAuthenticated access from a user is required. If an \"administrator\"\nrole is used, then all content items will be returned regardless of\nthe visibility to the requesting user.\n\nInformation about the target environment is populated for users with\n\"publisher\" and \"administrator\" role; it is suppressed for viewers.",
        "operationId": "getContents",
        "parameters": [
          {
            "description": "The content name specified when the content was created.\nContent names are unique within the owning user's account, so a\nrequest that specifies a non-empty name and owner_guid will return\nat most one content item.",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The unique identifier of the user who owns the content.",
            "in": "query",
            "name": "owner_guid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma-separated set of values indicating additional details to include in the response.\n\n* `tags`: Populates a `tags` field for each returned content item\ncontaining the tags associated with this content item.\n* `owner`: Populates an `owner` field for each returned content\nitem with basic details about the content owner.\n* `vanity_url`: Populates the `vanity_url` field for each returned\ncontent item if the content has an associated custom vanity URL.\n* `bookmarked`: Populates a `bookmarked` field for each returned\ncontent item indicating whether the requesting user has bookmarked\nthe content.\n* `schedule`: Populates a `schedules` field for each returned\ncontent item with the list of schedules associated with the\ncontent, including variant details and last run information.\n",
            "in": "query",
            "name": "include",
            "schema": {
              "enum": [
                "tags",
                "owner",
                "vanity_url",
                "bookmarked",
                "schedule"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Content"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List content items",
        "tags": [
          "Content"
        ]
      },
      "post": {
        "description": "Create a new content item.",
        "operationId": "createContent",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateContentInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Content"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create content item",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}": {
      "delete": {
        "description": "Delete a specific content item. On-disk data and database records are removed.",
        "operationId": "deleteContent",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete content",
        "tags": [
          "Content"
        ]
      },
      "get": {
        "description": "Get detailed information about a specific content item.\n\nUnauthenticated clients are rejected regardless of the content access\ntype.\n\nAuthorized, non-administrator clients without viewership rights to\nthis content are rejected.\n\nAuthorized, administrator clients without viewership rights are\npermitted to obtain information about this content. The computed\n`app_role` for these users will be `none`, representing that these\nusers cannot view the content itself.\n\nAuthorized clients with viewership (or collaborator) rights are\npermitted to obtain information about this content. The computed\n`app_role` for these users will reflect the level of access.\n\nInformation about the target environment is populated for users with\n\"publisher\" and \"administrator\" role; it is suppressed for viewers.",
        "operationId": "getContent",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Comma-separated set of values indicating additional details to include in the response.\n\n* `tags`: Populates a `tags` field for each returned content item\ncontaining the tags associated with this content item.\n* `owner`: Populates an `owner` field for each returned content\nitem with basic details about the content owner.\n* `vanity_url`: Populates the `vanity_url` field for each returned\ncontent item if the content has an associated custom vanity URL.\n* `bookmarked`: Populates a `bookmarked` field for each returned\ncontent item indicating whether the requesting user has bookmarked\nthe content.\n* `schedule`: Populates a `schedules` field for each returned\ncontent item with the list of schedules associated with the\ncontent, including variant details and last run information.\n",
            "in": "query",
            "name": "include",
            "schema": {
              "enum": [
                "tags",
                "owner",
                "vanity_url",
                "bookmarked",
                "schedule"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Content"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get content details",
        "tags": [
          "Content"
        ]
      },
      "patch": {
        "description": "Update fields for a specific content item.\n\nAuthenticated access from a user having either \"publisher\" or\n\"administrator\" role is allowed. All other clients are rejected.\n\nAuthorized clients with collaborator or administrator rights are\npermitted to modify content item fields.\n\nAdministrators can reassign content ownership by updating\nthe `owner_guid` field. The new owner must have publisher or\nadministrator rights.",
        "operationId": "updateContent",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContentInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Content"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Update content",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/access-test": {
      "post": {
        "description": "Trigger a Public Access Content Verification test for this content item.\n\nChecks if a content item is available and reachable on the public\ninternet. If not, the result includes a message to help with\ntroubleshooting. The verification process is identical to the test\nConnect performs automatically for all Public Access Content, but the\nAPI can provide more details about verification failures or\nimmediately retest an item instead of waiting for the automatic\nverification to run.\n\nSee the [Admin Guide](../admin/public-access)\nand [User Guide](../user/content-settings/index.md#public-access-content-verification)\nfor more information about Public Access Content Verification.\n\nTo use this API, you must have a license with the Public Access\nentitlement, the content item must be interactive (e.g. Shiny\napplications, FastAPI APIs), and the content item must be configured\nwith the \"Anyone - no login required\"/`all` access type.",
        "operationId": "testPublicAccess",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTestResult"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Triggers a Public Access Content Verification test",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/build": {
      "post": {
        "description": "Build (restore) a deployment bundle.\n\nBuild requests spawn an asynchronous task to make your previously\nuploaded data ready for rendering or running. Content will have its\nenvironment reconstructed, e.g. by using the packrat R package to\ninstall R package dependencies, but documents will not be re-rendered.\n\nBuilding is intended to facilitate server changes or migrations that\nmay require re-installing R packages or other dependencies.\n\nBy default, the built bundle becomes the active bundle for the content.\nYou can prevent this by setting `activate: false` in the request body.\nThis allows you to build a bundle without making it the active version.\n\nThe response from this endpoint includes a task identifier. Poll the\n[GET /v1/tasks/{id}](#getTask) endpoint to track the progress of this task.",
        "operationId": "buildContentBundle",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContentBuildInstructions"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentBuildTask"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Build deployment bundle",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/deploy": {
      "post": {
        "description": "Deploy (activate) a deployment bundle.\n\nDeployment requests spawn an asynchronous task to make your previously\nuploaded data available for serving. The workflow applied to the\nbundled files varies depending on the type of content.\n\nExecutable content has its environment reconstructed. This includes\nusing the packrat R package to install R package dependencies.\n\nDocuments (R Markdown reports, Jupyter Notebooks, static Quarto content)\nare rendered and the result made available.\n\nInteractive content (applications and APIs) are available to be\nlaunched on the next client visit.\n\nThe deployment workflow for static content (HTML, plots) is\nlighter-weight than for executable content. File time-stamps are\nupdated to ensure that browsers do not cache previous results and\ninstead see the newly promoted files.\n\nBy default, the deployed bundle becomes the active bundle for the content.\nYou can prevent this by setting `activate: false` in the request body.\nThis allows you to deploy a bundle without making it the active version.\n\nThe response from this endpoint includes a task identifier. Poll the\n[GET /v1/tasks/{id}](#getTask) endpoint to track the progress of this task.",
        "operationId": "deployContentBundle",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContentDeploymentInstructions"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentDeploymentTask"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Deploy deployment bundle",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/environment": {
      "get": {
        "description": "Get the names of the environment variables defined for this content.",
        "operationId": "getContentEnvironment",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentVariableNames"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get environment variables",
        "tags": [
          "Content"
        ]
      },
      "patch": {
        "description": "Add, change, or delete environment variables for this content.",
        "operationId": "updateContentEnvironment",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnvironmentVariables"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentVariableNames"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Update environment variables",
        "tags": [
          "Content"
        ]
      },
      "put": {
        "description": "Set the environment for this content item. Any existing environment variables will be removed.",
        "operationId": "setContentEnvironment",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnvironmentVariables"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentVariableNames"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Set all environment variables",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/lockfile": {
      "get": {
        "description": "Get the Python lockfile (`requirements.txt.lock`) for a content item's\nactive bundle.\n\nThis endpoint returns the lockfile that describes the exact Python\npackages installed in Connect's managed Python environment for this\ncontent. The file can be used to recreate the same Python environment\nelsewhere.\n\nThe content must have a managed Python environment\n(`py_environment_management` enabled). Returns an error if the content\ndoes not use Python or does not have environment management enabled.",
        "operationId": "getContentLockfile",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get Python lockfile",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/oauth/integrations/associations": {
      "get": {
        "description": "List all OAuth integration associations for this content item.",
        "operationId": "listContentOAuthIntegrationAssociations",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthIntegrationAssociationOutput"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List all OAuth integration associations for this content item",
        "tags": [
          "Content"
        ]
      },
      "put": {
        "description": "Replaces any existing associations for a piece of content with the given list.",
        "operationId": "setOAuthIntegrationAssociations",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthIntegrationAssociationInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Set all OAuth integration associations",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/packages": {
      "get": {
        "description": "Get the names and versions of all R and Python packages\ninstalled for this content. Returned packages are sorted\nby language and then by package name.\n\nIf the content is not yet deployed, an HTTP 204 No Content\nresponse is returned. If the content environment is being\nrebuilt, package information from before the rebuild\nwill be returned.\n\nNote that a content item may include packages that are not explicitly requested\nin the `manifest.json` or `requirements.txt` file used during deployment. These include\npackages that are:\n- Installed as dependencies of the explicitly requested packages,\n- Installed by Connect in order to render or serve the content item,\n- Installed in the base Python installation and inherited by the content item, or\n- Listed under [`R.External`](../admin/appendix/configuration/index.md#R.External) in the Connect configuration file.",
        "operationId": "getContentPackages",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentPackages"
                }
              }
            },
            "description": "Successful response."
          },
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get package dependencies",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/render": {
      "post": {
        "description": "Render a specific content item.\n\nRender requests spawn an asynchronous task to re-render static reports\n(R Markdown documents, Jupyter Notebooks, or Quarto documents). The\nrendered output becomes the active rendering for the variant.\n\nBy default, the default variant is rendered. You can render a specific\nvariant by providing its key in the request body.\n\nUsers with \"editor\" or higher role on the content can render any public\nvariant, and private variants they own. Users with \"viewer\" role can\nonly render ad-hoc variants when the\n[`Applications.ViewerOnDemandReports`](../admin/appendix/configuration/index.md#Applications.ViewerOnDemandReports) server setting is enabled.\n\nThe response from this endpoint includes a task identifier. Poll the\n[GET /v1/tasks/{id}](#getTask) endpoint to track the progress of this task.",
        "operationId": "renderContent",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContentRenderInstructions"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentRenderTask"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Render content",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/repository": {
      "delete": {
        "description": "Remove the Git repository location associated with this content.",
        "operationId": "deleteContentRepository",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Remove Git repository location",
        "tags": [
          "Content"
        ]
      },
      "get": {
        "description": "Get the Git repository location associated with this content.",
        "operationId": "getContentRepository",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GitLocationOutput"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get Git repository",
        "tags": [
          "Content"
        ]
      },
      "patch": {
        "description": "Update the Git repository location associated with this content.",
        "operationId": "updateContentRepository",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GitLocationInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GitLocationOutput"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Update Git repository",
        "tags": [
          "Content"
        ]
      },
      "put": {
        "description": "Associate a Git repository location with this content.",
        "operationId": "setContentRepository",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GitLocationInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GitLocationOutput"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Set Git repository",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/thumbnail": {
      "delete": {
        "description": "Delete the thumbnail associated with a content item.",
        "operationId": "deleteContentThumbnail",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete a content thumbnail",
        "tags": [
          "Content"
        ]
      },
      "put": {
        "description": "Set a content thumbnail.\n\nAssociate a content item with an image that is used as its thumbnail\nin the Connect dashboard content listing and settings view.\n\n#### Requesting a thumbnail\n\nThe thumbnail is requested by appending a `__thumbnail__` path segment\nto the default content URL or a content vanity URL.\n\nFor example, the thumbnail for a content item having the GUID\n`25438b83-ea6d-4839-ae8e-53c52ac5f9ce` and the vanity URL\n`/daily-summary/` is served at the URLs:\n\n* `https://connect.company.com/content/25438b83-ea6d-4839-ae8e-53c52ac5f9ce/__thumbnail__`\n* `https://connect.company.com/daily-summary/__thumbnail__`\n\nThumbnail requests are subject to content access restrictions. An HTTP\n204 No Content is served when there is no thumbnail. Thumbnails are\nnot served for incomplete content.",
        "operationId": "setContentThumbnail",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Set a content thumbnail",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/search/content": {
      "get": {
        "description": "This endpoint searches for content items, using a search query format\nthat allows for both search terms and filters. The search terms are used\nto find content items that have matching terms in the title,\ndescription, etc, while the filters are used to filter the search\nresults by specific fields (such as `owner` or content `type`).\n\nAuthenticated access is required, and only content items visible to the\nrequesting user are returned. If an Administrator role is used,\nthen all content items are returned regardless of the visibility to\nthe requesting user.\n\n#### Search query\n\nThe search query is a string that includes both search terms and\nfilters. Any text in the search query that is not a supported filter\nis treated as a search term, and those search terms are matched\nagainst any of: `name`, `title`, or `description`. Note that the search\nterms are case-insensitive, and all terms must be present in a content\nitem for it to be included in the search results.\n\n##### Filters\n\nFilters are specified as colon-delimited key-value pairs, containing one\nor more values separated by commas. If any of the values within a filter\ncontain a space or comma, you should use quotes around the value. Example:\n\n```\nmyterm tag:tagwithoutspace,\"tag with space\"\n```\n\nFor filters that expect a boolean value (like `published:`, `locked:`,\nand `bookmarked:`), you can use the shorthand `is:\u003cfield\u003e` as an\nequivalent to `\u003cfield\u003e:true`. Similarly, you can use `not:\u003cfield\u003e` as an\nequivalent to `\u003cfield\u003e:false`. Examples:\n\n```\nis:published\n```\n\n```\nnot:locked\n```\n\n```\nis:bookmarked\n```\n\nAdditionally, you can negate a filter or search term by prefixing it\nwith a `-`. For example, `-owner:@me` will exclude content items\nowned by the requesting user.\n\nThe following filters are supported:\n\n`owner:\u003cusername\u003e[,\u003cadditional-usernames\u003e,...]`: Only return content\nitems that have the specified owner by username. If more than one\nusername is provided, content items owned by ANY of the specified owners\nwill be included. Note that usernames are not case sensitive.\n\n`type:\u003ccontent-type\u003e[,\u003cadditional-content-types\u003e,...]`: Only return\ncontent items that have the specified content type. If more than one\ntype is provided, content items with ANY of the specified types will be\nincluded. See `app_mode` for a list of supported types and their\ndescription.\n\n`tag:\u003ctag-name\u003e[,\u003cadditional-tag-names\u003e,...]`: Only return content\nitems that have been tagged with the specified tag name. If more than\none tag name is provided, content items with *any* of the specified tag\nnames are included. Additionally, since tags are hierarchical, they\ndo not necessarily have unique names. For example, you may have one\n`docs` tag that is nested under a `finance` tag, and a separate `docs`\ntag that is nested under an `engineering` tag. If you specify\n`tag:docs`, it will match content items with either of those `docs`\ntags. If you want a specific tag, you can specify the path to the tag,\ndelimited by `/`. In this case, `tag:finance/docs` would only match the\n`docs` tag that is nested directly under the `finance` tag.\n\n`published:\u003ctrue|false\u003e` - Only return content items that have been\npublished, which means that a bundle has been uploaded for the content\nitem.\n\n`locked:\u003ctrue|false\u003e` - Only return content items that have been locked.\n\n`bookmarked:\u003ctrue|false\u003e` - Only return content items that have been\nbookmarked by the requesting user.\n\n`scheduled:\u003ctrue|false\u003e` - Only return content items that have been\nscheduled to run on a recurring basis.\n\n`python:\u003cversion\u003e` - Only return content items that use a specific Python\nversion in their runtime environment. The version can be specified as\n`3`, `3.11`, or `3.11.5`. You can find content items that use\nany version of Python by specifying `is:python`.\n\n`r:\u003cversion\u003e` - Only return content items that use a specific R\nversion in their runtime environment. The version can be specified as\n`4`, `4.3`, or `4.3.1`. You can find content items that use\nany version of R by specifying `is:r`.\n\n`package:\u003cname\u003e[version]` - Only return content items that have a\nspecific package in their runtime environment. If a version specification\nis provided, only return content items that have a matching\nversion for the package. Examples:\n\n- `flask`: Return items that include the `flask` package.\n- `flask==2.3.4`: Return items that include `flask` version `2.3.4`. Versions\n  ending in `.0` are equivalent to versions without the `.0`.\n- `flask==2.3.*`: Return items that include any `flask` version starting with `2.3`.\n- `flask\u003e=2.3`: Return items that include `flask` version `2.3` or newer.\n- Similarly, you can use `\u003c=`, `\u003c`, `\u003e`, and `!=`. You can combine criteria\n  with commas, such as `\"flask\u003e=2.3,\u003c3\"`; those must be enclosed in double-quotes.\n  Alternatively, you can use the `package` filter multiple times:\n  `package:flask\u003e=2.3 package:flask\u003c3`.\n- `flask~=2.3.4`: Return items that include a  `flask` version compatible with `2.3.4`;\n  that is, a `2.3.x` version that is `\u003e=2.3.4`.\n- `flask===2.3`: Return items that include a  `flask` version that exactly matches `2.3`.\n  Version `2.3.0` would not match this filter.\n\nNote that a content item may include packages that are not explicitly requested\nin the `manifest.json` or `requirements.txt` file used during deployment. These include\npackages that are:\n\n- Installed as dependencies of the explicitly requested packages,\n- Installed by Connect in order to render or serve the content item,\n- Installed in the base Python installation and inherited by the content item, or\n- Listed under [`R.External`](../admin/appendix/configuration/index.md#R.External) in the Connect configuration file.\n\n`image:\u003cimage_name\u003e` - Only return content items that use a specific image in\ntheir execution environment. This filter performs partial string matching on the\nimage name in either the `image_name` or `default_image_name` content fields.\n\n#### Validation warnings\n\nWhen a filter value is invalid (for example, `published:bogus`\ninstead of `published:true`), the invalid filter is ignored and\nthe response includes a `warnings` array with messages explaining\nwhich filters were not applied and why. Results are returned as\nif the invalid filter was not specified.\n\n#### Pagination\n\nThis endpoint uses offset pagination. Requests can include\nquery-string parameters for `page_number` and `page_size` to\nfetch different pages of results.",
        "operationId": "searchContent",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma-separated set of values indicating additional details to include in the response.\n\n* `tags`: Populates a `tags` field for each returned content item\ncontaining the tags associated with this content item.\n* `owner`: Populates an `owner` field for each returned content\nitem with basic details about the content owner.\n* `vanity_url`: Populates the `vanity_url` field for each returned\ncontent item if the content has an associated custom vanity URL.\n* `bookmarked`: Populates a `bookmarked` field for each returned\ncontent item indicating whether the requesting user has bookmarked\nthe content.\n* `schedule`: Populates a `schedules` field for each returned\ncontent item with the list of schedules associated with the\ncontent, including variant details and last run information.\n",
            "in": "query",
            "name": "include",
            "schema": {
              "enum": [
                "tags",
                "owner",
                "vanity_url",
                "bookmarked",
                "schedule"
              ],
              "type": "string"
            }
          },
          {
            "description": "The page number to return.",
            "in": "query",
            "name": "page_number",
            "schema": {
              "default": 1,
              "type": "integer"
            }
          },
          {
            "description": "The number of items per page.",
            "in": "query",
            "name": "page_size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "description": "The field to sort by.",
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The sort order: asc or desc.",
            "in": "query",
            "name": "order",
            "schema": {
              "enum": [
                "asc",
                "desc"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentResults"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Search for content items",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/search/variants": {
      "get": {
        "description": "This endpoint searches for variants (report outputs).\nVariants are created when reports are rendered. A parameterized report\nmay have multiple variants when it is rendered with different parameter\nvalues.\n\nAuthenticated access is required. Administrators can see public\nvariants, and their own private variants, for all content, while other\nusers can only see variants for content they own or have permissions to\naccess.\n\n#### Variant visibility\n\nIn addition to content-level permissions, variants have their own\nvisibility settings:\n\n- **Public variants**: Visible to all users who can access the parent content\n- **Private variants**: Only visible to the variant owner, regardless of\n  content permissions\n\nADHOC variants (temporary renders) are never returned in search results.\n\n#### Pagination\n\nThis endpoint uses offset pagination. Requests can include\nquery-string parameters for `page_number` and `page_size` to\nfetch different pages of results.",
        "operationId": "searchVariants",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The page number to return.",
            "in": "query",
            "name": "page_number",
            "schema": {
              "default": 1,
              "type": "integer"
            }
          },
          {
            "description": "The number of items per page.",
            "in": "query",
            "name": "page_size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "description": "The field to sort by.",
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The sort order: asc or desc.",
            "in": "query",
            "name": "order",
            "schema": {
              "enum": [
                "asc",
                "desc"
              ],
              "type": "string"
            }
          },
          {
            "description": "A comma-separated list of additional information to include in the response.\n\n* `schedule`: Include schedule information for each variant, including\nthe schedule configuration and last run details.",
            "in": "query",
            "name": "include",
            "schema": {
              "enum": [
                "schedule"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VariantResults"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Search for variants",
        "tags": [
          "Content"
        ]
      }
    },
    "/v1/content/{guid}/permissions": {
      "get": {
        "description": "List the permissions for this content item.\nThere will be one permission item for each user or group\nlisted in the ACL for this content item.",
        "operationId": "listContentPermissions",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Permission"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List permissions",
        "tags": [
          "Content Permissions"
        ]
      },
      "post": {
        "description": "Upsert a user or group to the permissions for this content item.",
        "operationId": "addContentPermission",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PermissionInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            },
            "description": "Successful response."
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Add or update permission",
        "tags": [
          "Content Permissions"
        ]
      }
    },
    "/v1/content/{guid}/permissions/{id}": {
      "delete": {
        "description": "Delete a single permission entry for the content item, given its ID.",
        "operationId": "deleteContentPermission",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete permission",
        "tags": [
          "Content Permissions"
        ]
      },
      "get": {
        "description": "Get a single permission entry for the content item, given its ID.",
        "operationId": "getContentPermission",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get permission",
        "tags": [
          "Content Permissions"
        ]
      },
      "put": {
        "description": "Update a permission entry for this content item.",
        "operationId": "updateContentPermission",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PermissionInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Update permission",
        "tags": [
          "Content Permissions"
        ]
      }
    },
    "/v1/system/documentation": {
      "delete": {
        "description": "Delete the custom documentation for your Posit Connect server.\nThis action is only available to administrators.\nReturns a 204 No Content response if the documentation was successfully deleted.\nReturns a 404 Not Found error if no custom documentation is configured.",
        "operationId": "deleteCustomDocumentation",
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete custom documentation",
        "tags": [
          "Custom Documentation"
        ]
      },
      "get": {
        "description": "Retrieve the custom documentation for your Posit Connect server, formatted using Markdown.\nReturns a 404 Not Found error if no custom documentation is configured.",
        "operationId": "getCustomDocumentation",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomDocumentationResult"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get custom documentation",
        "tags": [
          "Custom Documentation"
        ]
      },
      "post": {
        "description": "Set the custom documentation for your Posit Connect server, formatted using Markdown.\nThe maximum length for the provided documentation is 500000 characters.\nThis action is only available to administrators.\nReturns a 204 No Content response if the documentation was successfully set.",
        "operationId": "setCustomDocumentation",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomDocumentationInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Set custom documentation",
        "tags": [
          "Custom Documentation"
        ]
      }
    },
    "/v1/environments/{guid}/permissions": {
      "get": {
        "description": "List the users and groups that have access to this execution environment.\nYou must have administrator privileges to perform this action.",
        "operationId": "listEnvironmentPermissions",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EnvironmentPermission"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List permissions",
        "tags": [
          "Environment Permissions"
        ]
      },
      "post": {
        "description": "Grants a user or group access to this execution environment.\nYou must have administrator privileges to perform this action.",
        "operationId": "addEnvironmentPermission",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnvironmentPermissionInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentPermission"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Add permission",
        "tags": [
          "Environment Permissions"
        ]
      }
    },
    "/v1/environments/{guid}/permissions/{permission_guid}": {
      "delete": {
        "description": "Removes access to this execution environment from a user or group.\nYou must have administrator privileges to perform this action.",
        "operationId": "deleteEnvironmentPermission",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "permission_guid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete permission",
        "tags": [
          "Environment Permissions"
        ]
      },
      "get": {
        "description": "Get a single permission entry for the execution environment, given its GUID.\nYou must have administrator privileges to perform this action.",
        "operationId": "getEnvironmentPermission",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "permission_guid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentPermission"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get permission",
        "tags": [
          "Environment Permissions"
        ]
      }
    },
    "/v1/environments": {
      "get": {
        "description": "List all execution environments available to Posit Connect.\n\nYou must have administrator or publisher privileges to perform this action.",
        "operationId": "listEnvironments",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Environment"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List execution environments",
        "tags": [
          "Environments"
        ]
      },
      "post": {
        "description": "Create a new execution environment.\n\nYou must have administrator privileges to perform this action.",
        "operationId": "createEnvironment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEnvironmentInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create execution environment",
        "tags": [
          "Environments"
        ]
      }
    },
    "/v1/environments/{guid}": {
      "delete": {
        "description": "Delete a specific execution environment.\n\nYou must have administrator privileges to perform this action.\n\nEnvironments managed by a configuration file cannot be deleted via the API.",
        "operationId": "deleteEnvironment",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete an execution environment",
        "tags": [
          "Environments"
        ]
      },
      "get": {
        "description": "Get detailed information about a specific execution environment.\n\nYou must have administrator or publisher privileges to perform this action.",
        "operationId": "getEnvironment",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get execution environment details",
        "tags": [
          "Environments"
        ]
      },
      "put": {
        "description": "Update a specific execution environment.\n\nYou must have administrator privileges to perform this action.\n\nEnvironments managed by a configuration file cannot be updated via the API.",
        "operationId": "updateEnvironment",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateEnvironmentInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Update an execution environment",
        "tags": [
          "Environments"
        ]
      }
    },
    "/v1/examples": {
      "get": {
        "deprecated": true,
        "description": "List all examples.\n\n**This endpoint is deprecated.**",
        "operationId": "getExamples",
        "responses": {
          "200": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List examples",
        "tags": [
          "Examples"
        ]
      }
    },
    "/v1/examples/{name}/thumbnail": {
      "get": {
        "deprecated": true,
        "description": "Download the thumbnail image for the named example.\n\n**This endpoint is deprecated.**",
        "operationId": "getExampleThumbnail",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get example thumbnail",
        "tags": [
          "Examples"
        ]
      }
    },
    "/v1/examples/{name}/zip": {
      "get": {
        "deprecated": true,
        "description": "Download a ZIP archive containing the named example.\n\n**This endpoint is deprecated.**",
        "operationId": "getExampleZip",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Download example",
        "tags": [
          "Examples"
        ]
      }
    },
    "/v1/feature-usage": {
      "get": {
        "description": "This endpoint returns details about all tracked features.\nThis endpoint requires publisher access.\nThe response is not paginated. All flags are returned.",
        "operationId": "listFeatureUsage",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Feature"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Provides details about all tracked features.",
        "tags": [
          "Feature Usage"
        ]
      }
    },
    "/v1/experimental/groups/{guid}/content": {
      "get": {
        "description": "This endpoint takes a group GUID and returns a list of content items with access control lists\nthat the given group is listed on. This includes content accessible only by specific users\nor groups that include the given group, as well as content accessible by anyone or only\nlogged-in users that includes the given group as a collaborator.",
        "operationId": "getGroupOwnershipExperimental",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/GroupOwnershipContent"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List content for which a group with given GUID has access to",
        "tags": [
          "Groups"
        ]
      }
    },
    "/v1/groups": {
      "get": {
        "description": "This endpoint lists or searches for local groups.\n\n- For a `prefix` search, results are sorted based on\nsimilarity to the `prefix`. A `prefix` search ignores\n`asc_order`.\n- The `prefix` can also be an exact match for the\ngroup's DN (for LDAP) or the auth provider's unique ID\nfor the group, if any.\n- For a non-`prefix` search, results are sorted by group name.\n\nThis endpoint is available only when groups are enabled\nin Posit Connect and it will return an error otherwise.\n\nThis endpoint uses offset pagination. Requests can include\nquery-string parameters for `page_number` and `page_size` to\nfetch different pages of results.",
        "operationId": "getGroups",
        "parameters": [
          {
            "in": "query",
            "name": "prefix",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The page number to return.",
            "in": "query",
            "name": "page_number",
            "schema": {
              "default": 1,
              "type": "integer"
            }
          },
          {
            "description": "The number of items per page.",
            "in": "query",
            "name": "page_size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "description": "Whether results are in ascending order.",
            "in": "query",
            "name": "asc_order",
            "schema": {
              "default": true,
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Groups"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List or search for group details",
        "tags": [
          "Groups"
        ]
      },
      "post": {
        "description": "This endpoint creates the given group.\n\n- This endpoint is available only when groups are enabled\nin Posit Connect and only for Password, PAM, OAuth2,\nSAML and Proxied authentication.\n- Publisher or administrator access is required to create\ngroups.",
        "operationId": "createGroup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create a group from caller-supplied details (Password, PAM, OAuth2, SAML, Proxied)",
        "tags": [
          "Groups"
        ]
      },
      "put": {
        "description": "This endpoint creates the given group on the Posit Connect server.\n\n- This endpoint is used only for LDAP authentication. Password,\n  PAM, SAML, OAuth2 and Proxied authentication providers should\n  use the [POST /v1/groups](#createGroup) endpoint.\n- Publisher or administrator access is required to access this\n  endpoint.\n- Group members will be automatically populated from the LDAP server.\n\n### Group Creation Workflow on LDAP\n\nThe API lets you identify an existing group in the LDAP system\nand create a corresponding group on Posit Connect. This is a\ntwo-step process:\n\n- Use the [GET /v1/groups/remote](#searchRemoteGroups) endpoint. This endpoint will return a list of potential\n  matching groups in LDAP. A group that does not exist in\n  Posit Connect will lack a `guid`. Note the `temp_ticket`\n  for the desired group.\n- Use this PUT endpoint with the `temp_ticket` to create a\n  corresponding group on Posit Connect.\n\nThe Cookbook contains a recipe on [Creating a Group Using a\nRemote Authentication Provider\n(LDAP)](../cookbook/groups/creating-a-group-using-a-remote-authentication-provider-ldap/)\nwhich demonstrates this workflow using the R and Python SDKs.",
        "operationId": "createRemoteGroup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupCreateRemoteInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create a group using details from a remote authentication provider (LDAP)",
        "tags": [
          "Groups"
        ]
      }
    },
    "/v1/groups/remote": {
      "get": {
        "description": "This endpoint is used to support operations against groups not\nmanaged by Connect, such as creating LDAP groups.\nSee [GET /v1/groups](#getGroups) for listing groups on Posit Connect.\n\nThis endpoint searches for groups on Posit Connect and on\nyour LDAP system.\n\nResults are sorted based on similarity to the `prefix`.\n\n- This endpoint can be used only by LDAP authentication and\nwill return an error otherwise.\n- Publisher or administrator access is required to access this\nendpoint.",
        "operationId": "searchRemoteGroups",
        "parameters": [
          {
            "in": "query",
            "name": "prefix",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupRemoteSearch"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Search for group details from a remote provider",
        "tags": [
          "Groups"
        ]
      }
    },
    "/v1/groups/{group_guid}/members": {
      "get": {
        "description": "This endpoint gets the group member details. Group member\nenumeration is currently not supported for LDAP.\n\n- This endpoint is available only when groups are enabled\nin Posit Connect and only for Password, PAM, OAuth2,\nSAML and Proxied authentication.\n- The `email` field is not populated for non-admins when\n[`Server.HideEmailAddresses`](../admin/appendix/configuration/index.md#Server.HideEmailAddresses) is enabled.",
        "operationId": "getGroupMembers",
        "parameters": [
          {
            "in": "path",
            "name": "group_guid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupMembers"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get group member details",
        "tags": [
          "Groups"
        ]
      },
      "post": {
        "description": "This endpoint adds a user to a group.\n\n- This endpoint is available only when groups are enabled\nin Posit Connect and only for Password, PAM, OAuth2,\nSAML and Proxied authentication. If the auth provider\nis configured to provide group membership information,\nthen it is not possible to add/remove members via this API.\n- Administrator access is required to modify a group you do\nnot own.",
        "operationId": "addGroupMember",
        "parameters": [
          {
            "in": "path",
            "name": "group_guid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupMemberAddInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Add a group member",
        "tags": [
          "Groups"
        ]
      }
    },
    "/v1/groups/{group_guid}/members/{user_guid}": {
      "delete": {
        "description": "This endpoint removes a user from a group.\n\n- This endpoint is available only when groups are enabled\nin Posit Connect and only for Password, PAM, OAuth2,\nSAML and Proxied authentication. If the auth provider\nis configured to provide group membership information,\nthen it is not possible to add/remove members via this API.\n- Administrator access is required to remove a user from a\ngroup you do not own, but no special access is needed to\nremove yourself from a group.",
        "operationId": "removeGroupMember",
        "parameters": [
          {
            "in": "path",
            "name": "group_guid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_guid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Remove a group member",
        "tags": [
          "Groups"
        ]
      }
    },
    "/v1/groups/{guid}": {
      "delete": {
        "description": "Delete the given group.\n\n- This endpoint can be used only when groups are enabled in\nPosit Connect and will return an error otherwise.\n- Administrator access is required to delete a group you do\nnot own.",
        "operationId": "deleteGroup",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete a group",
        "tags": [
          "Groups"
        ]
      },
      "get": {
        "description": "Get detailed information on a specific group.\n\nThis endpoint is available only when groups are enabled in Posit Connect.",
        "operationId": "getGroup",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get group details",
        "tags": [
          "Groups"
        ]
      },
      "patch": {
        "description": "This endpoint updates the specified fields of a group. Only fields\nincluded in the request body will be modified; omitted fields remain\nunchanged.\n\nThis endpoint requires groups to be enabled via the\n[`Authorization.UserGroups`](../admin/appendix/configuration/index.md#Authorization.UserGroups)\nsetting. Returns a 400 error if groups are disabled.\n\n### Field availability by authentication provider\n\nNot all fields can be modified with all authentication providers:\n\n| Field | Password | PAM | LDAP | SAML | OAuth2 | Proxied |\n|-------|----------|-----|------|------|--------|---------|\n| `name` | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ |\n| `owner_guid` | ✓¹ | ✓¹ | ✗ | Configurable² | Configurable² | Configurable² |\n| `gid` | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ |\n\n¹ Password and PAM groups are managed locally in Connect and require\nan owner to manage group membership. Ownership can be transferred to\nanother user but cannot be cleared.\n\n² Behavior depends on the `GroupsAutoProvision` setting. When enabled,\nowners cannot be assigned or transferred, but existing owners can be\ncleared. When disabled, owners can be assigned or transferred but not\ncleared (same as Password and PAM).\n\n### Authorization requirements\n\n| Field | Required role |\n|-------|---------------|\n| `name` | Group owner or administrator |\n| `owner_guid` | Group owner or administrator |\n| `gid` | Administrator only |\n\n**Caution**: When using SAML or OAuth2 with `GroupsAutoProvision`\nenabled but `GroupsByUniqueId` disabled, renaming a group in the\nidentity provider creates a new group in Connect. The original group\nbecomes orphaned but retains its `gid`. To transfer the `gid` to the\nnew group, either delete the old group or set its `gid` to `null`,\nthen set the `gid` on the new group.",
        "operationId": "patchGroup",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupPatchInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Update a group (partial update)",
        "tags": [
          "Groups"
        ]
      },
      "post": {
        "description": "This endpoint modifies the given group.\n\n- This endpoint is available only when groups are enabled\nin Posit Connect and only for Password, PAM, OAuth2,\nSAML and Proxied authentication.\n- Publisher or administrator access is required to modify\ngroups.",
        "operationId": "updateGroup",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Modify a group name or owner (Password, PAM, OAuth2, SAML, Proxied)",
        "tags": [
          "Groups"
        ]
      }
    },
    "/v1/instrumentation/content/hits": {
      "get": {
        "description": "This endpoint returns content usage information for all content types, also known as hits, where hits\nare individual activity events such as content visits or requests to APIs hosted on Posit Connect.\n\nThis endpoint requires administrator or publisher access. Publishers can\nquery visits data for content they own or are a collaborator on.\n\n#### Filtering of results:\n\nThere are several ways the result set can be filtered by the server before\nbeing sent back within the API response. If multiple filters are in effect,\nthey will be logically ANDed together.\n\n##### Implicit filtering\n\nIf the user calling the endpoint is a publisher, the data returned will be\nlimited to the content owned by the user.\n\n##### Time windows\n\nThis API accepts optional `from` and `to` timestamps to define a window of\ninterest.  If `from` is not specified, it is assumed to be before the earliest\nrecorded information.  If `to` is not specified, it is assumed to be \"now\".\n\nAny content hit activity that falls inclusively within the time window will be\npart of the result set.\n\n#### Responses\n\nThe response of a call will contain zero or more data records representing a hit\nby a user to a piece of content. As opposed to other instrumentation API endpoints,\nthis API is better suited to consume large amounts of unfiltered content activity records,\nto later be analysed and processed by the consumer.",
        "operationId": "getContentHits",
        "parameters": [
          {
            "in": "query",
            "name": "content_guid",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ContentHitEntry"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get all content hits",
        "tags": [
          "Instrumentation"
        ]
      }
    },
    "/v1/instrumentation/content/visits": {
      "get": {
        "description": "This endpoint returns a portion of the visit (or \"hits\") information for all\ncontent types _other than Shiny applications_. The results returned include\npaging details that can be used to navigate the information this endpoint\nreturns.\n\nThe information returned is based on data collected by Posit Connect as\nusers visit content in the dashboard or make requests to applications or APIs\nhosted on Connect.\n\n#### Important notes\n\nIn the past there were issues with how visits were recorded that caused extra\nentries to be stored under certain circumstances. These will affect analyses\nthat interpret visit counts. Entries that were recorded before issues were\naddressed are not returned by default.  If you desire these records, specify\nthe `min_data_version` filter with a value of `0` (the default value is `3`).\n\nThis endpoint requires administrator or publisher access. Publishers can\nquery visits data for content they own or are a collaborator on.\n\n#### Filtering of results:\n\nThere are several ways the result set can be filtered by the server before\nbeing sent back within the API response. If multiple filters are in effect,\nthey will be logically ANDed together.\n\n##### Implicit filtering\n\nIf the user calling the endpoint is a publisher, the data returned will be\nlimited to the content owned by the user.\n\n##### Time windows\n\nThis API accepts optional `from` and `to` timestamps to define a window of\ninterest.  If `from` is not specified, it is assumed to be before the earliest\nrecorded information.  If `to` is not specified, it is assumed to be \"now\".\n\nAny visit to content that falls inclusively within the time window will be\npart of the result set.\n\n#### Responses\n\nThe response of a call will contain zero or more data records representing a visit\nby a user to a piece of content.  No more than `limit` records will be returned.\nMultiple requests of this endpoint are typically required to retrieve the complete\nresult set from the server.  To facilitate this, each response includes a paging\nobject containing full URL links which can be requested to iteratively move forward\nor backward through multiple response pages.",
        "operationId": "getContentVisits",
        "parameters": [
          {
            "in": "query",
            "name": "content_guid",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "min_data_version",
            "schema": {
              "default": 3,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "user_agent",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "previous",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "next",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "asc_order",
            "schema": {
              "default": true,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentVisitLogs"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get content visits",
        "tags": [
          "Instrumentation"
        ]
      }
    },
    "/v1/instrumentation/shiny/usage": {
      "get": {
        "description": "This endpoint returns a portion of the Shiny application usage information,\nas well as paging details that can be used to navigate that information.\n\nThe information returned is based on data collected by Posit Connect as\nusers visit Shiny applications.  Because of how visits are detected, end\ntimes will be slightly inflated by a reconnect timeout, generally around\n15 seconds.\n\n#### Important notes\n\nPrior to the release of this API, there was an issue with how visits were\nrecorded that caused extra entries to be stored.  These will affect analyses\nthat interpret visit counts or durations.  Entries that were recorded before\nthe issue was addressed are not returned by default.  If you desire these\nrecords, specify the `min_data_version` filter with a value of 0.\n\n- Because of how visits are detected, end times will be slightly inflated by the\n  currently configured client reconnect timeout, which defaults to 15 seconds.\n  The ending time may also be affected by connect and read timeout\n  settings.\n\n  The [Shiny Application\n  Events](../admin/operational-metrics/index.md#shiny-application-events)\n  section of the Posit Connect Admin Guide has more details about\n  how these events are collected.\n- This endpoint requires administrator or publisher access. Publishers can\n  query Shiny usage data for content they own or are a collaborator on.\n\n#### Filtering of results:\n\nThere are several ways the result set can be filtered by the server before\nbeing sent back within the API response. If multiple filters are in effect,\nthey will be logically ANDed together.\n\n##### Implicit filtering\n\nIf the user calling the endpoint is a publisher, the data returned will be\nlimited to those applications owned by the user.\n\n##### Time windows\n\nThis API accepts optional `from` and `to` timestamps to define a window of\ninterest.  If `from` is not specified, it is assumed to be before the earliest\nrecorded information.  If `to` is not specified, it is assumed to be \"now\".\n\nAny visit to content that falls inclusively within the time window will be\npart of the result set.\n\n#### Responses\n\nThe response of a call will contain zero or more data records representing a session\nby a user of a Shiny application.  No more than `limit` records will be returned.\nMultiple requests of this endpoint are typically required to retrieve the complete\nresult set from the server.  To facilitate this, each response includes a paging\nobject containing full URL links which can be requested to iteratively move forward\nor backward through multiple response pages.",
        "operationId": "getShinyAppUsage",
        "parameters": [
          {
            "in": "query",
            "name": "content_guid",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "min_data_version",
            "schema": {
              "default": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "previous",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "next",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "asc_order",
            "schema": {
              "default": true,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShinyAppUsageLogs"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get Shiny app usage",
        "tags": [
          "Instrumentation"
        ]
      }
    },
    "/v1/content/{guid}/jobs": {
      "get": {
        "description": "Get the list of jobs for a given piece of content.\nThis action is permitted for content owners, users with collaborator rights, and administrators.",
        "operationId": "getJobs",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Job"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get jobs",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/v1/content/{guid}/jobs/{key}": {
      "delete": {
        "description": "Request to register an order to kill a specific job.\nThis action is permitted for content owners, users with collaborator rights, and administrators.",
        "operationId": "killJob",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KillJobOrder"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Register job kill order",
        "tags": [
          "Jobs"
        ]
      },
      "get": {
        "description": "Get a job for a given piece of content by key.\nThis action is permitted for content owners, users with collaborator rights, and administrators.",
        "operationId": "getJob",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get job",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/v1/content/{guid}/jobs/{key}/download": {
      "get": {
        "description": "Download a content job log file.\nThis action is permitted for content owners, users with collaborator rights, and administrators.",
        "operationId": "jobDownloadLog",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "false \"The name of the file to retrieve\"",
            "in": "query",
            "name": "filename",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Download job log file",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/v1/content/{guid}/jobs/{key}/error": {
      "get": {
        "description": "Get the primary error for a job (if one exists).\nThis action is permitted for content owners, users with collaborator rights, and administrators.",
        "operationId": "jobError",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoggedError"
                }
              }
            },
            "description": "Successful response."
          },
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get job error",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/v1/content/{guid}/jobs/{key}/log": {
      "get": {
        "description": "Get the log output for a given job.\nThis action is permitted for content owners, users with collaborator rights, and administrators.",
        "operationId": "jobLogs",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "false \"The maximum number of log lines to return\"",
            "in": "query",
            "name": "maxLogLines",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogEntries"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get job log",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/v1/content/{guid}/jobs/{key}/metrics": {
      "get": {
        "description": "Get resource usage metrics collected for a specific job.\n\nReturns JSON data containing CPU, memory, and connection metrics sampled\nduring job execution. The metrics are only available when per-content\nmetrics collection is enabled for the content item.\n\nThis action is permitted for content owners, users with collaborator rights,\nand administrators.",
        "operationId": "getJobMetrics",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobMetrics"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get job metrics",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/v1/content/{guid}/jobs/{key}/tail": {
      "get": {
        "description": "Actively tail the log output for a given job.\nThis action is permitted for content owners, users with collaborator rights, and administrators.",
        "operationId": "jobTailLog",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogEntry"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Tail job log",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/v1/experimental/jobs/summary": {
      "get": {
        "description": "Get aggregated job statistics for scheduled content.\n\nReturns total counts of running, waiting, succeeded, and failed scheduled jobs, plus a\ntime-series histogram of job outcomes bucketed by time.\n\nThis endpoint includes **only scheduled jobs**. On-demand executions\n(ad-hoc deployments, manual runs) are excluded. This provides statistics\nspecifically for scheduled content execution.\n\n**Authorization:**\n\n- **Administrators** see statistics for all content system-wide\n- **Publishers** see statistics only for content they own or collaborate on (editor role or higher)\n- **Viewers** are denied access (403 Forbidden)\n\nThe time bucketing strategy automatically adjusts based on the time range:\n\n- Range \u003c 2 hours → 5-minute buckets\n- Range \u003c 12 hours → 30-minute buckets\n- Range \u003c 2 days → 1-hour buckets\n- Range \u003c 10 days → 6-hour buckets\n- Range \u003c 60 days → 1-day buckets\n- Range \u003c 180 days → 7-day buckets\n- Range \u003e= 180 days → 30-day buckets\n\nIf no time range is specified, statistics cover all jobs in the database.",
        "operationId": "getJobsSummary",
        "parameters": [
          {
            "description": "false \"Include only jobs with start_time at or after this timestamp (RFC3339)\"",
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "false \"Include only jobs with start_time at or before this timestamp (RFC3339)\"",
            "in": "query",
            "name": "to",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobSummary"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get aggregated job statistics for scheduled content",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/v1/oauth/templates": {
      "get": {
        "description": "List OAuth templates available to Posit Connect.\nYou must have administrator or publisher privileges to perform this action.",
        "operationId": "listOAuthTemplates",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OAuthTemplate"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List OAuth templates",
        "tags": [
          "OAuth Integration Templates"
        ]
      }
    },
    "/v1/oauth/templates/{key}": {
      "get": {
        "description": "Get information about a specific OAuth template.\nYou must have administrator or publisher privileges to perform this action.",
        "operationId": "getOAuthTemplate",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthTemplate"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get OAuth template details",
        "tags": [
          "OAuth Integration Templates"
        ]
      }
    },
    "/v1/oauth/integrations": {
      "get": {
        "description": "List all OAuth integrations available to Posit Connect.\nYou must have administrator or publisher privileges to perform this action.",
        "operationId": "listOAuthIntegrations",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OAuthIntegration"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List OAuth integrations",
        "tags": [
          "OAuth Integrations"
        ]
      },
      "post": {
        "description": "Create a new OAuth integration.\nYou must have administrator privileges to perform this action.",
        "operationId": "createOAuthIntegration",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthIntegrationInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthIntegration"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires payment."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create an OAuth integration",
        "tags": [
          "OAuth Integrations"
        ]
      }
    },
    "/v1/oauth/integrations/credentials": {
      "post": {
        "description": "This endpoint facilitates an [OAuth Token Exchange](https://datatracker.ietf.org/doc/html/rfc8693) by\nexchanging a Connect-provided credential for OAuth credentials.\n\nThere are several types of OAuth token exchanges supported by this endpoint. It allows content\nowners to exchange the viewer's Connect credentials for the viewer's OAuth credentials, and it allows executing content\nto exchange its own Connect credentials for the OAuth credentials associated with a service account.\n\nThis endpoint can only be called _from content that is running on Posit Connect_ because the Connect-provided\ncredentials required by the endpoint are only available in that context. See the `subject_token` property for details.\n\nIn the case of a *Viewer credential exchange*, this endpoint requires that the content viewer first perform an OAuth\nlogin by visiting the login endpoint of the OAuth integration in their browser.\nThe login endpoint is located at `__oauth__/integrations/:guid/login`.\n\nOnce the viewer has successfully initialized an OAuth session for the OAuth integration by visiting the login endpoint,\nthe content can then exchange the viewer's `user-session-token` for the viewer's OAuth credentials.\n\nOAuth credential refresh is handled automatically by Connect. Repeated requests to this endpoint will return\nthe same OAuth credentials until they expire. When the OAuth credentials expire, the next request to this endpoint\nwill return a refreshed set of OAuth credentials.\n\nYou must have administrator or publisher privileges to perform this action.\nAdditionally, the requester _must_ be owner of the content where the credential exchange request originated.\nFinally, the user whose OAuth credentials are being requested must have viewer permissions on the content.\n\nIn the case of a *Service Account credential exchange*, this endpoint will return a fresh OAuth access token to the\nrequesting content item on every request. There is no login redirect or refresh token management. You must have administrator\nor publisher privileges to perform this action. The requester _must_ be owner of the content where the credential exchange\nrequest originated.",
        "operationId": "exchangeCredentials",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "audience": {
                    "description": "Identifies the integration for which the OAuth credentials are being requested.",
                    "type": "string"
                  },
                  "grant_type": {
                    "description": "Indicates that an OAuth Token Exchange is being requested. The value is always \"urn:ietf:params:oauth:grant-type:token-exchange\".",
                    "type": "string"
                  },
                  "requested_token_type": {
                    "description": "Identifies the type of token being requested.",
                    "type": "string"
                  },
                  "subject_token": {
                    "description": "An opaque string that is used to identify the consumer of the OAuth access token.",
                    "type": "string"
                  },
                  "subject_token_type": {
                    "description": "Identifies the type of subject_token in use.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthCredentials"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires payment."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Exchange Connect credentials for OAuth credentials",
        "tags": [
          "OAuth Integrations"
        ]
      }
    },
    "/v1/oauth/integrations/{guid}": {
      "delete": {
        "description": "Delete the OAuth integration associated with the provided guid.\nYou must have administrator privileges to perform this action.",
        "operationId": "deleteOAuthIntegration",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete an OAuth integration",
        "tags": [
          "OAuth Integrations"
        ]
      },
      "get": {
        "description": "Get detailed information about a specific OAuth integration.\nYou must have administrator or publisher privileges to perform this action.",
        "operationId": "getOAuthIntegration",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthIntegration"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get OAuth integration details",
        "tags": [
          "OAuth Integrations"
        ]
      },
      "patch": {
        "description": "Update a specific OAuth integration.\nYou must have administrator privileges to perform this action.",
        "operationId": "updateOAuthIntegration",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthIntegrationUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthIntegration"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires payment."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Update an OAuth integration",
        "tags": [
          "OAuth Integrations"
        ]
      }
    },
    "/v1/oauth/integrations/{guid}/associations": {
      "get": {
        "description": "List all associations for this OAuth integration.\nYou must have administrator privileges to perform this action.",
        "operationId": "listOAuthIntegrationAssociations",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OAuthIntegrationAssociationOutput"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List all associations for this OAuth integration.",
        "tags": [
          "OAuth Integrations"
        ]
      }
    },
    "/v1/oauth/integrations/{guid}/verify": {
      "post": {
        "description": "This endpoint simulates a content session token exchange with the OAuth integration to\nverify that the integration is configured correctly. No access token is returned.\nVerification is only available for OAuth integrations with the \"Service Account\" authentication type.\nIf the integration is not a service account integration, a 400 status code will be returned.\nYou must have administrator privileges to perform this action.",
        "operationId": "verifyServiceAccountIntegration",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires payment."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Verify that an OAuth service account integration is configured correctly.",
        "tags": [
          "OAuth Integrations"
        ]
      }
    },
    "/v1/oauth/sessions": {
      "get": {
        "description": "List OAuth sessions available to Posit Connect associated with the current user.\nIf you have administrator privileges you can request all available sessions.",
        "operationId": "listOAuthSessions",
        "parameters": [
          {
            "description": "false \"When making a request with administrator privileges, include OAuth sessions for all users when set to true\"",
            "in": "query",
            "name": "all",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OAuthSession"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List OAuth sessions",
        "tags": [
          "OAuth Sessions"
        ]
      }
    },
    "/v1/oauth/sessions/{guid}": {
      "delete": {
        "description": "Delete the OAuth session associated with the provided guid.\nA user can delete their own sessions. Deleting sessions for other users requires administrator privileges.",
        "operationId": "deleteOAuthSession",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete an OAuth session",
        "tags": [
          "OAuth Sessions"
        ]
      },
      "get": {
        "description": "Get information about a specific OAuth session.\nIf you have administrator privileges you can request details for any available session.",
        "operationId": "getOAuthSession",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthSession"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get OAuth session details",
        "tags": [
          "OAuth Sessions"
        ]
      }
    },
    "/v1/packages": {
      "get": {
        "description": "Get the names and versions of all installed R and Python packages\nacross all content items. Returned packages are sorted\nby language and then by package name.\nContent items with `r_environment_management` or\n`python_environment_management` set to `false` will not\nhave their packages listed.\nThis endpoint uses offset pagination. Requests can include\nquery-string parameters for `page_number` and `page_size` to\nfetch different pages of results.",
        "operationId": "getPackages",
        "parameters": [
          {
            "description": "The page number to return.",
            "in": "query",
            "name": "page_number",
            "schema": {
              "default": 1,
              "type": "integer"
            }
          },
          {
            "description": "The number of items per page.",
            "in": "query",
            "name": "page_size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "description": "Whether results are in ascending order.",
            "in": "query",
            "name": "asc_order",
            "schema": {
              "default": true,
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PackagesResponse"
                }
              }
            },
            "description": "Successful response."
          },
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get package dependencies for all content",
        "tags": [
          "Packages"
        ]
      }
    },
    "/v1/queue": {
      "get": {
        "description": "List all items currently in the job queue.\nThis endpoint requires administrator access.",
        "operationId": "getQueue",
        "parameters": [
          {
            "in": "query",
            "name": "queue_names",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The page number to return.",
            "in": "query",
            "name": "page_number",
            "schema": {
              "default": 1,
              "type": "integer"
            }
          },
          {
            "description": "The number of items per page.",
            "in": "query",
            "name": "page_size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "description": "Whether results are in ascending order.",
            "in": "query",
            "name": "asc_order",
            "schema": {
              "default": true,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueueResponse"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List items in queue",
        "tags": [
          "Queue"
        ]
      }
    },
    "/v1/queue/{id}": {
      "delete": {
        "description": "Deletes an item from the job queue. Only inactive items\n(not currently being processed) can be deleted.\n\nAuthenticated access from a user having an \"administrator\" role is required.",
        "operationId": "deleteQueueItem",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete a queue item",
        "tags": [
          "Queue"
        ]
      }
    },
    "/v1/content/{guid}/schedule/history": {
      "get": {
        "description": "Get the schedule change history for a piece of content.\n\nReturns the current schedule (if any) and a list of historical changes\nincluding when schedules were created, updated, or deleted.\n\nSchedule data is returned in RFC 5545 (iCalendar) format.\n\nA maximum of 100 history entries are returned, ordered by change time\n(most recent first).\n\nThis action is permitted for content owners, users with collaborator\nor editor rights, and administrators.",
        "operationId": "getScheduleHistory",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "variant",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduleHistoryResponse"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get schedule history",
        "tags": [
          "Schedules"
        ]
      }
    },
    "/v1/server_settings/nodejs": {
      "get": {
        "description": "This endpoint returns a list of metadata objects for each version\nof Node.js that is available for executing content.\nThis endpoint requires authentication and is only available to\n`publisher` and `administrator` roles.",
        "operationId": "getNodeJsInformation",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NodeJsInfo"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get Node.js Information",
        "tags": [
          "Server Information"
        ]
      }
    },
    "/v1/server_settings/public": {
      "get": {
        "description": "This endpoint returns the minimal server settings needed to render\nunauthenticated views in the Connect dashboard.\n\nThe returned settings include:\n- Authentication provider information (name, notice, timing)\n- Self-registration availability\n- System display name for branding\n- Username validation rules for registration\n\n**Security Note**: This endpoint is public (no authentication required)\nand deliberately exposes minimal server settings to unauthenticated\nusers.",
        "operationId": "getPublicSettings",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSettings"
                }
              }
            },
            "description": "Successful response."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get public settings",
        "tags": [
          "Server Information"
        ]
      }
    },
    "/v1/server_settings/python": {
      "get": {
        "description": "This endpoint returns a list of metadata objects for each version\nof Python that is available for executing content.\nThis endpoint requires authentication and is only available to\n`publisher` and `administrator` roles.",
        "operationId": "getPythonInformation",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PythonInfo"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get Python Information",
        "tags": [
          "Server Information"
        ]
      }
    },
    "/v1/server_settings/quarto": {
      "get": {
        "description": "This endpoint returns a list of metadata objects for each version\nof Quarto that is available for executing content.\nThis endpoint requires authentication and is only available to\n`publisher` and `administrator` roles.",
        "operationId": "getQuartoInformation",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuartoInstallations"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get Quarto Information",
        "tags": [
          "Server Information"
        ]
      }
    },
    "/v1/server_settings/r": {
      "get": {
        "description": "This endpoint returns a list of metadata objects for each version\nof R that is available for executing content.\nThis endpoint requires authentication and is only available to\n`publisher` and `administrator` roles.",
        "operationId": "getRInformation",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RInstallations"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get R Information",
        "tags": [
          "Server Information"
        ]
      }
    },
    "/v1/server_settings/tensorflow": {
      "get": {
        "description": "This endpoint returns a list of metadata objects for each version\nof TensorFlow that is available for executing content.\nThis endpoint requires authentication and is only available to\n`publisher` and `administrator` roles.",
        "operationId": "getTensorFlowInformation",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TensorFlowInstallations"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get TensorFlow Information",
        "tags": [
          "Server Information"
        ]
      }
    },
    "/v1/timezones": {
      "get": {
        "description": "Returns the set of names and offsets for all time zones known by the server.",
        "operationId": "getTimeZones",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TimeZoneEntry"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List Time Zones",
        "tags": [
          "Server Information"
        ]
      }
    },
    "/v1/system/service-tokens": {
      "get": {
        "description": "List all service tokens.\nThis endpoint is available only to administrators.",
        "operationId": "listServiceTokens",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ServiceToken"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List service tokens",
        "tags": [
          "Service Tokens"
        ]
      },
      "post": {
        "description": "Create a new service token with the specified scopes.\nThis response includes the full token key. Subsequent requests\ndo not include the key value.\nThis endpoint is available only to administrators.",
        "operationId": "createServiceToken",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceTokenCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceToken"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create a service token",
        "tags": [
          "Service Tokens"
        ]
      }
    },
    "/v1/system/service-tokens/scopes": {
      "get": {
        "description": "List all available scopes you can assign to service tokens.\nThis endpoint is available only to administrators.",
        "operationId": "listServiceTokenScopes",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceTokenScopes"
                }
              }
            },
            "description": "Successful response."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List available scopes",
        "tags": [
          "Service Tokens"
        ]
      }
    },
    "/v1/system/service-tokens/{guid}": {
      "delete": {
        "description": "Delete a service token. The token will immediately stop working for\nauthentication.\nThis endpoint is available only to administrators.",
        "operationId": "deleteServiceToken",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete a service token",
        "tags": [
          "Service Tokens"
        ]
      }
    },
    "/v1/system/checks": {
      "get": {
        "description": "List all system check runs that have been requested.\nYou must have administrator privileges to perform this action.",
        "operationId": "listSystemCheckRuns",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SystemCheckRun"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List system check runs",
        "tags": [
          "System Checks"
        ]
      },
      "post": {
        "description": "Start a system check run. The tests run in the background, and you can\npoll for status using the returned run ID.\nYou must have administrator privileges to perform this action.",
        "operationId": "runSystemChecks",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRunInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemCheckRun"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Start a system check run",
        "tags": [
          "System Checks"
        ]
      }
    },
    "/v1/system/checks/{id}": {
      "delete": {
        "description": "Delete a system check run and the associated results.",
        "operationId": "deleteSystemCheckRun",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete a system check run",
        "tags": [
          "System Checks"
        ]
      },
      "get": {
        "description": "Get the status of a system check run.",
        "operationId": "getSystemCheckRun",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemCheckRun"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get the status of a system check run",
        "tags": [
          "System Checks"
        ]
      }
    },
    "/v1/system/checks/{id}/results": {
      "get": {
        "description": "Get the results of a system check run.",
        "operationId": "getSystemCheckRunResults",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemCheckRunResults"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get the results of a system check run",
        "tags": [
          "System Checks"
        ]
      }
    },
    "/v1/system/caches/runtime": {
      "delete": {
        "description": "Delete a content runtime package cache by specifying language, version,\nand execution environment.\nThis action is only available to administrators.",
        "operationId": "deleteRuntimeCache",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteRuntimeCacheInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteRuntimeCacheResponse"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete a runtime cache",
        "tags": [
          "System Information"
        ]
      },
      "get": {
        "description": "List all content runtime caches. These include packrat and Python\nenvironment caches.\nThis information is available only to administrators.",
        "operationId": "listRuntimeCaches",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RuntimeCaches"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List runtime caches",
        "tags": [
          "System Information"
        ]
      }
    },
    "/v1/system/hosts": {
      "get": {
        "description": "List registered hosts.\nThe default response includes hosts that are no longer active. Use the\n`active` parameter to return only active hosts. A host is considered\nactive if it has checked in in the last 60 seconds.\nYou must have administrator privileges to perform this action.",
        "operationId": "listHosts",
        "parameters": [
          {
            "description": "false \"Return only active hosts\"",
            "in": "query",
            "name": "active",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Host"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List Connect hosts",
        "tags": [
          "System Information"
        ]
      }
    },
    "/v1/system/offhost/service-accounts": {
      "get": {
        "description": "Applicable to Connect instances configured for off-host execution.\nList the Kubernetes service accounts discovered when Connect started.\nThis action is available to publishers and administrators.",
        "operationId": "listServiceAccounts",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccounts"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List Kubernetes service accounts",
        "tags": [
          "System Information"
        ]
      }
    },
    "/v1/content/{guid}/tags": {
      "get": {
        "description": "List of all tags for the specified content item.\n\nAuthenticated access required from an admin or from a user with at least viewer\npermissions on the content item.",
        "operationId": "listContentTags",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Tag"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List tags for content",
        "tags": [
          "Tags"
        ]
      },
      "post": {
        "description": "Add the specified tag to an individual content item. When adding a tag,\nall tags above the specified tag in the tag tree are also added to the\ncontent item.\n\nAuthenticated access required from an admin or from a user with\ncollaborator/editor permissions on the content item.",
        "operationId": "addTag",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContentTagInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Add tag to content",
        "tags": [
          "Tags"
        ]
      }
    },
    "/v1/content/{guid}/tags/{id}": {
      "delete": {
        "description": "Remove the specified tag from an individual content item. When removing\na tag, all children and descendant tags are also removed from the content\nitem.\n\nAuthenticated access required from an admin or from a user with\ncollaborator/editor permissions on the content item.",
        "operationId": "removeTag",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Remove tag from content",
        "tags": [
          "Tags"
        ]
      }
    },
    "/v1/tags": {
      "get": {
        "description": "List of all tags.\n\nAuthenticated access from a user is required.",
        "operationId": "listTags",
        "parameters": [
          {
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "parent_id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Tag"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List tags",
        "tags": [
          "Tags"
        ]
      },
      "post": {
        "description": "Create a new tag. Tags without a parent are considered tag \"categories\"\nand are used to organize other tags. Note that tag categories cannot be\nadded to content items.\n\nAuthenticated access from a user having an \"administrator\" role is required.",
        "operationId": "createTag",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/v1/tags/{id}": {
      "delete": {
        "description": "Deletes a tag, including all descendants in its own tag hierarchy.\n\nAuthenticated access from a user having an \"administrator\" role is required.",
        "operationId": "deleteTag",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete tag",
        "tags": [
          "Tags"
        ]
      },
      "get": {
        "description": "Get an individual tag by its identifier or by a comma-delimited \"path\"\nto the tag. The path to the tag is the series of tag names to traverse\nthe tag hierarchy, starting with a tag category.\n\nAuthenticated access from a user is required.",
        "operationId": "getTag",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get tag",
        "tags": [
          "Tags"
        ]
      },
      "patch": {
        "description": "Update an existing tag.\n\nAuthenticated access from a user having an \"administrator\" role is required.",
        "operationId": "updateTag",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Update tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/v1/tags/{id}/content": {
      "get": {
        "description": "List all of the content for the specified tag.\n\nAuthenticated access from a user is required. If an \"administrator\"\nrole is used, then all content items will be returned regardless of\nthe visibility to the requesting user.",
        "operationId": "listTagContent",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Content"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List content for tags",
        "tags": [
          "Tags"
        ]
      }
    },
    "/v1/tasks/{id}": {
      "get": {
        "description": "Returns the current state of a task and any output lines past the\nrequested initial position (`first`).\n\nWhen `wait` is non-zero, will wait up to that number of seconds for\nthe task to complete before responding. The current state of the task\nis returned once the task completes or `wait` seconds elapse.\n\nIncrementally receive task output by using the `last` response field\nvalue as the `first` value in a subsequent query.\n\nUse `wait` and `first` together to incrementally fetch generated\noutput.\n\nHere is a URL that allows up to 5 seconds before returning all\navailable output:\n\n```\n/v1/tasks/CmsfmnfDDyRUrsAc?wait=5\u0026first=0\n```\n\nLet's assume that request has a JSON response with the `last` field\nhaving a value of `23`. Here is a URL that requests output past that\npoint, again allowing up to 5 seconds:\n\n```\n/v1/tasks/CmsfmnfDDyRUrsAc?wait=5\u0026first=23\n```\n\nContinue with this pattern until the `finished`\nfield in the JSON response is `true`.\n\n**Note:** In high-availability clustered deployments of Connect, the task\nrequest must be serviced by the node that is executing the task. This\nis done by ensuring that the cookies returned from the deployment operation are\nincluded in subsequent requests, so that the load balancer can appropriately\ndirect the request. In a single-node configuration, the cookie can be omitted.",
        "operationId": "getTask",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "first",
            "schema": {
              "default": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "wait",
            "schema": {
              "default": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get task details",
        "tags": [
          "Tasks"
        ]
      }
    },
    "/v1/user": {
      "get": {
        "description": "Get detailed information on the requesting user.",
        "operationId": "getCurrentUser",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get current user details",
        "tags": [
          "Users"
        ]
      }
    },
    "/v1/users": {
      "get": {
        "description": "This endpoint lists local users. When called with a prefix\nparameter, it searches for local users matching the prefix.\n\nBy default, results are sorted by first name, then last name, then\nusername, then email. Use the `sort` parameter to sort by a\ndifferent field. `prefix` searches are first sorted based on\nsimilarity to the prefix and then by the active sort field. The\n`prefix` can also be an exact match for the user's DN (for LDAP)\nor the auth provider's unique ID for the user, if any.\n\n- The `email` field is not populated for non-admins when\n  [`Server.HideEmailAddresses`](../admin/appendix/configuration/index.md#Server.HideEmailAddresses) is enabled.\n- The `external_id` field is only visible to administrators and to users\n  viewing their own record.\n- When the user making the request is a viewer and\n  [`Authorization.ViewersCanOnlySeeThemselves`](../admin/appendix/configuration/index.md#Authorization.ViewersCanOnlySeeThemselves) is being used,\n  the results contain only the given user.\n\nThis endpoint uses offset pagination. Requests can include\nquery-string parameters for `page_number` and `page_size` to\nfetch different pages of results.\n\nNote that searching by `prefix` will only return the first page of\nresults; subsequent pages will be empty. Set `page_size` to its\nmaximum (`500`) to retrieve the most results.\n\n#### CSV export\n\nAdministrators can request the response as CSV by setting the `Accept`\nheader to `text/csv`. The CSV export ignores pagination parameters and\nreturns all matching users.\n\n```bash\ncurl -H \"Authorization: Key ${API_KEY}\" \\\n     -H \"Accept: text/csv\" \\\n     \"https://connect.example.com/__api__/v1/users\"\n```",
        "operationId": "getUsers",
        "parameters": [
          {
            "in": "query",
            "name": "prefix",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The page number to return.",
            "in": "query",
            "name": "page_number",
            "schema": {
              "default": 1,
              "type": "integer"
            }
          },
          {
            "description": "The number of items per page.",
            "in": "query",
            "name": "page_size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "description": "Whether results are in ascending order.",
            "in": "query",
            "name": "asc_order",
            "schema": {
              "default": true,
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by a prefix string matched against username, first name, last name, provider key, and DN.",
            "in": "query",
            "name": "prefix",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort results by field. Defaults to `first_name`.",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                "first_name",
                "last_name",
                "username",
                "active_time",
                "created_time",
                "user_role"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by user role. `|` represents logical OR.",
            "in": "query",
            "name": "user_role",
            "schema": {
              "enum": [
                "administrator",
                "publisher",
                "viewer"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by account status. `|` represents logical OR.",
            "in": "query",
            "name": "account_status",
            "schema": {
              "enum": [
                "locked",
                "licensed",
                "inactive"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Users"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List or search for user details",
        "tags": [
          "Users"
        ]
      },
      "post": {
        "description": "This endpoint creates the given user.\n\n- This endpoint is used only for SAML, OAuth2 (non-Google), password, PAM, and proxied\n  authentication. All other authentication providers should\n  use the [PUT /v1/users](#createPullUser) endpoint.\n- Administrator access is required to create *other* users.\n\n#### Initial User Creation Workflow\n\nThis endpoint requires authentication to create *other* users,\nwhich means that you need an API key for access. How do you\nget an API key if there are no users in Posit Connect?\n\n- For password authentication, you can use this endpoint\n  without an API key to create the first user. The first user\n  will be an administrator.\n- For SAML, OAuth2 (non-Google), PAM or proxied authentication, the first user can be\n  created by logging into Posit Connect. The API cannot be used.\n\nOnce the first user is created, an API key can be used to access this\nendpoint and create subsequent users. The [API\nKeys](../user/api-keys/) chapter of the Posit Connect User Guide\nexplains how to create an API key.\n\n#### All Authentication Providers\n\n- When `user_role` is not specified, it will default to the\n  role specified by the config setting\n  [`Authorization.DefaultUserRole`](../admin/appendix/configuration/index.md#Authorization.DefaultUserRole).\n\n#### SAML, OAuth2 (non-Google), PAM and Proxied Authentication\n\n- An API key must always be used. Users cannot use this\n  endpoint to create their own account.\n- Administrator access is always required to create accounts.\n- `external_id` is required for SAML and OAuth2 (non-Google)\n  authentication, and also for proxied authentication if the\n  [`ProxyAuth.UniqueIdHeader`](../admin/appendix/configuration/index.md#ProxyAuth.UniqueIdHeader) config setting is used.\n  It is not required for PAM, nor for proxied\n  authentication without the [`ProxyAuth.UniqueIdHeader`](../admin/appendix/configuration/index.md#ProxyAuth.UniqueIdHeader) setting.\n\n#### Password Authentication\n\n- Users must confirm their account through an email. This\n  feature is unique to password authentication.\n- Administrator access is always required except for the first\n  created user.",
        "operationId": "createPushUser",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreatePushInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create a user from caller-supplied details (SAML, password, PAM, proxied, OAuth2 except with Google)",
        "tags": [
          "Users"
        ]
      },
      "put": {
        "description": "This endpoint creates the given user on the Posit Connect server.\n\n- This endpoint is used only for LDAP and OAuth2 with Google\n  authentication. All other authentication providers should\n  use the [POST /v1/users](#createPushUser) endpoint.\n- Unlike the [POST /v1/users](#createPushUser) endpoint, publisher or administrator\n  access is required to access this endpoint.\n\n#### User Creation Workflow on LDAP and OAuth2 with Google\n\nThis endpoint requires authentication, which means that you need an\nAPI key for access. How do you get an API key if there are no users in\nPosit Connect? The first user can be created by simply logging into\nPosit Connect. The Posit Connect Server API cannot be used to\ncreate the first user. Once logged in, you can create an API key.\n\nFor LDAP and OAuth2 with Google, the API lets you identify an existing\nuser in the LDAP or OAuth2 with Google system and create a corresponding\naccount on Posit Connect. This is a two-step process:\n\n- Use the [GET /v1/users/remote](#searchRemoteUsers) endpoint. This\n  endpoint will return a list of potential matching accounts\n  in LDAP or OAuth2 with Google. A user with no account on Posit Connect will\n  lack a `guid`. Note the `temp_ticket` for the desired user\n  account.\n- Use this PUT endpoint with the `temp_ticket` to create a\n  corresponding account on Posit Connect.\n\nThe Cookbook contains a recipe on [Creating a User Using a\nRemote Authentication Provider\n(LDAP)](../cookbook/users/creating-a-user-using-a-remote-authentication-provider-ldap/)\nwhich demonstrates this workflow using the Python and R SDKs.\n\n#### LDAP and OAuth2 with Google Authentication\n\n- The created user role will default to the role specified by\n  the config setting [`Authorization.DefaultUserRole`](../admin/appendix/configuration/index.md#Authorization.DefaultUserRole).",
        "operationId": "createPullUser",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreatePullInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Create a user using details from a remote authentication provider (LDAP, OAuth2 with Google)",
        "tags": [
          "Users"
        ]
      }
    },
    "/v1/users/remote": {
      "get": {
        "description": "This endpoint is used to support operations against users who\ndo not have a Posit Connect account, such as\n[creating LDAP and OAuth2 with Google users](#createPullUser).\nSee [GET /v1/users](#getUsers) for listing users.\n\nThis endpoint searches for users on Posit Connect and on\nyour LDAP or OAuth2 with Google system.\n\nResults are first sorted based on similarity to the `prefix`\nand then by first name, last name, username, and email.\n\n- This endpoint can be used only by LDAP or OAuth2 with Google\n  authentication and will return an error otherwise.\n- Publisher or administrator access is required to access this\n  endpoint.\n- The `email` field is not populated for non-admins when\n  [`Server.HideEmailAddresses`](../admin/appendix/configuration/index.md#Server.HideEmailAddresses) is enabled.\n- The `external_id` field is only visible to administrators and to users\n  viewing their own record.\n- When the user making the request is a viewer and\n  [`Authorization.ViewersCanOnlySeeThemselves`](../admin/appendix/configuration/index.md#Authorization.ViewersCanOnlySeeThemselves) is being used,\n  the results contain only the given user.",
        "operationId": "searchRemoteUsers",
        "parameters": [
          {
            "in": "query",
            "name": "prefix",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteSearchResults"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Search for user details from a remote provider",
        "tags": [
          "Users"
        ]
      }
    },
    "/v1/users/{guid}": {
      "get": {
        "description": "Get detailed information on a specific user.\n\nThe `email` field is not populated for non-admins when\n[`Server.HideEmailAddresses`](../admin/appendix/configuration/index.md#Server.HideEmailAddresses) is enabled. The `external_id` field is only\nvisible to administrators and to users viewing their own record.",
        "operationId": "getUser",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get user details",
        "tags": [
          "Users"
        ]
      },
      "put": {
        "description": "This endpoint updates a given user and returns the updated\nuser properties. Note that it returns only the properties that\ncan be modified by this endpoint.\n\nIf the authentication provider allows it:\n\n- a user can change their own user properties.\n- another user's properties can be changed with administrator\n  access.\n- The configuration setting [`Authorization.UserInfoEditableBy`](../admin/appendix/configuration/index.md#Authorization.UserInfoEditableBy)\n  controls whether or not non-admins can edit their own properties.\n\n### Password Authentication\n\n- Emails are required.\n- Changing an unconfirmed user's email will cause the\n  confirmation email to be resent to the new email.",
        "operationId": "updateUser",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EditableUser"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Update a user",
        "tags": [
          "Users"
        ]
      }
    },
    "/v1/users/{guid}/lock": {
      "post": {
        "description": "This endpoint locks or unlocks a given user account.\n\n- Unlocking a user is prohibited if that additional user would\nviolate the user account limit specified by the Posit Connect product\nlicense.\n- Administrator access is required to access this endpoint.\n- Users are able to lock themselves.",
        "operationId": "lockUser",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LockUserInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "You do not have permission to perform this operation."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Lock a user",
        "tags": [
          "Users"
        ]
      }
    },
    "/v1/content/{guid}/vanity": {
      "delete": {
        "description": "Delete the vanity URL for this content.\n\nIf [`Authorization.PublishersCanManageVanities`](../admin/appendix/configuration/index.md#Authorization.PublishersCanManageVanities) is `true` (default), publishers\ncan delete the vanity URL for content items that they have permission to change.\nOtherwise, administrator permissions are required.",
        "operationId": "deleteVanity",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Delete vanity URL",
        "tags": [
          "Vanity URLs"
        ]
      },
      "get": {
        "description": "Get the vanity URL, if any, defined for this content.\nIf the content item has a vanity URL, it is returned.\nIf there is no vanity URL for this content, a 404 status is returned.\n\nAdministrators can get the vanity URL for any content item.\nAny authenticated user who is authorized to view the content can\nget the vanity URL.",
        "operationId": "getVanity",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vanity"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Get vanity URL",
        "tags": [
          "Vanity URLs"
        ]
      },
      "put": {
        "description": "Set the vanity URL for this content item.\n\nA vanity URL path must meet certain requirements:\n\n*   It must consist of alphanumeric characters, hyphens, underscores,\n    and slashes.\n\n*   It cannot be a reserved path such as the root path `/`, or a path\n    beginning with `/__`.\n\n*   The following path prefixes are prohibited:\n\n    * `/__`\n    * `/favicon.ico`\n    * `/connect`\n    * `/apps`\n    * `/users`\n    * `/groups`\n    * `/setpassword`\n    * `/user-completion`\n    * `/confirm`\n    * `/recent`\n    * `/reports`\n    * `/plots`\n    * `/unpublished`\n    * `/settings`\n    * `/metrics`\n    * `/tokens`\n    * `/help`\n    * `/login`\n    * `/welcome`\n    * `/register`\n    * `/resetpassword`\n    * `/content`\n    * _The custom location for the Connect dashboard, configured by [`Server.DashboardPath`](../admin/appendix/configuration/index.md#Server.DashboardPath)._\n\n*   It cannot be an ancestor or descendant of an existing vanity URL\n    path. For example, if the vanity path `/a/b/` exists, you cannot\n    add `/a/` or `/a/b/c/`.\n\nIf [`Authorization.PublishersCanManageVanities`](../admin/appendix/configuration/index.md#Authorization.PublishersCanManageVanities) is `true` (default), publishers\ncan set the vanity URL for content items that they have permission to change.\nOtherwise, administrator permissions are required.\n\nYou can reassign an existing vanity URL to a different content item,\nif you are an administrator or collaborator/owner of both content items. You must\nset the `force` parameter to `true` to reassign a URL. An error\nwill be returned if `force` is `false` and the URL already exists.",
        "operationId": "setVanity",
        "parameters": [
          {
            "in": "path",
            "name": "guid",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VanityInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vanity"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The request could not be completed due to a conflict."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "Set vanity URL",
        "tags": [
          "Vanity URLs"
        ]
      }
    },
    "/v1/vanities": {
      "get": {
        "description": "List all defined vanity URLs.\n\nYou must have administrator privileges to perform this action.",
        "operationId": "listVanities",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Vanity"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation is invalid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested operation requires authentication."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "The requested object does not exist."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "A server error occurred."
          }
        },
        "summary": "List vanity URLs",
        "tags": [
          "Vanity URLs"
        ]
      }
    }
  },
  "security": [
    {
      "apiKey": []
    }
  ],
  "servers": [
    {
      "url": "/__api__"
    }
  ],
  "tags": [
    {
      "name": "API Keys"
    },
    {
      "name": "Audit Logs"
    },
    {
      "name": "Bookmarks"
    },
    {
      "name": "Bootstrap"
    },
    {
      "name": "Bundles"
    },
    {
      "name": "Content"
    },
    {
      "name": "Content Permissions"
    },
    {
      "name": "Custom Documentation"
    },
    {
      "name": "Environment Permissions"
    },
    {
      "name": "Environments"
    },
    {
      "name": "Examples"
    },
    {
      "name": "Feature Usage"
    },
    {
      "name": "Groups"
    },
    {
      "name": "Instrumentation"
    },
    {
      "name": "Jobs"
    },
    {
      "name": "OAuth Integration Templates"
    },
    {
      "name": "OAuth Integrations"
    },
    {
      "name": "OAuth Sessions"
    },
    {
      "name": "Packages"
    },
    {
      "name": "Queue"
    },
    {
      "name": "Schedules"
    },
    {
      "name": "Server Information"
    },
    {
      "name": "Service Tokens"
    },
    {
      "name": "System Checks"
    },
    {
      "name": "System Information"
    },
    {
      "name": "Tags"
    },
    {
      "name": "Tasks"
    },
    {
      "name": "Users"
    },
    {
      "name": "Vanity URLs"
    }
  ]
}