{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "servicePath": "",
  "canonicalName": "Jules",
  "version_module": true,
  "revision": "20261015",
  "kind": "discovery#restDescription",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "version": "v1alpha",
  "rootUrl": "https://jules.googleapis.com/",
  "schemas": {
    "UnarchiveSessionRequest": {
      "description": "Request message for UnarchiveSession.",
      "type": "object",
      "properties": {},
      "id": "UnarchiveSessionRequest"
    },
    "Session": {
      "properties": {
        "url": {
          "description": "Output only. The URL of the session to view the session in the Jules web app.",
          "readOnly": true,
          "type": "string"
        },
        "outputs": {
          "description": "Output only. The outputs of the session, if any.",
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "SessionOutput"
          }
        },
        "prompt": {
          "description": "Required. The prompt to start the session with.",
          "type": "string"
        },
        "requirePlanApproval": {
          "type": "boolean",
          "description": "Optional. Input only. If true, plans the agent generates will require explicit plan approval before the agent starts working. If not set, plans will be auto-approved."
        },
        "sourceContext": {
          "$ref": "SourceContext",
          "description": "Optional. The source to use in this session, with additional context. If not provided, Jules will start from scratch."
        },
        "automationMode": {
          "enumDescriptions": [
            "The automation mode is unspecified. Default to no automation.",
            "Whenever a final code patch is generated in the session, automatically create a branch and a pull request for it, if applicable."
          ],
          "type": "string",
          "description": "Optional. Input only. The automation mode of the session. If not set, the default automation mode will be used.",
          "enum": [
            "AUTOMATION_MODE_UNSPECIFIED",
            "AUTO_CREATE_PR"
          ]
        },
        "archived": {
          "description": "Output only. Whether the session is archived.",
          "readOnly": true,
          "type": "boolean"
        },
        "title": {
          "description": "Optional. If not provided, the system will generate one.",
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The id of the session. This is the same as the \"{session}\" part of the resource name (e.g., \"sessions/{session}\")."
        },
        "state": {
          "enumDeprecated": [
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "QUEUED",
            "PLANNING",
            "AWAITING_PLAN_APPROVAL",
            "AWAITING_USER_FEEDBACK",
            "IN_PROGRESS",
            "PAUSED",
            "FAILED",
            "COMPLETED"
          ],
          "enumDescriptions": [
            "The state is unspecified.",
            "The session is queued.",
            "Deprecated: This state is no longer used. The agent is planning.",
            "The agent is waiting for plan approval.",
            "The agent is waiting for user feedback.",
            "The session is in progress.",
            "The session is paused.",
            "The session has failed.",
            "The session has completed."
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. The state of the session."
        },
        "name": {
          "readOnly": true,
          "description": "Output only. Identifier. The full resource name (e.g., \"sessions/{session}\").",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The time the session was last updated.",
          "format": "google-datetime",
          "type": "string",
          "readOnly": true
        },
        "createTime": {
          "description": "Output only. The time the session was created.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        }
      },
      "type": "object",
      "description": "next_id: 19 A session is a contiguous amount of work within the same context.",
      "id": "Session"
    },
    "ListActivitiesResponse": {
      "properties": {
        "activities": {
          "items": {
            "$ref": "Activity"
          },
          "type": "array",
          "description": "The activities from the specified session."
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        }
      },
      "description": "Response message for the ListActivities RPC.",
      "type": "object",
      "id": "ListActivitiesResponse"
    },
    "PlanApproved": {
      "type": "object",
      "description": "A plan was approved.",
      "properties": {
        "planId": {
          "description": "The ID of the plan that was approved.",
          "type": "string"
        }
      },
      "id": "PlanApproved"
    },
    "ApprovePlanResponse": {
      "type": "object",
      "id": "ApprovePlanResponse",
      "properties": {},
      "description": "Response message for the ApprovePlan RPC."
    },
    "PullRequest": {
      "type": "object",
      "properties": {
        "url": {
          "description": "The URL of the pull request.",
          "type": "string"
        },
        "title": {
          "description": "The title of the pull request.",
          "type": "string"
        },
        "baseRef": {
          "type": "string",
          "description": "The base branch name of the pull request (e.g., \"main\")."
        },
        "headRef": {
          "description": "The head branch name of the pull request (e.g., \"feature-x\").",
          "type": "string"
        },
        "description": {
          "description": "The description of the pull request.",
          "type": "string"
        }
      },
      "description": "A pull request.",
      "id": "PullRequest"
    },
    "ArchiveSessionRequest": {
      "description": "Request message for ArchiveSession.",
      "type": "object",
      "properties": {},
      "id": "ArchiveSessionRequest"
    },
    "ApprovePlanRequest": {
      "type": "object",
      "id": "ApprovePlanRequest",
      "description": "Request message for the ApprovePlan RPC.",
      "properties": {}
    },
    "ChangeSet": {
      "id": "ChangeSet",
      "type": "object",
      "description": "A set of changes to be applied to a source.",
      "properties": {
        "source": {
          "description": "The name of the source this change set applies to. Format: sources/{source}",
          "type": "string"
        },
        "gitPatch": {
          "$ref": "GitPatch",
          "description": "A patch in Git format."
        }
      }
    },
    "SessionCompleted": {
      "type": "object",
      "id": "SessionCompleted",
      "description": "The session was completed.",
      "properties": {}
    },
    "ProgressUpdated": {
      "type": "object",
      "description": "There was a progress update.",
      "properties": {
        "description": {
          "description": "The description of the progress update.",
          "type": "string"
        },
        "title": {
          "type": "string",
          "description": "The title of the progress update."
        }
      },
      "id": "ProgressUpdated"
    },
    "SessionFailed": {
      "properties": {
        "reason": {
          "description": "The reason the session failed.",
          "type": "string"
        }
      },
      "id": "SessionFailed",
      "description": "The session failed.",
      "type": "object"
    },
    "Plan": {
      "description": "A plan is a sequence of steps that the agent will take to complete the task.",
      "properties": {
        "steps": {
          "items": {
            "$ref": "PlanStep"
          },
          "readOnly": true,
          "description": "Output only. The steps in the plan.",
          "type": "array"
        },
        "createTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. Time when the plan was created.",
          "readOnly": true
        },
        "id": {
          "description": "Output only. ID for this plan; unique within a session.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "Plan",
      "type": "object"
    },
    "SendMessageResponse": {
      "type": "object",
      "description": "Response message for the SendMessage RPC.",
      "id": "SendMessageResponse",
      "properties": {}
    },
    "SendMessageRequest": {
      "id": "SendMessageRequest",
      "properties": {
        "prompt": {
          "description": "Required. The user prompt to send to the session.",
          "type": "string"
        }
      },
      "description": "Request message for the SendMessage RPC.",
      "type": "object"
    },
    "SourceContext": {
      "id": "SourceContext",
      "type": "object",
      "description": "Context for how to use a source in a session.",
      "properties": {
        "workingBranch": {
          "type": "string",
          "description": "Optional. The branch to push to for the session. Only used if the session is set to automatically create a branch through automation mode. If not provided, a branch name will be generated when needed."
        },
        "environmentVariablesEnabled": {
          "description": "Optional. Enables environment variables in the session. If true, the session will use environment variables configured for this source.",
          "type": "boolean"
        },
        "source": {
          "description": "Required. The name of the source this context is for. To get the list of sources, use the ListSources API. Format: sources/{source}",
          "type": "string"
        },
        "githubRepoContext": {
          "$ref": "GitHubRepoContext",
          "description": "Context to use a GitHubRepo in a session."
        }
      }
    },
    "Media": {
      "description": "A media output.",
      "properties": {
        "data": {
          "format": "byte",
          "description": "The media data.",
          "type": "string"
        },
        "mimeType": {
          "description": "The media mime type.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "Media"
    },
    "Artifact": {
      "description": "An artifact is a single unit of data produced by an activity step.",
      "properties": {
        "bashOutput": {
          "$ref": "BashOutput",
          "description": "A bash output was produced."
        },
        "changeSet": {
          "description": "A change set was produced (e.g. code changes).",
          "$ref": "ChangeSet"
        },
        "media": {
          "description": "A media file was produced (e.g. image, video).",
          "$ref": "Media"
        }
      },
      "type": "object",
      "id": "Artifact"
    },
    "ListSourcesResponse": {
      "description": "Response message for the ListSources RPC.",
      "type": "object",
      "properties": {
        "sources": {
          "description": "The sources from the specified request.",
          "type": "array",
          "items": {
            "$ref": "Source"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
        }
      },
      "id": "ListSourcesResponse"
    },
    "Activity": {
      "id": "Activity",
      "properties": {
        "planGenerated": {
          "description": "A plan was generated.",
          "$ref": "PlanGenerated"
        },
        "description": {
          "description": "Output only. A description of this activity.",
          "type": "string",
          "readOnly": true
        },
        "planApproved": {
          "$ref": "PlanApproved",
          "description": "A plan was approved."
        },
        "id": {
          "description": "Output only. The id of the activity. This is the same as the \"{activity}\" part of the resource name (e.g., \"sessions/{session}/activities/{activity}\").",
          "readOnly": true,
          "type": "string"
        },
        "sessionFailed": {
          "description": "The session failed.",
          "$ref": "SessionFailed"
        },
        "createTime": {
          "format": "google-datetime",
          "type": "string",
          "readOnly": true,
          "description": "Output only. The time at which this activity was created."
        },
        "name": {
          "description": "Identifier. The full resource name (e.g., \"sessions/{session}/activities/{activity}\").",
          "type": "string"
        },
        "userMessaged": {
          "description": "The user posted a message.",
          "$ref": "UserMessaged"
        },
        "artifacts": {
          "items": {
            "$ref": "Artifact"
          },
          "type": "array",
          "readOnly": true,
          "description": "Output only. The artifacts produced by this activity."
        },
        "progressUpdated": {
          "$ref": "ProgressUpdated",
          "description": "There was a progress update."
        },
        "sessionCompleted": {
          "description": "The session was completed.",
          "$ref": "SessionCompleted"
        },
        "agentMessaged": {
          "description": "The agent posted a message.",
          "$ref": "AgentMessaged"
        },
        "originator": {
          "description": "The entity that this activity originated from (e.g. \"user\", \"agent\", \"system\").",
          "type": "string"
        }
      },
      "type": "object",
      "description": "An activity is a single unit of work within a session."
    },
    "GitHubRepoContext": {
      "description": "Context to use a GitHubRepo in a session.",
      "id": "GitHubRepoContext",
      "type": "object",
      "properties": {
        "startingBranch": {
          "type": "string",
          "description": "Required. The name of the branch to start the session from."
        }
      }
    },
    "GitHubBranch": {
      "id": "GitHubBranch",
      "description": "A GitHub branch.",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "The name of the GitHub branch.",
          "type": "string"
        }
      }
    },
    "PlanStep": {
      "description": "A step in a plan.",
      "id": "PlanStep",
      "properties": {
        "title": {
          "readOnly": true,
          "description": "Output only. The title of the step.",
          "type": "string"
        },
        "id": {
          "description": "Output only. ID for this step; unique within a plan.",
          "type": "string",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The description of the step."
        },
        "index": {
          "readOnly": true,
          "format": "int32",
          "description": "Output only. 0-based index into the plan.steps.",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "AgentMessaged": {
      "description": "The agent posted a message.",
      "type": "object",
      "id": "AgentMessaged",
      "properties": {
        "agentMessage": {
          "type": "string",
          "description": "The message the agent posted."
        }
      }
    },
    "SessionOutput": {
      "properties": {
        "changeSet": {
          "description": "A change set created by the session, if applicable.",
          "$ref": "ChangeSet"
        },
        "pullRequest": {
          "$ref": "PullRequest",
          "description": "A pull request created by the session, if applicable."
        }
      },
      "description": "An output of a session.",
      "type": "object",
      "id": "SessionOutput"
    },
    "ListSessionsResponse": {
      "id": "ListSessionsResponse",
      "description": "Response message for ListSessions.",
      "type": "object",
      "properties": {
        "sessions": {
          "type": "array",
          "items": {
            "$ref": "Session"
          },
          "description": "The sessions from the specified request."
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
        }
      }
    },
    "GitPatch": {
      "properties": {
        "suggestedCommitMessage": {
          "description": "A suggested commit message for the patch, if one is generated.",
          "type": "string"
        },
        "unidiffPatch": {
          "type": "string",
          "description": "The patch in unidiff format."
        },
        "baseCommitId": {
          "type": "string",
          "description": "The base commit id of the patch. This is the id of the commit that the patch should be applied to."
        }
      },
      "id": "GitPatch",
      "description": "A patch in Git format.",
      "type": "object"
    },
    "GitHubRepo": {
      "properties": {
        "defaultBranch": {
          "$ref": "GitHubBranch",
          "description": "The default branch for this repo."
        },
        "repo": {
          "description": "The name of the repo; the `` in `https://github.com//`.",
          "type": "string"
        },
        "branches": {
          "description": "The list of active branches for this repo.",
          "type": "array",
          "items": {
            "$ref": "GitHubBranch"
          }
        },
        "owner": {
          "type": "string",
          "description": "The owner of the repo; the `` in `https://github.com//`."
        },
        "isPrivate": {
          "description": "Whether this repo is private.",
          "type": "boolean"
        }
      },
      "description": "A GitHub repo.",
      "id": "GitHubRepo",
      "type": "object"
    },
    "Source": {
      "id": "Source",
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The id of the source. This is the same as the \"{source}\" part of the resource name (e.g., \"sources/{source}\")."
        },
        "name": {
          "description": "Identifier. The full resource name (e.g., \"sources/{source}\").",
          "type": "string"
        },
        "githubRepo": {
          "description": "A GitHub repo.",
          "$ref": "GitHubRepo"
        }
      },
      "type": "object",
      "description": "An input source of data for a session."
    },
    "UserMessaged": {
      "id": "UserMessaged",
      "properties": {
        "userMessage": {
          "type": "string",
          "description": "The message the user posted."
        }
      },
      "description": "The user posted a message.",
      "type": "object"
    },
    "BashOutput": {
      "id": "BashOutput",
      "type": "object",
      "description": "A bash output.",
      "properties": {
        "exitCode": {
          "description": "The bash exit code.",
          "type": "integer",
          "format": "int32"
        },
        "command": {
          "type": "string",
          "description": "The bash command."
        },
        "output": {
          "description": "The bash output. Includes both stdout and stderr.",
          "type": "string"
        }
      }
    },
    "Empty": {
      "type": "object",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "id": "Empty",
      "properties": {}
    },
    "PlanGenerated": {
      "properties": {
        "plan": {
          "$ref": "Plan",
          "description": "The plan that was generated."
        }
      },
      "description": "A plan was generated.",
      "type": "object",
      "id": "PlanGenerated"
    }
  },
  "batchPath": "batch",
  "documentationLink": "https://jules.google.com",
  "description": "Programmatically create and access your asynchronous coding tasks.",
  "resources": {
    "sources": {
      "methods": {
        "get": {
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "Gets a single source.",
          "path": "v1alpha/{+name}",
          "response": {
            "$ref": "Source"
          },
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "pattern": "^sources/.*$",
              "required": true,
              "description": "Required. The resource name of the source to retrieve. Format: sources/{source}",
              "location": "path"
            }
          },
          "id": "jules.sources.get",
          "flatPath": "v1alpha/sources/{sourcesId}"
        },
        "list": {
          "id": "jules.sources.list",
          "httpMethod": "GET",
          "flatPath": "v1alpha/sources",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "parameterOrder": [],
          "parameters": {
            "filter": {
              "description": "Optional. The filter expression for listing sources, based on AIP-160. If not set, all sources will be returned. Currently only supports filtering by name, which can be used to filter by a single source or multiple sources separated by OR. Example filters: - 'name=sources/source1 OR name=sources/source2'",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "description": "Optional. The number of sources to return. Must be between 1 and 100, inclusive. If unset, defaults to 30. If set to greater than 100, it will be coerced to 100.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "pageToken": {
              "location": "query",
              "description": "Optional. A page token, received from a previous `ListSources` call.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "ListSourcesResponse"
          },
          "path": "v1alpha/sources",
          "description": "Lists sources."
        }
      }
    },
    "sessions": {
      "methods": {
        "unarchive": {
          "request": {
            "$ref": "UnarchiveSessionRequest"
          },
          "flatPath": "v1alpha/sessions/{sessionsId}:unarchive",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "required": true,
              "type": "string",
              "description": "Required. The resource name of the session to unarchive. Format: sessions/{session}",
              "location": "path",
              "pattern": "^sessions/[^/]+$"
            }
          },
          "description": "Unarchives a session.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v1alpha/{+name}:unarchive",
          "id": "jules.sessions.unarchive",
          "httpMethod": "POST",
          "response": {
            "$ref": "Session"
          }
        },
        "approvePlan": {
          "parameterOrder": [
            "session"
          ],
          "response": {
            "$ref": "ApprovePlanResponse"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "id": "jules.sessions.approvePlan",
          "path": "v1alpha/{+session}:approvePlan",
          "request": {
            "$ref": "ApprovePlanRequest"
          },
          "parameters": {
            "session": {
              "pattern": "^sessions/[^/]+$",
              "description": "Required. The resource name of the session to approve the plan in. Format: sessions/{session}",
              "required": true,
              "type": "string",
              "location": "path"
            }
          },
          "description": "Approves a plan in a session.",
          "flatPath": "v1alpha/sessions/{sessionsId}:approvePlan"
        },
        "create": {
          "parameters": {},
          "parameterOrder": [],
          "request": {
            "$ref": "Session"
          },
          "response": {
            "$ref": "Session"
          },
          "id": "jules.sessions.create",
          "flatPath": "v1alpha/sessions",
          "path": "v1alpha/sessions",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "Creates a new session."
        },
        "delete": {
          "flatPath": "v1alpha/sessions/{sessionsId}",
          "parameters": {
            "name": {
              "required": true,
              "type": "string",
              "description": "Required. The resource name of the session to delete. Format: sessions/{session}",
              "location": "path",
              "pattern": "^sessions/[^/]+$"
            }
          },
          "id": "jules.sessions.delete",
          "parameterOrder": [
            "name"
          ],
          "httpMethod": "DELETE",
          "path": "v1alpha/{+name}",
          "description": "Deletes a session.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "response": {
            "$ref": "Empty"
          }
        },
        "sendMessage": {
          "httpMethod": "POST",
          "id": "jules.sessions.sendMessage",
          "description": "Sends a message from the user to a session.",
          "response": {
            "$ref": "SendMessageResponse"
          },
          "request": {
            "$ref": "SendMessageRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "flatPath": "v1alpha/sessions/{sessionsId}:sendMessage",
          "parameters": {
            "session": {
              "pattern": "^sessions/[^/]+$",
              "location": "path",
              "description": "Required. The resource name of the session to post the message to. Format: sessions/{session}",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1alpha/{+session}:sendMessage",
          "parameterOrder": [
            "session"
          ]
        },
        "list": {
          "response": {
            "$ref": "ListSessionsResponse"
          },
          "parameterOrder": [],
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v1alpha/sessions",
          "id": "jules.sessions.list",
          "description": "Lists all sessions.",
          "flatPath": "v1alpha/sessions",
          "parameters": {
            "filter": {
              "description": "Optional. The filter expression for listing sessions based on AIP-160. If not set, only non-archived sessions will be returned. Currently supports filtering by archived. Example filters: - 'archived = false' (default, returns only non-archived sessions) - 'archived = true' (returns only archived sessions) - 'archived = true OR archived = false' (returns all sessions)",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "description": "Optional. A page token, received from a previous `ListSessions` call.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "description": "Optional. The number of sessions to return. Must be between 1 and 100, inclusive. If unset, defaults to 30. If set to greater than 100, it will be coerced to 100.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            }
          }
        },
        "get": {
          "id": "jules.sessions.get",
          "response": {
            "$ref": "Session"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v1alpha/{+name}",
          "httpMethod": "GET",
          "parameterOrder": [
            "name"
          ],
          "description": "Gets a single session.",
          "parameters": {
            "name": {
              "description": "Required. The resource name of the session to retrieve. Format: sessions/{session}",
              "location": "path",
              "type": "string",
              "pattern": "^sessions/[^/]+$",
              "required": true
            }
          },
          "flatPath": "v1alpha/sessions/{sessionsId}"
        },
        "archive": {
          "flatPath": "v1alpha/sessions/{sessionsId}:archive",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "pattern": "^sessions/[^/]+$",
              "required": true,
              "description": "Required. The resource name of the session to archive. Format: sessions/{session}",
              "location": "path"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v1alpha/{+name}:archive",
          "description": "Archives a session.",
          "httpMethod": "POST",
          "id": "jules.sessions.archive",
          "response": {
            "$ref": "Session"
          },
          "request": {
            "$ref": "ArchiveSessionRequest"
          }
        }
      },
      "resources": {
        "activities": {
          "methods": {
            "list": {
              "description": "Lists activities for a session.",
              "response": {
                "$ref": "ListActivitiesResponse"
              },
              "id": "jules.sessions.activities.list",
              "parameters": {
                "filter": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional. The filter expression for listing activities. If not set, all activities will be returned. Currently only supports filtering by create_time. Invalid filter strings will result in an INVALID_ARGUMENT error. The OR operator has higher precedence than AND. The expression a AND b OR c evaluates to a AND (b OR c). Prefer to use explicit parentheses in complex expressions. Example filters: - 'create_time:*' (matches all activities with create_time set) - 'create_time \u003e \"2024-09-04T10:00:00Z\"' - 'create_time \u003e \"2024-09-04T10:00:00Z\" AND create_time \u003c \"2024-09-05T10:00:00Z\"' - 'create_time \u003c \"2024-09-04T10:00:00Z\" OR create_time \u003e \"2024-09-05T10:00:00Z\"'"
                },
                "pageToken": {
                  "description": "Optional. A page token, received from a previous `ListActivities` call.",
                  "type": "string",
                  "location": "query"
                },
                "pageSize": {
                  "format": "int32",
                  "description": "Optional. The number of activities to return. Must be between 1 and 100, inclusive. If unset, defaults to 50. If set to greater than 100, it will be coerced to 100.",
                  "location": "query",
                  "type": "integer"
                },
                "parent": {
                  "description": "Required. The parent session, which owns this collection of activities. Format: sessions/{session}",
                  "type": "string",
                  "pattern": "^sessions/[^/]+$",
                  "required": true,
                  "location": "path"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "httpMethod": "GET",
              "flatPath": "v1alpha/sessions/{sessionsId}/activities",
              "path": "v1alpha/{+parent}/activities",
              "parameterOrder": [
                "parent"
              ]
            },
            "get": {
              "id": "jules.sessions.activities.get",
              "path": "v1alpha/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "Activity"
              },
              "httpMethod": "GET",
              "flatPath": "v1alpha/sessions/{sessionsId}/activities/{activitiesId}",
              "description": "Gets a single activity.",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "location": "path",
                  "type": "string",
                  "description": "Required. The resource name of the activity to retrieve. Format: sessions/{session}/activities/{activity}",
                  "required": true,
                  "pattern": "^sessions/[^/]+/activities/[^/]+$"
                }
              }
            }
          }
        }
      }
    }
  },
  "mtlsRootUrl": "https://jules.mtls.googleapis.com/",
  "ownerDomain": "google.com",
  "discoveryVersion": "v1",
  "parameters": {
    "uploadType": {
      "type": "string",
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "access_token": {
      "location": "query",
      "description": "OAuth access token.",
      "type": "string"
    },
    "key": {
      "type": "string",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query"
    },
    "$.xgafv": {
      "description": "V1 error format.",
      "type": "string",
      "location": "query",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ]
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "type": "string",
      "location": "query"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "type": "boolean",
      "location": "query"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "alt": {
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "description": "Data format for response.",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "default": "json",
      "location": "query",
      "type": "string"
    },
    "quotaUser": {
      "location": "query",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "type": "string"
    }
  },
  "ownerName": "Google",
  "baseUrl": "https://jules.googleapis.com/",
  "basePath": "",
  "protocol": "rest",
  "id": "jules:v1alpha",
  "name": "jules",
  "title": "Jules API",
  "fullyEncodeReservedExpansion": true
}
