# Apigee API . organizations . environments . sharedflows . revisions

## Instance Methods

Close httplib2 connections.

Deploys a revision of a shared flow. If another revision of the same shared flow is currently deployed, set the `override` parameter to `true` to have this revision replace the currently deployed revision. You cannot use a shared flow until it has been deployed to an environment. For a request path `organizations/{org}/environments/{env}/sharedflows/{sf}/revisions/{rev}/deployments`, two permissions are required: * `apigee.deployments.create` on the resource `organizations/{org}/environments/{env}` * `apigee.sharedflowrevisions.deploy` on the resource `organizations/{org}/sharedflows/{sf}/revisions/{rev}`

Gets the deployment of a shared flow revision and actual state reported by runtime pods.

Undeploys a shared flow revision from an environment. For a request path `organizations/{org}/environments/{env}/sharedflows/{sf}/revisions/{rev}/deployments`, two permissions are required: * `apigee.deployments.delete` on the resource `organizations/{org}/environments/{env}` * `apigee.sharedflowrevisions.undeploy` on the resource `organizations/{org}/sharedflows/{sf}/revisions/{rev}`

### Method Details

`close()`

    Close httplib2 connections.

`deploy(name, override=None, serviceAccount=None, x__xgafv=None)`

    Deploys a revision of a shared flow. If another revision of the same shared flow is currently deployed, set the `override` parameter to `true` to have this revision replace the currently deployed revision. You cannot use a shared flow until it has been deployed to an environment. For a request path `organizations/{org}/environments/{env}/sharedflows/{sf}/revisions/{rev}/deployments`, two permissions are required: * `apigee.deployments.create` on the resource `organizations/{org}/environments/{env}` * `apigee.sharedflowrevisions.deploy` on the resource `organizations/{org}/sharedflows/{sf}/revisions/{rev}`

    Args:
      name: string, Required. Name of the shared flow revision to deploy in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}/revisions/{rev}` (required)
      override: boolean, Flag that specifies whether the new deployment replaces other deployed revisions of the shared flow in the environment. Set `override` to `true` to replace other deployed revisions. By default, `override` is `false` and the deployment is rejected if other revisions of the shared flow are deployed in the environment.
      serviceAccount: string, Google Cloud IAM service account. The service account represents the identity of the deployed proxy, and determines what permissions it has. The format must be `{ACCOUNT_ID}@{PROJECT}.iam.gserviceaccount.com`.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        {
      "apiProxy": "A String", # API proxy.
      "deployStartTime": "A String", # Time the API proxy was marked `deployed` in the control plane in millisconds since epoch.
      "environment": "A String", # Environment.
      "errors": [ # Errors reported for this deployment. Populated only when state == ERROR. This field is not populated in List APIs.
        { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
          "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
            {
              "a_key": "", # Properties of the object. Contains field @type with type URL.
            },
          ],
          "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
        },
      ],
      "instances": [ # Status reported by each runtime instance. This field is not populated in List APIs.
        { # The status of a deployment as reported by a single instance.
          "deployedRevisions": [ # Revisions currently deployed in MPs.
            { # Revisions deployed in the MPs.
              "percentage": 42, # Percentage of MP replicas reporting this revision.
              "revision": "A String", # API proxy revision reported as deployed.
            },
          ],
          "deployedRoutes": [ # Current routes deployed in the ingress routing table. A route which is missing will appear in `missing_routes`.
            { # Route deployed in the ingress routing table.
              "basepath": "A String", # Base path in the routing table.
              "envgroup": "A String", # Environment group where this route is installed.
              "environment": "A String", # Destination environment. This will be empty if the route is not yet reported.
              "percentage": 42, # Percentage of ingress replicas reporting this route.
            },
          ],
          "instance": "A String", # ID of the instance reporting the status.
        },
      ],
      "pods": [ # Status reported by runtime pods. This field is not populated for List APIs. **Note**: **This field is deprecated**. Runtime versions 1.3 and above report instance level status rather than pod status.
        {
          "appVersion": "A String", # Version of the application running in the pod.
          "deploymentStatus": "A String", # Status of the deployment. Valid values include: - `deployed`: Successful. - `error` : Failed. - `pending` : Pod has not yet reported on the deployment.
          "deploymentStatusTime": "A String", # Time the deployment status was reported in milliseconds since epoch.
          "deploymentTime": "A String", # Time the proxy was deployed in milliseconds since epoch.
          "podName": "A String", # Name of the pod which is reporting the status.
          "podStatus": "A String", # Overall status of the pod (not this specific deployment). Valid values include: - `active`: Up to date. - `stale` : Recently out of date. Pods that have not reported status in a long time are excluded from the output.
          "podStatusTime": "A String", # Time the pod status was reported in milliseconds since epoch.
          "statusCode": "A String", # Code associated with the deployment status.
          "statusCodeDetails": "A String", # Human-readable message associated with the status code.
        },
      ],
      "revision": "A String", # API proxy revision.
      "routeConflicts": [ # Conflicts in the desired state routing configuration. The presence of conflicts does not cause the state to be `ERROR`, but it will mean that some of the deployment's base paths are not routed to its environment. If the conflicts change, the state will transition to `PROGRESSING` until the latest configuration is rolled out to all instances. This field is not populated in List APIs.
        { # Describes a routing conflict that may cause a deployment not to receive traffic at some base path.
          "conflictingDeployment": { # Tuple representing a base path and the deployment containing it. # Existing base path/deployment causing the conflict.
            "apiProxy": "A String", # Name of the deployed API proxy revision containing the base path.
            "basepath": "A String", # Base path receiving traffic.
            "environment": "A String", # Name of the environment in which the proxy is deployed.
            "revision": "A String", # Name of the deployed API proxy revision containing the base path.
          },
          "description": "A String", # Human-readable description of this conflict.
          "environmentGroup": "A String", # Name of the environment group in which this conflict exists.
        },
      ],
      "serviceAccount": "A String", # The full resource name of Cloud IAM Service Account that this deployment is using, eg, `projects/-/serviceAccounts/{email}`.
      "state": "A String", # Current state of the deployment. This field is not populated in List APIs.
    }

`getDeployments(name, x__xgafv=None)`

    Gets the deployment of a shared flow revision and actual state reported by runtime pods.

    Args:
      name: string, Required. Name representing a shared flow in an environment in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}/revisions/{rev}` (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        {
      "apiProxy": "A String", # API proxy.
      "deployStartTime": "A String", # Time the API proxy was marked `deployed` in the control plane in millisconds since epoch.
      "environment": "A String", # Environment.
      "errors": [ # Errors reported for this deployment. Populated only when state == ERROR. This field is not populated in List APIs.
        { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
          "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
            {
              "a_key": "", # Properties of the object. Contains field @type with type URL.
            },
          ],
          "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
        },
      ],
      "instances": [ # Status reported by each runtime instance. This field is not populated in List APIs.
        { # The status of a deployment as reported by a single instance.
          "deployedRevisions": [ # Revisions currently deployed in MPs.
            { # Revisions deployed in the MPs.
              "percentage": 42, # Percentage of MP replicas reporting this revision.
              "revision": "A String", # API proxy revision reported as deployed.
            },
          ],
          "deployedRoutes": [ # Current routes deployed in the ingress routing table. A route which is missing will appear in `missing_routes`.
            { # Route deployed in the ingress routing table.
              "basepath": "A String", # Base path in the routing table.
              "envgroup": "A String", # Environment group where this route is installed.
              "environment": "A String", # Destination environment. This will be empty if the route is not yet reported.
              "percentage": 42, # Percentage of ingress replicas reporting this route.
            },
          ],
          "instance": "A String", # ID of the instance reporting the status.
        },
      ],
      "pods": [ # Status reported by runtime pods. This field is not populated for List APIs. **Note**: **This field is deprecated**. Runtime versions 1.3 and above report instance level status rather than pod status.
        {
          "appVersion": "A String", # Version of the application running in the pod.
          "deploymentStatus": "A String", # Status of the deployment. Valid values include: - `deployed`: Successful. - `error` : Failed. - `pending` : Pod has not yet reported on the deployment.
          "deploymentStatusTime": "A String", # Time the deployment status was reported in milliseconds since epoch.
          "deploymentTime": "A String", # Time the proxy was deployed in milliseconds since epoch.
          "podName": "A String", # Name of the pod which is reporting the status.
          "podStatus": "A String", # Overall status of the pod (not this specific deployment). Valid values include: - `active`: Up to date. - `stale` : Recently out of date. Pods that have not reported status in a long time are excluded from the output.
          "podStatusTime": "A String", # Time the pod status was reported in milliseconds since epoch.
          "statusCode": "A String", # Code associated with the deployment status.
          "statusCodeDetails": "A String", # Human-readable message associated with the status code.
        },
      ],
      "revision": "A String", # API proxy revision.
      "routeConflicts": [ # Conflicts in the desired state routing configuration. The presence of conflicts does not cause the state to be `ERROR`, but it will mean that some of the deployment's base paths are not routed to its environment. If the conflicts change, the state will transition to `PROGRESSING` until the latest configuration is rolled out to all instances. This field is not populated in List APIs.
        { # Describes a routing conflict that may cause a deployment not to receive traffic at some base path.
          "conflictingDeployment": { # Tuple representing a base path and the deployment containing it. # Existing base path/deployment causing the conflict.
            "apiProxy": "A String", # Name of the deployed API proxy revision containing the base path.
            "basepath": "A String", # Base path receiving traffic.
            "environment": "A String", # Name of the environment in which the proxy is deployed.
            "revision": "A String", # Name of the deployed API proxy revision containing the base path.
          },
          "description": "A String", # Human-readable description of this conflict.
          "environmentGroup": "A String", # Name of the environment group in which this conflict exists.
        },
      ],
      "serviceAccount": "A String", # The full resource name of Cloud IAM Service Account that this deployment is using, eg, `projects/-/serviceAccounts/{email}`.
      "state": "A String", # Current state of the deployment. This field is not populated in List APIs.
    }

`undeploy(name, x__xgafv=None)`

    Undeploys a shared flow revision from an environment. For a request path `organizations/{org}/environments/{env}/sharedflows/{sf}/revisions/{rev}/deployments`, two permissions are required: * `apigee.deployments.delete` on the resource `organizations/{org}/environments/{env}` * `apigee.sharedflowrevisions.undeploy` on the resource `organizations/{org}/sharedflows/{sf}/revisions/{rev}`

    Args:
      name: string, Required. Name of the shared flow revision to undeploy in the following format: `organizations/{org}/environments/{env}/sharedflows/{sharedflow}/revisions/{rev}` (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # 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); } The JSON representation for `Empty` is empty JSON object `{}`.
    }